没有环境变量的情况下,我们知道调用方式为: python -m unittest tests.unit_test_1
但是我需要传递环境变量,因为我需要将某些值插入到数据库中,这些值的凭据在我的手中。我不想将它们写在配置/.py文件中,只想将它们作为环境变量传递。因此,如果我传递环境变量如下:
python -m unittest tests.unit_test_1 $username $password
编辑:
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()
第一个测试通过了。然后我收到的错误是:
ModuleNotFoundError: No module named 'username"
ModuleNotFoundError: No module named 'password"
最后,我看到了这个(虽然我只运行了一个测试):
Ran 3 tests in 1.48s
我应该怎么做才能只运行必须的测试?
提前感谢您。
python -m unittest
命令。 - Gino MempinsetUp
或classSetUp
中设置环境变量? - joshmeranda