我有2个文件:
test_1.py:
import unittest
class TestMe(unittest.TestCase):
@classmethod
def setUpClass(cls):
cls.name = "test"
cls.password = "1234"
def test_upper(self):
self.assertEqual('foo'.upper(), 'FOO')
def test_user_pass(self):
print(self.name)
print(self.password)
if __name__ == '__main__':
unittest.main()
test_2.py:
import unittest
import test_1
import sys
a = sys.argv
if a[1] == '2':
suite=unittest.TestLoader().loadTestsFromModule(test_1)
unittest.TextTestRunner(verbosity=2).run(suite)
我想将参数传递给test_1(单元模块),但我需要将此参数传递给setUpClass。 我该怎么办?
谢谢!
答案 0 :(得分:1)
尝试一下...
test_1.py:
import unittest
from test_2 import b
class TestMe(unittest.TestCase):
e = b
@classmethod
def setUpClass(cls):
cls.name = "test"
cls.password = "1234"
cls.parameter = cls.e
def test_upper(self):
self.assertEqual('foo'.upper(), 'FOO')
def test_user_pass(self):
print(self.name)
print(self.password)
print(self.parameter)
if __name__ == '__main__':
unittest.main()
test_2.py:
import unittest
import test_1
import sys
a = sys.argv
b = ""
if a[1] == '2':
b = a[1]
suite = unittest.TestLoader().loadTestsFromModule(test_1)
unittest.TextTestRunner(verbosity=2).run(suite)
我希望这会对您有所帮助。
答案 1 :(得分:0)
有几种方法。
最简单的选择是在所有脚本中包含以下内容。
import sys
some_arg = sys.argv[1]
您将能够访问所访问的每个文件中放入主文件中的参数。
第二种选择是将其用作函数,通常,您可以...
def build_test_class(arg):
Class TestMe(unittest.TestCase):
... do stuff ...
return TestMe
在这里,您可以将您的参数与您的班级一起使用。
但是必须有另一种方法来完成您要尝试的操作。我认为这是XY Problem。