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

标签 python unit-testing python-unittest

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

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

在 Python 的单元测试中是否可以说“仅在满足以下条件时运行此测试,否则运行其他测试并返回给我”?

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

最佳答案

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

我认为 PyTest 装置具有更大的灵 active ,但我没有太多使用它们。

关于python - 在 python 的unittest测试套件中强制执行测试顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46496339/

相关文章:

python - 模拟一个对象的返回值

python - SQLAlchemy 声明性扩展与 Elixir

php - Python 通过 PHP Web 服务将 PDF 上传到 MySQL 数据库

java - 代码覆盖率中应该包含注释吗?

python - 单元测试中的自定义异常

python - 对象内部的模拟模块调用

python - 非贪婪组之后的可选组

python - 在Python中将图像转换为灰度

java - Junit 测试空指针异常

unit-testing - 在哪里可以找到 EJB 和 J2EE 的良好单元测试资源?