我编写了代码,查找可以在包中运行的所有测试并将它们收集到单个测试套件中。唯一的问题是某些测试依赖于已经运行的其他测试。
这可能看起来像是糟糕的测试架构,但我正在测试的是应用程序的启动和关闭。因此,我进行了测试以确保一切正常,然后进行另一组测试以确保一切都得到正确清理。但显然,在启动测试完成之前我无法运行关闭测试。
在 Python 的单元测试中是否可以说“仅在满足以下条件时运行此测试,否则运行其他测试并返回给我”?
我知道我可以通过明确地说运行启动测试,现在运行关闭测试来强制执行此顺序。但我正在使用测试发现,以便您可以编写更多测试而无需显式调用它们,因此我试图避免这样做。
最佳答案
unittest
模块要求每个测试能够独立运行:不依赖于之前或之后运行的其他测试。但是,您可以通过向测试类添加 setUp()
或 tearDown()
方法来依赖其他代码在每次测试之前或之后运行。您还可以依赖其他代码在一组测试之前或之后运行 setUpClass()
, setUpModule()
, and their tear downs .
我认为 PyTest 装置具有更大的灵 active ,但我没有太多使用它们。
关于python - 在 python 的unittest测试套件中强制执行测试顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46496339/