如果测试用例发现错误,停止测试套件
我在Python里有一个叫做testSuite
的测试套件,里面包含了几个testCases
(测试用例)。
如果某个testCase
失败了,testSuite
会继续执行下一个testCase
。我希望能在某个testCase
失败时,能够停止testSuite
,或者可以选择是继续执行还是停止。
6 个回答
2
使用 failfast=True
这个设置,如果你测试类中的一个测试失败了,程序就会立刻停止运行所有测试。
举个例子:
if __name__ == '__main__':
unittest.main(failfast=True)
3
看起来没有哪个回答提到你问题的这一部分:
... 能够决定测试套件是继续还是停止。
你可以在你的 TestCase
类里重写 run()
方法,然后调用 TestResult.stop()
方法,这样就可以告诉 TestSuite
停止运行测试了。
class MyTestCase(unittest.TestCase):
def run(self, result=None):
if stop_test_condition():
result.stop()
return
super().run(result=result)
16
从Python 2.7开始,unittest
支持一个叫failfast
的选项。你可以通过命令行来设置这个选项:
python -m unittest -f test_module
或者在使用脚本的时候也可以设置:
>>> from unittest import main
>>> main(module='test_module', failfast=True)
不过遗憾的是,我还没找到在使用setuptools
和setup.py
的时候怎么设置这个选项。