在我的场景中,我有一个写入文件的测试,以及一个(但可能更多)想要读取该文件的测试。我不能简单地提取将该文件写入函数/夹具,因为它涉及内部正在启动其他二进制文件的一些其他夹具,以及写入该文件的二进制文件。所以我有一个夹具,可以检查文件是否已经存在。
到目前为止我尝试了什么:
- flaky和pytest-rerunfailures插件 - 不适合,因为它们都在失败时立即重新运行测试(当文件仍然不存在时),我想将它附加到测试队列的末尾。
- 手动修改测试队列,如下所示:
...
request.session.items.append(request.node)
pytest.xfail("file not present yet")
这种工作,但只有当我在单跑步机上运行时(没有xdist或通过传递 cli arg 打开它-n0
,在我的测试报告中我看到如下内容:
test_load_file_before_save xfail
test_save_file PASSED
test_load_file PASSED
test_load_file_before_save PASSED
使用 xdist 运行时,不会重复 xfailed 测试。有人知道如何进行吗?强制 xdist 刷新测试列表的某种方式?