因此,这里的医生说:“你说那很疼?那就不要那样做!” 可能是对的。但是,如果您确实愿意,这是将参数传递给单元测试的一种方法:
import sys
import unittest
class MyTest(unittest.TestCase):
USERNAME = "jemima"
PASSWORD = "password"
def test_logins_or_something(self):
print('username : {}'.format(self.USERNAME))
print('password : {}'.format(self.PASSWORD))
if __name__ == "__main__":
if len(sys.argv) > 1:
MyTest.USERNAME = sys.argv.pop()
MyTest.PASSWORD = sys.argv.pop()
unittest.main()
这将使您可以:
python mytests.py ausername apassword
您需要argv.pop
s,以便您的命令行参数不会与unittest自己的混乱。
[更新]您可能要研究的另一件事是使用环境变量:
import os
import unittest
class MyTest(unittest.TestCase):
USERNAME = "jemima"
PASSWORD = "password"
def test_logins_or_something(self):
print('username : {}'.format(self.USERNAME))
print('password : {}'.format(self.PASSWORD))
if __name__ == "__main__":
MyTest.USERNAME = os.environ.get('TEST_USERNAME', MyTest.USERNAME)
MyTest.PASSWORD = os.environ.get('TEST_PASSWORD', MyTest.PASSWORD)
unittest.main()
这样您就可以运行:
TEST_USERNAME=ausername TEST_PASSWORD=apassword python mytests.py
而且它的优点是您不会搞砸unittest自己的参数解析。缺点是它在Windows上无法像...