测试案例失败时,管道为何失败

时间:2019-07-10 07:45:53

标签: python gitlab robotframework gitlab-ci gitlab-ci-runner

我正在Gitlab-CI中运行robotframework。

我面临的问题是,如果运行中有任何测试用例失败,它也会使管道失败。那么如何防止管道故障呢?因为测试失败,而不是整个构建过程失败。

现在,这就是我在gitlab-ci.yml上运行robotframework的方式

- robot --exitonfailure -i "android-test" --outputdir ./output Android/Androidtest.robot


例如,我在Androidtest.robot Test Suite上有3个测试用例:
1。寄存器
2。 fillin_profile
3。 checkout_order

如果通过了寄存器大小写和fillin_profile,但结帐顺序失败,则Ci管道将失败。我不希望失败,因为下一个工作是将robotframework测试报告发送到gdrive,并且如果管道失败,它将永远不会发送。

那是因为我添加了--exitonfailure参数吗?该如何解决?

2 个答案:

答案 0 :(得分:1)

当测试失败时,CI的全部要点就是失败。 上载测试结果或报告不应是多余的工作。我不了解robotframework,但是GitLab支持在失败的测试后发布工件。

https://docs.gitlab.com/ee/ci/junit_test_reports.html

答案 1 :(得分:1)

--exitonfailure替换为--nostatusrc

如果测试失败,则机器人将以0以外的退出代码退出。为此,Gitlab和每一个ci,检查是否以0以外的退出代码执行了任何命令,并认为存在故障。使用--nostatusrc时,机器人将始终以0退出,因此您的ci不会认为那里出现了故障。

请考虑,如果要禁止退出代码,则在存在测试失败的情况下,您将失去在CI中将作业标记为失败的功能,除非您提供某种其他机制来执行此操作,除非您碰巧需要此功能。< / p>

相关问题