Как получить Pass Gateway Risk (Bluemix Devops Insights)?

Я настроил конвейер bluemix devops с включенным узлом шлюза DevOps. Результат модульного теста (формат mocha) и результат покрытия (формат istanbul) были загружены в тестовые задания (с использованием плагина grunt-idra3 npm, как и в учебнике ⇒ github url).

Тем не менее, моя работа с воротами все еще не выполнена, хотя модульный тест показывает 100% прохождение.

Очень признателен, если кто-то может мне помочь.

Снимок DevOps Insight⇒ Снимок DevOps Insight

Все юнит-тесты пройдены, но все равно "решение для юнит-теста" не пройдено красным

Деталь политики и правил: политика "Стандартная политика испытаний Мокко"

Правило 1: Функциональный верификационный тест, Тип правила: Функциональный верификационный тест, Формат файла результатов: xUnit, Процентные проходы: 100%

Правило 2: Правило охвата Стамбула, Тип правила: Покрытие кода, Формат файла результата: Стамбул, Требуется минимальное покрытие кода: 80%

Правило 3: Правило модульного теста Mocha, Тип правила: Модульный тест, Формат файла результатов: xUnit, Процентные проходы: 100%

2 ответа

Решение

Потратив на это почти 3 недели, наконец-то я получил DevOps Gate Job полностью зеленым. Спасибо @Vijay Aggarwal и всем, кто помогал в этом вопросе.

Вот собственно, что случилось и как это решается окончательно.


[Первопричина]

  1. DevOps Insight "чувствителен к окружающей среде" на этапе принятия решения (но не при отображении результатов). В моем случае я включил "STAGING" в свойство "Environment Name" Gate Job, поэтому DevOps Insight неправильно оценивает все результаты теста, которые я загрузил как на этапе Staging, так и на этапе Build.
  2. Правила DevOps также "чувствительны к формату результата", поэтому люди должны быть осторожны при выборе "репортера" для Мокко или Стамбула. В моем случае я определил файл 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.
  2. На странице определения правила (на странице политики DevOps) убедитесь, что форматом результата модульного теста является "xUnit".

Скриншот, когда DevOps Gate окончательно пройден

Похоже, что существует несоответствие между форматом, указанным в правиле (xUnit), и форматом фактических результатов теста (Mocha).

Обновите правило, чтобы выбрать формат "Мокко" для юнит-тестов. Затем снова запустите ворота.

Другие вопросы по тегам