我正在Jenkins中为各种测试框架(NUnit,MSTest等)编写的测试项目设置测试结果报告,并希望提高我对报告类型以及管道执行中阶段和发布之间差异的理解。
管道执行
阶段按它们出现的顺序执行,如果之后有任何阶段,之前的阶段失败,则后续阶段将不会执行。
在执行阶段之后,无论阶段是否成功完成,都会执行帖子。
报告类型
如果我有一个阶段(产生测试结果):
stage('MSTest') {
steps {
bat(script: 'dotnet test "..\\TestsProject.csproj" --logger "trx;LogFileName=TestResult.xml"')
}
}
并且总是运行一个帖子(消耗测试结果以生成测试结果报告):
post {
always {
xunit testTimeMargin: '5000', thresholdMode: 1, thresholds: [], tools: [ReportType(deleteOutputFiles: true, failIfNotNew: false, pattern: '..\\TestResult.xml', skipNoTestFiles: false, stopProcessingIfError: false)]
}
}
项目变化:
如果我的测试项目是用NUnit编写的,那么'tools:'中的'ReportType'方法需要用NUnit3替换才能使post成功执行。
如果我的测试项目是用MSTest编写的,那么'tools:'中的'ReportType'方法将需要替换为MSTest才能成功执行post。