Добрый день,
возникла проблема с изображением названия @Step в allure report, если запускаем тесты уже с готового JAR файла.
Если в pipeline не указана jar, а запускаем с обычного gradla, то все отлично, видим название @Step
Перебрала всю pipelinu и build.gradle но так и не могу понять что ещё надо добавить
Вот рабочая часть build.gradle s allure i Shadowjar:
...
plugins {
...
id 'io.qameta.allure' version '2.8.1'
...}
allure {
version = '2.13.2'
autoconfigure = true
aspectjweaver = true
allureJavaVersion = '2.13.2'
}
dependencies{
...
implementation group: 'io.qameta.allure', name: 'allure-selenide', version: '2.13.2'
implementation group: 'io.qameta.allure', name: 'allure-testng', version: '2.13.2'
...
}
...
import com.github.jengelman.gradle.plugins.shadow.transformers.*
shadowJar {
zip64 true
manifest {
attributes 'Implementation-Title': 'Testing Jar File',
'Main-Class': 'project/.../'
}
from sourceSets.test.output
configurations = [
project.configurations.compileClasspath,
project.configurations.testRuntime
]
exclude '**/Log4j2Plugins.dat'
// Required for Spring
mergeServiceFiles()
append 'META-INF/spring.handlers'
append 'META-INF/spring.schemas'
append 'META-INF/spring.tooling'
transform(PropertiesFileTransformer) {
paths = ['META-INF/spring.factories' ]
mergeStrategy = "append"
}
}
publishing {
publications {
shadow(MavenPublication) { publication ->
project.shadow.component(publication)
}
}
repositories {
maven {
url 'https://nexus.../'
credentials {
username = username
password = password
}
}
}
}
Вот часть pipeline в которой указанo использование jar и публикация алуре репорта:
...
stage('Get TEST jar from Nexus') {
when { environment name: 'JAR_EXEC', value: 'true' }
steps {
// GET latest available version of artifact from NEXUS
// Artifact name defined in variable ARTIFACT_NAME
sh 'curl -s --cacert /certificate....pem -X GET "https://nexus...=jar" -L -o "${ARTIFACT_NAME}" > /dev/null'
}
} // stage: get test
...
stage('Execute test suite from JAR') {
when { environment name: 'JAR_EXEC', value: 'true' }
environment {
LC_ALL = 'en_US.UTF-8'
LANG = 'en_US.UTF-8'
LANGUAGE = 'en_US.UTF-8'
TESTNG_PARAMS = extendedChoiceParameter.getTestNgCliParams()
EXEC_PARAMS = "-Dselenide.remote=https://../hub -Dselenide.browserSize=1920x1080 -Dcapabilities.browserName=chrome -Dcapabilities.browserVersion=80.0 -Dchromeoptions.args=no-sandbox,disable-dev-shm-usage -Dcapabilities.enableVNC=true -Dcapabilities.enableVideo=false"
}
steps {
script {
if (env.TEST_NOTIFICATION_TO_SLACK && Boolean.parseBoolean("${env.TEST_NOTIFICATION_TO_SLACK}")) {
echo 'Enable TEST-Slack notification'
} else {
// disable it as default
env.TEST_NOTIFICATION_TO_SLACK = "false"
}
// Prepare workspace, cleanup result folders if exists
sh 'if [ -d "${WORKSPACE}/build" ]; then rm -Rf "${WORKSPACE}/build"; fi'
sh 'if [ -d "${WORKSPACE}/allure-report" ]; then rm -Rf "${WORKSPACE}/allure-report"; fi'
sh 'if [ -d "${WORKSPACE}/test-output" ]; then rm -Rf "${WORKSPACE}/test-output"; fi'
sh 'if [ -d "${WORKSPACE}/allure-results" ]; then rm -Rf "${WORKSPACE}/allure-results"; fi'
}
println("SUITE_FILE: "+SUITE_FILE)
println("TESTNG_PARAMS: "+TESTNG_PARAMS)
println("EXEC_PARAMS: "+EXEC_PARAMS)
wrap([$class: 'BuildUser']) {
sh "java ${EXEC_PARAMS} ${TESTNG_PARAMS} -TESt_NOTIFICATION_TO_SLACK=${TEST_NOTIFICATION_TO_SLACK} -jar ${ARTIFACT_NAME} ${SUITE_FILE}"
}
// Handle TestNG report
sh 'if [ -d "${WORKSPACE}/test-output" ]; then cp -R "${WORKSPACE}/test-output" "${WORKSPACE}/build/reports/tests/test-output"; fi'
}
}
} // stages
post('Publish Allure report') {
always {
script {
allure([
includeProperties: false,
jdk: '',
properties: [],
reportBuildPolicy: 'ALWAYS',
results: [[path: 'build/allure-results']]
])
if("${currentBuild.currentResult}" == 'UNSTABLE') {
currentBuild.result = 'FAILURE'
echo "Test failures appear mark the build as FAILED"
}
}
dir('build/reports/tests/') {
echo 'Publish properties'
sh 'for file in * ; do if [[ ! "$file" == "remoteChromeTest" ]]; then newFileName=`echo "$file" | tr -d "[:space:]" | tr -d "[:blank:]" | tr -cd \\\'.A-Za-z0-9_\\\'` ; mv -- "$file" "$newFileName" || true ; fi ; done'
sh 'ls -lhati'
archiveArtifacts artifacts: '**',
excludes: 'test/**',
allowEmptyArchive: true
}
Если кто-то сталкивался с данной проблемой и решил ее, подскажите пожалуйста, как вы это решили.
Ниже приложила куски репортов
Заранее благодарю
withoutSteps - там где запускаем тесты с jar
withSteps - там где groovy файл без упоминания jar файла и билдим с гредла