因此,我试图学习有关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
答案 0 :(得分:0)
您可以使用
always(){//这里有一些代码}
节到特定阶段或管道。将报告生成放在该块中。请参阅https://jenkins.io/doc/book/pipeline/syntax/#post-conditions
在自由式项目中,您可以添加构建后操作
答案 1 :(得分:0)
通常,您将执行所有测试,并在结果文件中报告每个测试用例状态(在我的情况下,对于Java / JavaScript,这在JUnit format中)。
运行完所有测试后,您将使用适当的Jenkins插件步骤(在我的情况下为junit
)发布结果文件。
答案 2 :(得分:0)
使用Fastlane的Jenkins中的管道/工作流程作业:我所做的是,我根据构建状态将post块设置为运行三个不同的通道。 post块具有称为成功,不稳定和失败的子锁。 post块的子块中的通道分别针对以下三种可能性(成功构建和所有测试通过,成功构建和1个或多个测试失败以及构建失败)用SUCCESS,UNSTABLE或FAILED张贴一条松弛消息。我使用危险宝石将测试结果摘要发回到存储库注释中的拉取请求中。看到这里-> https://www.jenkins.io/doc/book/pipeline/syntax/#post