如何在多线程测试前正确执行全局夹具?
我有一组200个单元测试,在使用py.test时,单线程执行时运行得很好。
我有一个准备好的工具,它可以配置一个网络服务器,这样我就可以在这个服务器上运行测试。
不过,我需要确保这个工具在执行其他测试之前只运行一次。如果这个步骤失败了,整个测试过程就得停止。如果这个步骤成功了,那么就可以在多个线程上进行测试。
我该怎么做呢?
1 个回答
1
目前,你需要在pytest-xdist之外来实现这个功能,因为它没有提供协调“整个测试运行”所需的工具。你可以考虑启动一个脚本,使用文件锁定的方式,确保服务只启动一次。关于pytest-xdist,这里有一个讨论,提到一个叫testrun
的工具:https://bitbucket.org/hpk42/pytest/issue/252/allow-fixtures-to-execute-only-once-per