robotframework:如何在传递所有测试时忽略--rerunfailed失败

时间:2017-08-23 16:38:52

标签: robotframework

我运行我的机器人框架测试套件作为teamcity / jenkins构建,有两个简单步骤,如下所示

  • 构建步骤#1:pybot
  • 构建步骤#2:pybot --rerunfailed Results \ output.xml

当传递步骤1中的所有测试时,构建失败,因为步骤2(--rerunfailed)触发错误( [错误]从'Results \ output.xml'收集失败的测试失败:全部测试通过。)。

有人可以建议如何忽略或克服此错误,以便我可以显示在这种情况下传递的构建?

2 个答案:

答案 0 :(得分:1)

使构建步骤#2依赖于构建步骤#1失败。也就是说,如果第一个0以非零退出状态退出,则仅运行pybot --rerunfailed

最简单的方法是在bash或python或powershell中创建一个自定义测试运行器,它同时执行pybot的运行和重新运行pybot。然后,您可以将此shell脚本配置为单个步骤。

另一种方法是让你的第二个构建步骤查看上一步的返回代码(如果可能),或者扫描output.xml以查看是否存在失败。如果没有失败,它将返回而不做任何工作。

答案 1 :(得分:1)

我有类似的问题,我用这种方式解决了:

robot -d %ResultPath% %TestSuitName% || robot --rerunfailed output.xml --output output1.xml -l log.html -r report.html TestSuitName || rebot --rerunmerge --output output.xml -l log.html -r report.html output.xml output1.xml

使用||同时运行这些命令,它将起作用。