Я настроил тестовые задания Jenkins, которые будут запускать тесты Cucumber, и хочу, чтобы мои работы всегда были успешными до определенного порогового значения (которое я контролирую).Плагин Allure всегда помечает мои сборки как «НЕУСТОЙЧИВЫЕ», когда я провалил тесты, но не хочу, чтобы мои сборки были нестабильными.Как я могу изменить это поведение с помощью allure?
Я попытался установить <testFailureIgnore>true</testFailureIgnore>
в pom.xml, что позволяет Maven Build быть успешным.Тем не менее, я вручную проверяю результаты Allure в файле prometheusData.txt, который генерируется, и не удается / передает сборки на основе этого результата.
Я хочу иметь возможность установить статус успеха / отказа на основе порога 80%.Я не знаю ни о каком пороговом значении, существующем сейчас в Allure, поэтому мне пришлось сделать это следующим образом
Конвейерный скрипт
def testsInfo = readFile "${env.WORKSPACE}/allure-report/export/prometheusData.txt"
def passingTests = 0;
def totalTests = 0
def lineText = ''
def lineNum = 0
while(lineText != 'found'){
findText = testsInfo.split("\n")[lineNum]
if(findText.contains('launch_status_passed')){
passingTests = findText.split(' ')[1].toInteger()
}
if(findText.contains('launch_retries_run')){
totalTests = findText.split(' ')[1].toInteger()
lineText='found'
}
lineNum++
}
echo 'passing tests: ' + passingTests + ' total tests: ' + totalTests
percentSuccess = ((passingTests / totalTests) * 100).toString().split('\\.')[0]
echo 'Percent of tests that passed: ' + percentSuccess
if(build_ok && (percentSuccess.toInteger() > 80)) {
currentBuild.result = 'SUCCESS'
echo 'build OK'
} else {
currentBuild.result = 'FAILURE'
echo 'build bad'
}
Вывод Jenkins
[INFO]
[INFO] Results:
[INFO]
[ERROR] Failures:
[ERROR] expected:<true> but was:<false>
[ERROR] expected:<[1].00> but was:<[2].00>
[ERROR] expected:<1.[0]0> but was:<1.[4]0>
[INFO]
[ERROR] Tests run: 90, Failures: 3, Errors: 0, Skipped: 0
[INFO]
[ERROR] There are test failures.
[INFO] -----------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] -----------------------------------------------------------------
[INFO] Total time: 04:05 min
[INFO] Finished at: 2019-06-24T17:31:36Z
[INFO] Final Memory: 33M/1349M
[INFO] -----------------------------------------------------------------
Allure report was successfully generated.
Creating artifact for the build.
Artifact was added to the build.
[Pipeline] // stage
[Pipeline] readFile
[Pipeline] echo
passing tests: 96 total tests: 100
[Pipeline] echo
Percent of tests that passed: 96
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
Finished: UNSTABLE