如何获得Deployment Risk (Bluemix Devops Insights) Gate pass?
How to get Deployment Risk (Bluemix Devops Insights) Gate pass?
我设置 bluemix devops 管道,其中包括 DevOps insights Gate 节点。单元测试结果(mocha 格式)和覆盖率结果(istanbul 格式)已上传到测试作业中(使用 grunt-idra3 npm 插件 与教程相同 ⇒github url) .
但是,尽管单元测试显示 100% 通过,但我的 gate 作业仍然失败。
如果有人能帮助我,我将不胜感激。
DevOps Insight 快照⇒
所有单元测试都通过了,但是"decision for Unit Test"仍然是红色失败⇒
政策和规则详情:
政策 "Standard Mocha Test Policy"
规则 1:功能验证测试,
规则类型:功能验证测试,
结果文件格式:xUnit,
通过率:100%
规则 2:伊斯坦布尔覆盖规则,
规则类型:代码覆盖率,
结果文件格式:伊斯坦布尔,
所需的最低代码覆盖率:80%
规则 3:Mocha 单元测试规则,
规则类型:单元测试,
结果文件格式:xUnit,
通过率:100%
规则(xUnit)中指定的格式与实际测试结果(Mocha)的格式似乎不匹配。
请将单元测试的规则更新为 select "Mocha" 格式。然后重新运行门。
在这上面花了将近 3 个星期之后,我终于把 DevOps Gate Job 搞定了。感谢@Vijay Aggarwal,以及在此问题上提供帮助的其他所有人。
下面是实际发生的事情以及最终是如何解决的。
[根本原因]
- DevOps Insight "environment sensitive" 处于决策阶段(不在
结果显示)。就我而言,我将 "STAGING" 放入 Gate Job 的 "Environment Name" 属性,因此 DevOps Insight 无法正确评估我在 Staging 阶段和 Build 阶段上传的所有测试结果。
DevOps 规则是
"Result Format Sensitive"也是,所以大家要慎重选择
"reporter" 摩卡或伊斯坦布尔。在我的例子中,我定义了 gulp
文件如下,但在中错误地将结果类型设置为 "mocha"
策略规则定义。
gulp.task("test", ["pre-test"], function() {
return gulp.src(["./test/**/*.js"], {read: false})
.pipe(mocha({
reporter: "mocha-junit-reporter",
reporterOptions: {
mochaFile: './testResult/testResult-summary.xml'
}
}));
[如何解决]
- 将 Gate Job 的 "Environment Name" 字段留空。
- 在规则定义页面(在 DevOps 策略页面内),确保单元测试结果的格式类型为 "xUnit"。
Screenshot when DevOps Gate is finally passed
我设置 bluemix devops 管道,其中包括 DevOps insights Gate 节点。单元测试结果(mocha 格式)和覆盖率结果(istanbul 格式)已上传到测试作业中(使用 grunt-idra3 npm 插件 与教程相同 ⇒github url) .
但是,尽管单元测试显示 100% 通过,但我的 gate 作业仍然失败。
如果有人能帮助我,我将不胜感激。
DevOps Insight 快照⇒
所有单元测试都通过了,但是"decision for Unit Test"仍然是红色失败⇒
政策和规则详情: 政策 "Standard Mocha Test Policy"
规则 1:功能验证测试, 规则类型:功能验证测试, 结果文件格式:xUnit, 通过率:100%
规则 2:伊斯坦布尔覆盖规则, 规则类型:代码覆盖率, 结果文件格式:伊斯坦布尔, 所需的最低代码覆盖率:80%
规则 3:Mocha 单元测试规则, 规则类型:单元测试, 结果文件格式:xUnit, 通过率:100%
规则(xUnit)中指定的格式与实际测试结果(Mocha)的格式似乎不匹配。
请将单元测试的规则更新为 select "Mocha" 格式。然后重新运行门。
在这上面花了将近 3 个星期之后,我终于把 DevOps Gate Job 搞定了。感谢@Vijay Aggarwal,以及在此问题上提供帮助的其他所有人。
下面是实际发生的事情以及最终是如何解决的。
[根本原因]
- DevOps Insight "environment sensitive" 处于决策阶段(不在 结果显示)。就我而言,我将 "STAGING" 放入 Gate Job 的 "Environment Name" 属性,因此 DevOps Insight 无法正确评估我在 Staging 阶段和 Build 阶段上传的所有测试结果。
DevOps 规则是 "Result Format Sensitive"也是,所以大家要慎重选择 "reporter" 摩卡或伊斯坦布尔。在我的例子中,我定义了 gulp 文件如下,但在中错误地将结果类型设置为 "mocha" 策略规则定义。
gulp.task("test", ["pre-test"], function() { return gulp.src(["./test/**/*.js"], {read: false}) .pipe(mocha({ reporter: "mocha-junit-reporter", reporterOptions: { mochaFile: './testResult/testResult-summary.xml' } }));
[如何解决]
- 将 Gate Job 的 "Environment Name" 字段留空。
- 在规则定义页面(在 DevOps 策略页面内),确保单元测试结果的格式类型为 "xUnit"。
Screenshot when DevOps Gate is finally passed