Как создать отчет Allure программно — после завершения набора тестов

#java #testing #automated-tests #allure

Вопрос:

Как создать отчет Allure из кода Java?
Прямо сейчас я использую терминал вместе с allure-comandline в качестве allure generate build/allure-results --clean
Я хотел бы автоматически сгенерировать его после завершения набора тестов. Я провел небольшое исследование и нашел это https://mvnrepository.com/artifact/io.qameta.allure/allure-generator но, к сожалению, это не работает, или я не знаю, как его правильно использовать.
Также попробовал это:

 new AllureReportBuilder("1.5.4", new File("build/allure-report")).unpackFace(); 
new AllureReportBuilder("1.5.4", new File("build/allure-report")).processResults(new File("build/allure-results"));
 

У кого-нибудь есть рабочий код? Спасибо!

Ответ №1:

Я предполагаю, что вы используете Maven/Gradle для запуска тестов. Почему бы не использовать плагин Maven/Gradle для создания отчетов?

Очарование Мэйвен /
Очаровательная Грейдл

Ответ №2:

 new AllureReportBuilder("1.5.4", new File("build/allure-report")).unpackFace(); 
new AllureReportBuilder("1.5.4", new File("build/allure-report")).processResults(new File("build/allure-results"));
 

Если приведенный выше код, который вы написали, действительно создает отчет, то вы можете использовать его в чем-то подобном.

 // This will run only once, just before program is exiting
static {
    Runtime.getRuntime().addShutdownHook(new Thread(() -> {
    new AllureReportBuilder("1.5.4", new File("build/allure-report")).unpackFace(); 
    new AllureReportBuilder("1.5.4", new File("build/allure-report")).processResults(new File("build/allure-results"));
    }));
}
 

Добавьте приведенный выше код в свой базовый тестовый класс (если у вас нет базового тестового класса, просто добавьте его в существующий тестовый класс). Он будет выполнен после выполнения всех тестов.

Комментарии:

1. нет, new AllureReportBuilder("1.5.4", new File("build/allure-report")).unpackFace(); new AllureReportBuilder("1.5.4", new File("build/allure-report")).processResults(new File("build/allure-results")); совсем не работает. В этом проблема 😉 не в том, как выполнить код, но спасибо за воспроизведение 😉