t.me/atinfo_chat Telegram группа по автоматизации тестирования

Как сделать сделать maven таску на bamboo с exit code 0 ?

Теги: #<Tag:0x00007f9b037638d8> #<Tag:0x00007f9b037634f0> #<Tag:0x00007f9b03763158> #<Tag:0x00007f9b03762c30>

Всем привет!
У меня есть Bamboo сервер, в ней план, джоба, в ней несколько тасок + maven таска + final таски за ними. Скажите, как можно сделать так, чтобы, независимо от того зафейлилась maven таска или нет, джоба отображалась как успешно завершенной ?

Или может быть есть возможность переопределить результат выполения теста?

Failing task since return code of [C:\tools\maven\bin\mvn.bat --batch-mode -Djava.io.tmpdir=C:\atlassian\Bamboo\temp\AUTOTEST-SRFCUCUMBER1-RUNSRF11FF -am -pl srf -PrunSeveralFeatures clean verify -Dtag1=~@skip -Dtag2=~@pre-setup -Dbrowser=firefox -Dremote=true -Dfeature="'src/test/resources/features/node-2/Login.feature''src/test/resources/features/node-2/Logout.feature'"] was 1 while expected 0

Для начала я думаю нужно ответить на один простой вопрос - а зачем так делать ? Ведь CI построен на принципе - если джоба завершилась без ошибок - значит она зеленая, все хорошо. Если есть какие то ошибки или проблемы - красная или желтая. Это ее суть. Для чего ее менять и что вам даст сокрытие ошибок ?

@biercoff Хорошо, у меня есть задача:
есть бамбу джоба, в ней две maven таски (первая выполняет тесты, другая final maven таска - выполняет зафейленные тесты, которые могут быть падать из-за нестабильности). То есть попытка интегрировать cucumber rerun в CI.
Нужно чтобы результат джобы зависил только от второй maven final таски

Возможны два варианта :

  1. Разнести эти две джобы на отдельные. Вторую с перезапуском зафейленых тестов сделать dependant от первой и просто игнорировать фейл первой, а всегда смотреть на результат второй.
  2. Быстрое гугление показало мне вот что - https://jira.atlassian.com/browse/BAM-9108 :

I have added the option “Use Maven’s Return Code” in the task configuration panel for Maven tasks. Checking this box will turn off looking for “Build Success” and instead make Bamboo use the return code from Maven. This will allow you to use the --fail-never flag to force a build to pass, as discussed above.
This feature should make it into Bamboo 3.3.1.

То есть нужно в первой джобе указать флаг --fail-never и включить “Use Maven’s Return Code” , но опять таки - я бы тогда разделил эти две джобы и эти опции включил бы только для первого прогона тестов. А вторую джобу сделал бы снова dependant от первой и там эти опции уже не включал бы. Если такое прокатит - отпишись здесь пожалуйста - было бы интересно узнать что из этого выйдет

2 Симпатий

@biercoff, второй вариант прошел на ура, огромное спасибо! :slight_smile:

Первый вариант для меня не пройдет, т.к. уже заточена инфраструктура, но все равно благодарю за еще один вариант.
PS: Сегодня с утра пришла мысль поиграться с скипом “maven cucumber reporting” плагин + maven profile, то есть, если скипнуть (не использовать) “maven cucumber reporting” плагин, то даже зафейленные тесты будут иметь “BUILD SUCESS” status. Но это уже другая тема

1 Симпатия

Отлично :slight_smile: