繁体   English   中英

在 python 的 unittest 测试套件中强制执行测试顺序

[英]Enforce testing order in python's unittest test suite

我已经编写了代码来查找可以在一个包中运行的所有测试并将它们收集到一个测试套件中。 唯一的问题是某些测试依赖于已经在运行的其他测试。

这可能看起来像是糟糕的测试架构,但我正在测试的是应用程序的启动和关闭。 因此,我进行了一些测试,以确保一切正常,然后是另一组测试,以确保一切都被正确清理。 显然,在启动测试完成之前,我无法运行关机测试。

是否可以在 Python 的单元测试中说“仅在以下情况为真时才运行此测试,否则运行其他测试并返回给我”?

我知道我可以通过明确说运行启动测试,现在运行关闭测试来强制执行此顺序。 但是我正在使用测试发现,以便您可以编写更多测试而不必显式调用它们,因此我试图避免这样做。

unittest模块要求每个测试能够独立运行:不依赖于之前或之后运行的其他测试。 但是,通过向测试类添加setUp()tearDown()方法,您可以依赖其他代码在每次测试之前或之后运行。 您还可以依赖其他代码在使用setUpClass()setUpModule()及其setUpModule()测试之前或之后运行。

我认为 PyTest 装置具有更大的灵活性,但我并没有经常使用它们。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM