Пометка Gradle нестабильной сборки в Jenkins при сбое тестов JUnit - PullRequest
21 голосов
/ 01 декабря 2011

У меня есть сборка Gradle в Jenkins с различными тестами JUnit, которые выполняются как часть сборки.Теперь, когда некоторые из тестов терпят неудачу, полная сборка помечается как неудачная - потому что Gradle говорит, что сборка не удалась.

Как я могу убедить Gradle в успешном завершении сборки, а затем Дженкинса пометить сборку как нестабильную?С муравьем это вообще не было проблемой.

Ответы [ 4 ]

24 голосов
/ 01 декабря 2011

Используйте свойство ignoreFailures в тестовом задании.

apply plugin: 'java'
test {
     ignoreFailures = true
}
4 голосов
/ 29 апреля 2016

Вы можете использовать внешние свойства для решения этой проблемы.

if (!ext.has('ignoreTestFailures')) {
  ext.ignoreTestFailures = false
}

test {
  ignoreFailures = project.ext.ignoreTestFailures
}

В этой настройке по умолчанию сбои сборки не удастся. Но если вы называете Gradle следующим образом: gradle -PignoreTestFailures=true test, то тестовые сбои не повредят сборку. Таким образом, вы можете настроить Jenkins на игнорирование неудачных тестов, но на сбой сборки, когда разработчик запускает тесты вручную.

1 голос
/ 17 июня 2015

Вы можете включить это в свой основной build.gradle для применения ко всем проектам и всем тестовым задачам.

allprojects{
    tasks.withType(Test) {
        ignoreFailures=true;
    }
}
0 голосов
/ 03 сентября 2018

Поскольку игнорирование не пройденного теста не могло быть использовано в моем случае, я обнаружил следующее. Если вы используете сценарий jenkinsfile. Можно обернуть ваш этап теста в оператор try-catch.

try {
 stage('test') {
  sh './gradlew test'
 } 
} catch (e) {
  echo "Test FAILED"
}

Это поймает исключение сборки, выданное gradle, но пометит сборку как нестабильную.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...