我有一组 200 个单元测试,它们在使用 py.test 在单个线程上执行时运行正常。
我确实有一个正在配置网络服务器的夹具,因此我可以针对它运行测试。
不过,我需要确保在执行所有其他测试之前只运行一次,如果失败,则必须停止整个过程。如果这成功了,它可以在它想要的任意数量的线程上执行测试。
我怎样才能做到这一点?
我有一组 200 个单元测试,它们在使用 py.test 在单个线程上执行时运行正常。
我确实有一个正在配置网络服务器的夹具,因此我可以针对它运行测试。
不过,我需要确保在执行所有其他测试之前只运行一次,如果失败,则必须停止整个过程。如果这成功了,它可以在它想要的任意数量的线程上执行测试。
我怎样才能做到这一点?
目前,您必须在 pytest-xdist 之外实现此功能,因为它无法协调“整个测试运行”设备。也许启动一个使用文件锁定的脚本并且只执行一次服务的启动。至于 pytest-xdist,这里有关于testrun
夹具的讨论:https ://bitbucket.org/hpk42/pytest/issue/252/allow-fixtures-to-execute-only-once-per