当我通过PowerShell为Baseline Branch运行Karma时,如果结果中有任何失败的测试,PowerShell的反应类似于执行PIL Image
的过程。这会导致Jenkins构建过早地失败,而不运行其余组件。我想绕过它,以便作业仅在出现合法问题时失败,针对目标分支运行业力时发现失败的测试(分支包含代码更改),或者新行的代码覆盖率低于要求的最小值
我正在与Jenkins,PowerShell和Karma一起为Web应用程序提供代码覆盖率测试。在Jenkins中,我有一个PowerShell任务可以按以下方式执行业力:
在作业中,我正在签出两个分支(一个充当基准,另一个包含代码/测试更新)。我还原所有NuGet程序包,然后构建Baseline Branch的解决方案。接下来,我运行业力以获得当前的覆盖范围。然后,我为目标分支构建解决方案,然后运行Karma以获得代码覆盖率。使用SonarQube,我正在比较结果以提供新的覆盖范围。
我已经尝试过的事情:
Environment::Exit(1)
-ErrorAction SilentlyContinue
上查找文档karma start
命令的末尾添加| $true
和|| $true
karma start
& $nodePath $karmaPath start $karmaTest --log-level debug
只是node.exe的文件路径
$nodePath
只是业力的文件路径
$karmaPath
是karma.conf.ci.js文件的文件路径
答案 0 :(得分:1)
失败的原因是由于返回了退出代码。 如果您在Jenkins bash脚本中运行命令,则Jenkins取消所有剩余任务。如果单元测试失败,您无论如何都不应该通过构建。 如果它们很脆,那么最好重构测试。
要解决此问题,请在运行测试脚本后通过管道发送命令。 例如
假设您在以下大致定义的package.json文件中定义了脚本
scripts:{
ng: ng;
install: npm install;
test-ci: ng test --karma-config karmaconfig --code-coverage
build: npm build
}
现在,通过使用package.json中定义的脚本,您的jenkins bash脚本如下所示。
npm run install
npm run test-ci || echo "Tests Failed"
npm run build