Удаленка для jenkins+selenide+selenoid+allure+docker спецов на 2-3 часа в день. 100% remote! Присоединиться к проекту

Solved: Ошибка поиска результатов Allure2.5. Jenkins pipelines +C# + AWS + Allure plugin (2.26)

pipeline
allure
Теги: #<Tag:0x00007fedc45fe5b0> #<Tag:0x00007fedc45fe420>

(Pavel Stryhelski) #1

Всем привет!
перечитал много материала касаемо Аллюра и пайплайнов, но так и не нашел ответа на свой вопрос.

Суть вопроса:
Тесты запускаются на слейве AWS и генерируют аллюр результаты. Если перейти в папку на слейве они ЕСТЬ:
…folder\bin\Debug\allure-results - тут лежит ряд джейсонов

далее мной выполняется степ в пайплане

stage(‘Publish Allure Report’) {
try {
dir("${pathToJob}") {
allure([
includeProperties: true,
jdk : ‘’,
properties : [],
reportBuildPolicy: ‘ALWAYS’,
results : [[path: ‘allure-results’]]
])
}
} catch (allurePublishError) {
echo "Something is wrong with Allure publishing. Error: " + allurePublishError
}
}

Так вот, данный степ выдает следующую ошибку:

C:\jenkins_slave\tools\ru.yandex.qatools.allure.jenkins.tools.AllureCommandlineInstallation\1.4.23.hotifx on TestAutomation (sir-tq38657k)
[Debug] $ C:\jenkins_slave\tools\ru.yandex.qatools.allure.jenkins.tools.AllureCommandlineInstallation\1.4.23.hotifx\bin\allure.bat generate “C:\jenkins_slave\workspace\PSF\Automation\MicroservicesAutomation\41\MoneyTransfer\bin\Debug\allure-results” -o “C:\jenkins_slave\workspace\PSF\Automation\MicroservicesAutomation\41\MoneyTransfer\bin\Debug\allure-report”
Exception in thread “main” ru.yandex.qatools.allure.data.ReportGenerationException: Could not find any allure results
at ru.yandex.qatools.allure.data.AllureReportGenerator.generate(AllureReportGenerator.java:58)
at ru.yandex.qatools.allure.data.AllureReportGenerator.generate(AllureReportGenerator.java:53)
at ru.yandex.qatools.allure.AllureMain.main(AllureMain.java:48)
Command aborted due to exception {}.

Самое интересное, что он создает папку allure-report и начинает создавать там папки. Но, падает с экспешеном.

Далее,
если я генерирую отчет в ручную:

dir("${varAllureFolder}") {
try {
bat “allure.bat generate …\…\allure-results --clean -o …\…\allure-report”
} catch (generateReport) {
echo "Error during report generation. Error: " + generateReport
}
}
то все работает отлично - отчет генерится.
Далее я запускаю pipeline allure command - опять ошибка про генерацию отчета, НО он аттачит ранее сгенерированный отчет из папки в дженкинс вообще без проблем.

Т.е. на данном этапе у меня очень большие сомнения по поводу:

results : [[path: ‘allure-results’]]

Чего я тут только не поробовал:

  • targets/allure-results
  • **/allure-results
  • …/allure-results

Все это бестолку, почти все время ошибка о ненахождении папки с результатами.

Есть мысли?

UPD: проблема устранена. Решение оказалось очень простым, но не очевидным: allure{} pipiline использует CommandLine для генерирования отчета. Его нужно настраивать в “Global Tools Configuration”. Очень странно, что по дефолту в Дженкинсе стоит очень старая версия. Поменял на 2.6.0 - все заработало как нужно.


(Баранов Иван) #2

Нужно указывать путь к allure-results относительно текущей рабочей директории. Меня смущает путь …/bin/Debug/allure-results. Скорее всего рабочая директория - та, что выше bin. Тогда путь будет bin/Debug/allure-results.


(Pavel Stryhelski) #3

Т.к. это пайплайн, то в нем я указываю рабочую папку (текущую) откуда я делаю действия.
Т.е. в данном моменте:
dir("${pathToJob}")
указывается что я работаю в папке
…\bin\Debug
следовательно, все дальнейшие действия делаются относительно данной папки. Поэтому, если я нахожусь уже в Дебаг папке, не вижу смысла прописывать Аллюру дополнительно еще “bin/Debug/allure-results”