没有环境变量,我们知道,调用是: 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)
我应该怎么做才能只运行所需的测试?
先感谢您。