【发布时间】:2013-07-08 10:19:02
【问题描述】:
我正在使用 pytest。我在一个目录中有两个文件。在其中一个文件中,有一个长时间运行的测试用例会生成一些输出。在另一个文件中有一个读取该输出的测试用例。如何确保两个测试用例的正确执行顺序?除了将测试用例按正确的顺序放在同一个文件中之外,还有其他选择吗?
【问题讨论】:
-
一般来说,让测试用例相互依赖并不是一个好主意。如果您需要在 2 个测试用例中使用相同的数据,为什么不将其添加到
setup部分? -
我不想将它添加到设置部分,因为它大约需要 15-20 分钟。
-
嗯,有什么办法可以模拟出来吗?如果没有,那么您可能需要明确链接这两个测试(或将它们设为一项大测试)
-
共享或环境设置代码进入 setUpClass 方法,它将运行一次,在任何测试运行之前。或者,您可以将延迟初始化模式代码写入 setup 方法。甚至写——
initialized=False def test_mytest1: if initialized: somelongfunction() initialized=True宁可使用框架。考虑这样一种可能性,如果您需要订购测试,它们不再是单元测试,您需要考虑一个新的脚手架工作水平来简化这一点。 -
这里值得指出的是,在现实世界中测试事物的领域中,例如循环中的硬件装备,有时您需要控制事物的顺序,因为您需要协调现实世界的状态在纯软件测试中可能没有等价物。