如果测试用例发现错误,停止测试套件

12 投票
6 回答
9103 浏览
提问于 2025-04-16 22:12

我在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)

不过遗憾的是,我还没找到在使用setuptoolssetup.py的时候怎么设置这个选项。

撰写回答