您好我使用unittest测试了。我有一个测试套件,我试图将变量传递到每个测试中。以下代码显示了使用的测试套件。
class suite():
def suite(self): #Function stores all the modules to be tested
modules_to_test = ('testmodule1', 'testmodule2')
alltests = unittest.TestSuite()
for module in map(__import__, modules_to_test):
alltests.addTest(unittest.findTestCases(module))
return alltests
它调用测试,我想知道如何将变量传递给此类的测试。下面是一个示例测试脚本:
class TestThis(unittest.TestCase):
def runTest(self):
assertEqual('1', '1')
class TestThisTestSuite(unittest.TestSuite):
# Tests to be tested by test suite
def makeTestThisTestSuite():
suite = unittest.TestSuite()
suite.addTest("TestThis")
return suite
def suite():
return unittest.makeSuite(TestThis)
if __name__ == '__main__':
unittest.main()
所以从class suite()
我想输入一个值来改变断言值中的值。 Eg. assertEqual(self.value, '1')
。我已经尝试过sys.argv进行单元测试,但似乎无法正常工作。
谢谢你的帮助。
答案 0 :(得分:4)
在命令行上传递交互式值并不符合自动化单元测试的意图。如何使用ConfigParser库模块并让TestCase
子类的__init__
方法以这种方式加载一些变量测试输入数据?
当然,坚持使用您拥有的代码,用于保存测试数据的模块全局变量或类常量成员怎么样?例如,在按名称导入测试模块后,您不能只执行
module.testVars = [1, 2, 3, "foo"]
让测试模块中的测试引用该变量(默认情况下可能是空列表)?