Allure+Gradle+TestNG после прогона тестов не создается xml файл для генерации HTML отчета

Доброго времени суток!

Пытають прикрутить Allure к фреймворку используя Gadle и TestNG.
После прогона тестов в папку build/allure-results попадают только json файлы.
Если я создаю отчет с помощью команды allure serve, то все работает.
Но я хочу создать создать HTML отчет для генерации которого нужен xml файл. Его после прогона тестов нет. Команда allure generate создает пустой отчет.

Вот так выглядит build.gradle

buildscript {

    repositories {
        jcenter()
    }

    dependencies {
        classpath "io.qameta.allure:allure-gradle:2.3"

    }
}

plugins {
    id "io.qameta.allure" version "2.8.1"
    id 'java'
}

allure {
    version = '2.2.1'
    autoconfigure = true
    aspectjweaver = true

}

version '1.0-SNAPSHOT'

sourceCompatibility = 1.8

repositories {
    mavenCentral()
}

test {
    useTestNG()
    dependsOn cleanTest
    systemProperties System.getProperties()

}

dependencies {
    compile group: 'org.seleniumhq.selenium', name: 'selenium-java', version: '3.141.59'
    compile group: 'org.testng', name: 'testng', version: '6.10'
    compile group: 'io.github.bonigarcia', name: 'webdrivermanager', version: '3.7.1'
    implementation('io.qameta.allure:allure-okhttp3:2.13.0')
    compile "io.qameta.allure:allure-testng:2.0-BETA10"

}

Что может быть не так?

Спасибо!

xml файлы использовались в первой версии allure. Вторая - генерирует отчеты на основании json.

Более того, в вашем конфиг файле - каша из зависимостей. Вы подключаете плагины разных версий, используя и старый, и новый gradle синтаксис. Репорт вы конфигурируете одной версии, но compile-time зависимость allure-testng у вас другая.

Ну и последнее - формат запуска. Вы используете глобально установленный allure для генерации и отображения репорта, игнорируя gradle plugin, у которого, в свою очередь, есть набор аналогичных тасков.

Наведите, для начала, порядок в конфиг файле. Затем определитесь, как вы хотите генерировать репорт. В зависимости от этого, внимательно изучите команды запуска.

Ссылки для сверки:
Подключение Allure Framework
Генерация Allure Framework

Доки там плохо апдейтятся. Лучше смотреть на странице плагина и адаптеров, ориентируясь на самый свежий тэг.

Спасибо!

Я поправила build.gradle


plugins {
    id "io.qameta.allure" version "2.8.1"
    id 'java'
}


allure {
    version = '2.13.0'
    autoconfigure = true
    aspectjweaver = true
}


version '1.0-SNAPSHOT'

sourceCompatibility = 1.8

repositories {
    mavenCentral()
    jcenter()
}


test {
    useTestNG()
    dependsOn cleanTest
    systemProperties System.getProperties()
    testLogging.showStandardStreams = true


}

dependencies {
    compile group: 'org.seleniumhq.selenium', name: 'selenium-java', version: '3.141.59'
    compile group: 'org.testng', name: 'testng', version: '6.10'
    compile group: 'io.github.bonigarcia', name: 'webdrivermanager', version: '3.7.1'
    compile group: 'io.qameta.allure', name: 'allure-testng', version: '2.13.0'
}


Теперь через команду ./gradlew allureServe отчет создается с корректнымы данными и открывается в дефолном браузере.
Через ./gradlew allureReport создается папка allure-report в build/reports/, но когда я открываю файл index.html в Firefox то отчет пустой.

Если не ошибаюсь, подобная ошибка возникает при определенном броузере. Попробуйте открыть в другом броузере.

Попробуйте поиграться с параметрами Аллюра (в вашем случае, вроде, надо только второй параметр указать в build.gradle, для команды allureReport, её надо заполнить путём где у вас при проходе теста создаётся папка с данными для отчета, по которым и строится отчет):

    resultsDir = file('/path/to/project/module1/build/allure-results')
    reportDir = file('build/allure-results')

А вы откройте консоль браузера. Много нового обнаружите :wink:

Локальные отчеты лучше открывать прямо из IDE. IntelliJ умеет поднимать web server на localhost при использовании меню открытия в браузере, что позволяет корректно отображать статический контент.

Но в большинстве случаев, это по сути лишнее действие. Команда serve нужна лишь для режима отладки. На CI же вы скорее всего будете использовать allure plugin, с которым не должно быть проблем с отображением.

Действительно, проблема была в обновленной версии Firefox.

нужно было поменять настройки этого конфига privacy.file_unique_origin , тогда все работает.

Да, на CI c плагином все работает как часы, но пока его еще нет, а отчеты хотят уже:woman_shrugging:

Спасибо всем за помощь!

1 лайк