我们正在测试竹子。 但是,如果对竹子的任何测试都失败了,我们就必须对所有的竹子再次进行测试。 有什么方法可以让我们只对竹子进行失败的测试。 是否有必要更改我们的框架,这意味着在我们使用java + Ant + TestNG执行测试用例时,ant build.xml文件或testNG文件中的 ...
提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供 中文繁体 英文版本 中英对照 版本,有任何建议请联系yoyou2525@163.com。
在我的场景中,我有一个写入文件的测试,以及一个(但可能更多)想要读取该文件的测试。 我不能简单地提取将该文件写入函数/夹具,因为它涉及内部正在启动其他二进制文件的其他一些夹具,以及写入该文件的二进制文件。 所以我有一个夹具,可以检查文件是否已经存在。
到目前为止我尝试过的:
...
request.session.items.append(request.node)
pytest.xfail("file not present yet")
这种工作,但仅当我在单跑步者上运行时(没有xdist ,或通过传递-n0
cli arg 将其打开,在我的测试报告中,我看到如下内容:
test_load_file_before_save xfail
test_save_file PASSED
test_load_file PASSED
test_load_file_before_save PASSED
使用 xdist 运行时,不会重复 xfailed 测试。 有谁知道如何进行? 某种强制 xdist 刷新测试列表的方法?
您可以使用 pytest.cache 获取测试运行状态并将该测试附加到队列中以防万一。
if request.config.cache.get(request.node):
request.session.items.append(request.node)
pytest.xfail("file not present yet")
您还可以在 pytest 缓存中设置自定义值,以便在不同的运行中使用request.config.cache.set(data,val)
。
如果您正在编写位于 test 目录中的文件,则可以使用 pytest-xdist 的--looponfail
开关。 它监视目录并重新运行测试,直到测试通过。 来自文档: distributed and subprocess testing: -f, --looponfail run tests in subprocess, wait for modified files and re-run failing test set until all pass.
可能有用的链接: Pytest-cache
作为一个友好的建议,如果您计划在并行线程中运行,我建议您使测试相互独立。
安装这个包:pytest-rerunfailures 使用这个命令:pip install pytest-rerunfailures
要重新运行所有测试失败,请使用 --reruns 命令行选项以及您希望测试运行的最大次数:
$ pytest --reruns 5
失败的夹具或 setup_class 也将重新执行。
要在重新运行之间添加延迟时间,请使用 --reruns-delay 命令行选项以及在启动下一次测试重新运行之前您希望等待的秒数:
$ pytest --reruns 5 --reruns-delay 1
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.