我想在一次运行中对程序的多个程序集运行测试。代码示例,精简:
import unittest
suite = unittest.TestLoader().discover("./tests")
runner = unittest.TextTestRunner()
for build in [build1, build2]:
get_the_build(build)
runner.run(suite)
在第一次构建时,测试通过了,但在第二次迭代中,运行程序崩溃并出现错误:
Traceback (most recent call last):
File "D:/Path/to/my/folder/run_tests.py", line 9, in <module>
runner.run(suite)
File "C:\Program Files (x86)\Python36-32\lib\unittest\runner.py", line 176, in run
test(result)
File "C:\Program Files (x86)\Python36-32\lib\unittest\suite.py", line 84, in __call__
return self.run(*args, **kwds)
File "C:\Program Files (x86)\Python36-32\lib\unittest\suite.py", line 122, in run
test(result)
TypeError: 'NoneType' object is not callable
发生了什么?它试图唤起什么结果,为什么它不起作用?如何正确解决这样的问题?
我将为同胞简要翻译一个古巴人发起的调查结果,他在研究单元测试源代码方面做得很好。原来的
运行测试时,它们会被 None 覆盖。我的想法是从套件中删除测试,但是如果在运行之前和之后添加它们,
suite.countTestCases()它们将返回相同的数字,这误导了我。没错:添加print(suite)- 它会显示在运行测试后,套件会存储None. 建议的标志不起作用,因此每次迭代中的工作解决方案是再次收集测试: