如何在多线程测试前正确执行全局夹具?

1 投票
1 回答
631 浏览
提问于 2025-04-18 13:57

我有一组200个单元测试,在使用py.test时,单线程执行时运行得很好。

我有一个准备好的工具,它可以配置一个网络服务器,这样我就可以在这个服务器上运行测试。

不过,我需要确保这个工具在执行其他测试之前只运行一次。如果这个步骤失败了,整个测试过程就得停止。如果这个步骤成功了,那么就可以在多个线程上进行测试。

我该怎么做呢?

1 个回答

1

目前,你需要在pytest-xdist之外来实现这个功能,因为它没有提供协调“整个测试运行”所需的工具。你可以考虑启动一个脚本,使用文件锁定的方式,确保服务只启动一次。关于pytest-xdist,这里有一个讨论,提到一个叫testrun的工具:https://bitbucket.org/hpk42/pytest/issue/252/allow-fixtures-to-execute-only-once-per

撰写回答