Проблема (Вопрос) заключается …
Есть АвтоТест клиент на котором гоняются тесты (Java+TestNG+Selenium-Selenide+Allure )… когда запускаю бат-ник локально - все работает как надо… json-ы создаются в allure-results. Все работает как и задумано.
Но когда батник запускается по команде с Есть Jenkins server +Allure plugin -a (через утилитку psexec) то файлы отчетов json не создаются в указанной директории (папка allure-results.)
json файлы отчетов создаются в папке allure-results! только сама єта папка расположена по такому пути C:\Windows\SysWOW64\allure-results
в скрипте бат4 - я прописал проверку что виден ли файл allure.properties ( allure.results.directory = абсолютній путь). єтот файл виден.
вот строка батч комманды от Jenkins-a (удаленный запуск автотестов на выполнение на АТ клиенте):
C:\temp\remote>psexec -u “юзер” -p “пароль” \ИП-адрес-АТ-компа -accepteula -h -s -i 2 cmd.exe /c “C:\путь-к-батнику\bin\run4.bat”
содержание run4.bat:
rem set all variables than may be changed
set app.version=2019.xyz
set root.dir=C:\SomeDir\WebAppPath
set report.folder=C:\allure-report
set allure.wow.dir=C:\Windows\SysWOW64\allure-results
rem set all variables than may be changed
Rem compose path's for automated tests
set cp=%root.dir%\lib\*;
set allure.prop=%root.dir%\cfg\allure.properties
set common.prop=%root.dir%\cfg\common.properties
set log=%root.dir%\cfg\log4j2.properties
set main=org.testng.TestNG
set suite.default=%root.dir%\Suites\testng-smoke-scenario-create-cw-tr-suite.xml
set suite.param=%1
if defined suite.param (
set suite=%suite.param%
) else (
set suite=%suite.default%
)
Rem compose path's for automated tests
Rem compose path's for copy report files
set report.source=%root.dir%\bin\allure-results
set report.dest.dir=%report.folder%\%app.version%
set report.dir=%root.dir%\report
rem run java app automated tests
echo java -cp %cp% -Dallure.cfg=%allure.prop% -Dcommon.cfg=%common.prop% -Dlog4j.configurationFile=%log% %main% %suite% -d %report.dir%
java -cp %cp% -Dallure.cfg=%allure.prop% -Dcommon.cfg=%common.prop% -Dlog4j.configurationFile=%log% %main% %suite% -d %report.dir%
это содержимое
allure.properties
allure.results.directory=C:/AutoTesting_TestMode/Adonis_selenide2-1.0-SNAPSHOT/bin/build/allure-results
Я думаю проблема состоит в том что джава приложения при запуске через psexec не воспринимают пути для вывода отчета и потому генерят его “прямо на месте” (то есть в SysWOW64).
На АТ клиент происходит логин с креденшиалами того же самого пользователя что и локально (когда прямо на АТклиенте запускается бат4.бат)
У меня получилось …
я сделал воркэраунд - в батч файле проверяю есть ли такая папка (allure-results в SysWOW64) и если она там есть то она переносится в ту что мне нужна.
вот так
REM workaround for allure-results placed in %allure.wow.dir%
IF EXIST %allure.wow.dir% (
echo workaround for allure-results placed in %allure.wow.dir% >> C:\temp\adonis-log\allure-sult-file.txt
echo %allure.wow.dir% exist >> C:\temp\adonis-log\allure-result-file.txt
echo Robocopy /MOV /S /E %allure.wow.dir% %report.dest.dir% >>C:\temp\adonis-log\allure-result-file.txt
Robocopy /MOV /S /E %allure.wow.dir% %report.dest.dir%
) ELSE (
echo %allure.prop% missing >> C:\temp\adonis-log\allure-result-file.txt
echo Robocopy %report.source% %report.dir%
Robocopy %report.source% %report.dest.dir%
)
REM COPY allure-results FILES
И дженкинс потом уже копирует из нее файлы к себе в воркспейс где и генерит там отчет Аллюр.
У меня не получилось … указать все-таки путь как надо. я пробовал указывать 64 битную версию psexec64 но результата не изменялся (папка с отчетами все также генерится не там где ожидается.).
Версии ОС и софта следующие …
AT client OS WindowsServer 2012 R2 Datacenter x64
Аллюр 2.13.0
ТестНГ 7.0
psexec 2.2