小编Tan*_*eer的帖子

运行需要环境变量的单元测试

没有环境变量,我们知道,调用是: python -munittesttests.unit_test_1

但我需要传递环境变量,因为我需要将一些值插入到我拥有信用的数据库中。我不想将其写入 config/.py 文件中,只想将它们作为环境变量传递。因此,如果我将环境变量传递为:

python -m unittest tests.unit_test_1 $username $password
Run Code Online (Sandbox Code Playgroud)

编辑:

unit_test_1.py 大致如下:

import unittest
from sys import argv
from os import environ

class database_helper_tests(unittest.TestCase):
    def fetch(this):
        x = connet_to_database(environ["username"], environ["password"])
        data = x.fetch_from_database(this)
        expected_output = ...
        self.assertEqual(expected_output, data)

if __name__ == "__main__":
    os["username"] = argv[1]
    os["password"] = argv[2]
    unittest.main()
Run Code Online (Sandbox Code Playgroud)

第一个测试通过。然后我得到的错误是:

ModuleNotFoundError: No module named 'username"
ModuleNotFoundError: No module named 'password"
Run Code Online (Sandbox Code Playgroud)

最后我看到了这一点(尽管我只运行了一个测试):

Ran 3 tests in 1.48s
Run Code Online (Sandbox Code Playgroud)

我应该怎么做才能只运行所需的测试?

先感谢您。

python unit-testing environment-variables

6
推荐指数
2
解决办法
2万
查看次数