Генерация и открытие Allure отчета из gradle

Дык если ниодной версии не установлено, то нужно установить. Гугл в помощь

Привет,

Там в последних версиях сделано существенное изменение - введено понятие бандлов. Проблема, с которой мы столкнулись, когда CLI всегда скачивал зависимости - это то, что у многих пользователей (в особенности из Индии :slight_smile: ) либо нет постоянного подключения к Интернету, либо оно идет через прокси. Это создает множество проблем. Теперь это работает так:

  1. То, что раньше скачивалось автоматически теперь называется bundle (это вроде бы просто jar или zip, я не помню точно). На каждую версию отчета - свой bundle, содержащий логику генерации отчета.
  2. Нужно явно вызвать команду для установки бандла для каждой нужно версии. В простейшем случае это делается командой: $ allure upgrade. Эта команда сама скачивает бандл с Интернета. Если у вас нет Интернета, то бандл нужно положить руками в определенную папку в домашнем каталоге (поизучайте ~/.allure/).
  3. Если в системе есть несколько бандлов, то можно переключаться между ними, чтобы команда $ allure generate по-умолчанию (без флага -v) использовала текущий выбранный бандл. Это делается командой $ allure switch.

В итоге решение такое - сделать $ allure upgrade, а потом $ allure generate.

3 лайка

Ну эта ошибка ушла, это уже хорошо - теперь появилась другая

Exception in thread "main" ru.yandex.qatools.allure.data.ReportGenerationExcepti
on: Could not find any allure results
        at ru.yandex.qatools.allure.data.AllureReportGenerator.generate(AllureRe
portGenerator.java:58)
        at ru.yandex.qatools.allure.data.AllureReportGenerator.generate(AllureRe
portGenerator.java:53)
        at ru.yandex.qatools.allure.AllureMain.main(AllureMain.java:48)
←[0;31mERROR: ←[mCommand aborted due to exception org.apache.commons.exec.Execut
eException: Process exited with an error: 1 (Exit value: 1).

Пробовал в разных сочетаниях…сама xml есть…Но тут уже боюсь даже Ваня, не поможет. А у вас сработало @heartwilltell

Таже фигня :slight_smile:

Судя по xml, версия тянется правильная

ns2:test-suite start="1440756132896" stop="1440756149538" version="1.4.17" xmlns:ns2="urn:model.allure.qatools.yandex.ru">

я забил и даунгрейднулся на 2.3

Работает с ним?

Решил проблему и с 2.4
Достаточно было сделать allure upgrade - он подкачает бандл.
У меня проблема возникала в том что я выполняю команду прямо из папки где лежит xml, а ее выполнять нужно из каталога где лежит папка с xml указав к ней путь

cd /путь к вашему проекту/build
allure report generate allure-results -o reports/allure-report

1 лайк

Да с 2.4 мне тоже upgrade помог, а там получается, что то с путями у меня тоже - сейчас поэкспериментирую

То есть allure-cli должен лежать в папке /build? Я правильно понял?

Тоже заработало. Можно закрыть тему.

нет, allure cli у вас может лежать где угодно, unix way конечно это куда-то в /opt положить и сделать софт линк бинарника в /usr/bin

Это всего лишь вызов утилиты которая генерит отчет из xml

После прохождения тестов, ваш алюр адаптор должен генерить вам xml файлик, который эта утилита и превращает в отчет.

То куда этот xml у вас генерится зависит от того как вы настроили свой build.gradle

должен выглядить примерно так:

plugins {
    id "java"
}

group 'com.project'
version '1.0-SNAPSHOT'

sourceCompatibility = 1.8

repositories {
    mavenCentral()
}

configurations {
    agent
}

ext { 
     aspectjVersion="1.8.6"
     allureVersion="1.4.17"
}

dependencies {
     ... Ваши зависимости
    compile "ru.yandex.qatools.allure:allure-report-data:${allureVersion}"
    compile "ru.yandex.qatools.allure:allure-testng-adaptor:${allureVersion}"
    agent   "org.aspectj:aspectjweaver:${aspectjVersion}"
}

test.doFirst {
    jvmArgs "-javaagent:${configurations.agent.singleFile}"
}

test {
    useTestNG() {
        suiteXmlFiles << new File(rootDir, "testng.xml")
    }
    systemProperties = System.properties
}

и в src/test/resources нужно положить файл allure.properties с содержанием:
allure.results.directory=build/allure-results

Путь указывайте какой вам нужен

Потом после тестов, как получите xml

cd /путь к вашему проекту/build
allure report generate allure-results -o reports/allure-report

Да нет - из консоли и у меня заработало. Я хочу что бы Gradle сам генерил и открывал отчет (для мануальщиков)
но пока

task generateAllureReport(type: Exec) {
    commandLine "allure-cli\\bin\\allure report generate build\\allure-results -o build\\reports\\allure"
}
test.finalizedBy(generateAllureReport)

task openAllureReport(type: Exec) {
    commandLine "allure report open -o build\\reports\\allure"
}

:generateAllureReport FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':generateAllureReport'.
> A problem occurred starting process 'command 'allure-cli\bin\allure report gen
erate build\allure-results -o build\reports\allure''

ну тогда не знаю, как не знаю и того - зачем так осложнять себе жизнь, проще научить обезьянку зайти в папку и кликнуть 2 раза мышкой на index.html

Возможно, но такая задача мне поставлена. Там даже потом может и кликать никто не будет. Есть ведь CI.

Доброго времени суток, а вы решили проблему?

A problem occurred starting process ‘command ‘allure-cli\bin\allure report gen
erate build\allure-results -o build\reports\allure’’

У меня такая же проблема сейчас… :frowning:

Доброго времени суток) Интересует тот же вопрос, нашли решение проблемы?

upd. Нашел решение проблемы) Может кому еще нужно будет.

task generateAllureReport(type: Exec) {
        commandLine "allure", "generate build/allure-results"
}
1 лайк

Также сделал :slight_smile:

вообще есть отличный плагин которй умеет работать с Allure GitHub - d10xa/gradle-allure-plugin: Gradle plugin generating Allure report from test results

2 лайка