首页 > 解决方案 > 在生成报告后,如果测试失败,如何让詹金斯构建失败?

问题描述

因此,我正在尝试了解有关 jenkins 的更多信息,并开发了一个 shell 脚本,该脚本为我的 iOS 项目执行测试并生成报告。我将脚本设置为在检测到故障后立即退出(因为这是我知道在测试失败时如何使构建失败的唯一方法)。

这就是没有生成报告的原因。因为我在测试失败后立即退出脚本。但我不熟悉如何让构建失败,而不在生成报告之前退出。我能做些什么来规避这种情况?这是我当前的 shell 脚本:

set -o pipefail && xcodebuild -project "Tests.xcodeproj" 
    -scheme "Testing" 
    -sdk "iphonesimulator12.2" 
    -destination "platform=iOS Simulator,OS=latest,name=iPhone 7" 
    test -only-testing:"UITests/UITests" 
    -resultBundlePath TestResults | xcpretty
xchtmlreport -r TestResults

标签: iosxcodejenkins

解决方案


您可以使用

always() { //这里有一些代码 }

部分到特定阶段或管道。将报告生成放在该块中。参考https://jenkins.io/doc/book/pipeline/syntax/#post-conditions

在自由式项目中,您可以添加构建后动作


推荐阅读