我有很多“长测试”,我必须等待一些相对较大的超时(分钟)。 例如,我在测试中调用一些API,等待15分钟,然后检查web页面是否有更改。在
所以问题是-如何暂停一些测试,而在等待的时候执行其他测试。 我不能只使用sleep()-在这种情况下,完整的测试服将持续数小时(15分钟*(此类测试的次数))。在
我看到的一个解决方案-安排测试(使用hook pytest_collection_modifyitems):
但那将是一个大混乱,很难管理。在
这就产生了很多在(1)中运行的虚拟测试——事实上,这类似于测试设置,我不需要它们的结果,但是pytest仍然将它们视为单独的测试。在
UPD xdist没有多大帮助—即使我可以控制它如何并行化测试(在这些组中同时运行),我也必须并行运行所有长的测试,因为我想在等待的时候做一些有用的事情,而不仅仅是等待(15分钟*(长测试数))/(xdist进程数)。在
这似乎是唯一的方法-修补pytest的主循环。所以它将异步运行测试。但我甚至不知道从哪里开始。。在
有一个^{} plugin for pytest 启用测试运行并行化。也就是说,您的测试将同时由多个进程(在多个cpu上)运行。这并不完全符合您的要求,它不会暂停长时间运行的测试,但它确实允许其他测试在长时间运行的测试运行的同时运行。在
如果你能编辑你的问题来描述你所说的“第一部分”和“第二部分”是什么意思,我也许能给出一个更好的答案。在
相关问题 更多 >
编程相关推荐