如何获得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,以及在此问题上提供帮助的其他所有人。

下面是实际发生的事情以及最终是如何解决的。


[根本原因]

  1. DevOps Insight "environment sensitive" 处于决策阶段(不在 结果显示)。就我而言,我将 "STAGING" 放入 Gate Job 的 "Environment Name" 属性,因此 DevOps Insight 无法正确评估我在 Staging 阶段和 Build 阶段上传的所有测试结果。
  2. 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'
       }
     }));
    

[如何解决]

  1. 将 Gate Job 的 "Environment Name" 字段留空。
  2. 在规则定义页面(在 DevOps 策略页面内),确保单元测试结果的格式类型为 "xUnit"。

Screenshot when DevOps Gate is finally passed