t.me/atinfo_chat Telegram группа по автоматизации тестирования

Allure TFS генерация отчета падает с ошибкой

tfs
infrastructure
reporting
allure
webdriver
powershell
Теги: #<Tag:0x00007f9c4c849f78> #<Tag:0x00007f9c4c849e10> #<Tag:0x00007f9c4c849ca8> #<Tag:0x00007f9c4c849b40> #<Tag:0x00007f9c4c849a00> #<Tag:0x00007f9c4c849870>

(Lelik) #1

Подскажите пожалуйста, каким способом можно сделать автоматическую генерацию отчета.
В TFS сделаны такие шаги (ниже) и после выполнения тестов, добавлен шаг запуска powershell скрипта фактически запуск генерации отчета, который отлично работает, если я запускаю его из powershell самостоятельно.


Те. в ps1 файле такая инфо : allure serve E:\allure-result\CDM -h 10.10.32.164

Но увы генерация отчета падает с ошибкой

2019-05-31T09:40:43.2480937Z Generating script.

2019-05-31T09:40:43.2536439Z Formatted command: . 'E:\Bld\A1\270\s\CDMAutoTests\CDMTestOriginal\Files\BatFiles\Allure.ps1'

2019-05-31T09:40:43.3686181Z ##[command]"C:\WINDOWS\system32\powershell.exe" -NoLogo -NoProfile -NonInteractive -ExecutionPolicy Unrestricted -Command ". 'E:\Bld\A1\_temp\c60f2809-19ce-4e89-94b9-173f69ca77e1.ps1'"

2019-05-31T09:40:43.5752749Z ##[error]Program 'powershell.exe' failed to run: The specified executable is not a valid application for this OS platform.At line:1 char:1

+ &amp; 'C:\WINDOWS\system32\powershell.exe' --% -NoLogo -NoProfile -NonInt ...


(Vasiliy Rakshin) #2

Потому что этот файл C:\WINDOWS\system32\powershell.exe нерабочий.
Надо искать его тут C:\WINDOWS\System32\WindowsPowerShell\vX.X\powershell.exe.
Засетить нормально путь в переменную PATH или PSHOME
И ваш вопрос вообще не относится к Аллюру. Ещё лучше пробуйте читать сообщения об ошибке.


(Lelik) #3

Т.е. такой вариант должен сработать?


(Vasiliy Rakshin) #4

Я не знаком с настройкой powershell в TFS. Нажмите и попробуйте.
Скорее всего стоит плагин какой-то для работы с powershell, вот в настройках этого плагин надо смотреть путь к powershell.
Внутри \CDMTestOriginal\Files\BatFiles\Allure.ps1 скрипта нет ещё ссылок на powershell.exe? Там надо посмотреть.


(Lelik) #5

попробовала запустить из командной строки

2019-05-31T12:01:10.5825543Z Generating script.
2019-05-31T12:01:10.5912373Z Script contents:
2019-05-31T12:01:10.5917576Z C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe  allure serve E:\allure-result\CDM -h 10.10.32.164 -p 9999
2019-05-31T12:01:10.6366347Z ##[command]"C:\WINDOWS\system32\cmd.exe" /D /E:ON /V:OFF /S /C "CALL "E:\Bld\A1\_temp\4d8c7c3b-0bd5-4560-9af6-fc96a8d49524.cmd""
2019-05-31T12:01:11.6541242Z allure : The term 'allure' is not recognized as the name of a cmdlet, function, script file, or operable program. 
2019-05-31T12:01:11.6541583Z Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
2019-05-31T12:01:11.6541925Z At line:1 char:1
2019-05-31T12:01:11.6542573Z + allure serve E:\allure-result\CDM -h 10.10.32.164 -p 9999
2019-05-31T12:01:11.6542659Z + ~~~~~~
2019-05-31T12:01:11.6542861Z     + CategoryInfo          : ObjectNotFound: (allure:String) [], CommandNotFoundException
2019-05-31T12:01:11.6543290Z     + FullyQualifiedErrorId : CommandNotFoundException
2019-05-31T12:01:11.6543847Z  
2019-05-31T12:01:11.7420215Z ##[error]Cmd.exe exited with code '1'.
2019-05-31T12:01:11.7901049Z ##[section]Finishing: Command Line Script

Получается что Allure может быть запущен на машине только под моим акаунтом


(Vasiliy Rakshin) #6

Вы, походу, не то совсем делаете.
Вы установили Allure commandline на машину с TFS.
Вам надо в PATH добавить путь к установленному commandline \.allure\allure-2.xxx.xxx\bin\allure.bat
И теперь просто настроить запуск cmd команды allure serve E:\allure-result\CDM -h 10.10.32.164 -p 9999 в папке с проектом.
И не нужно никаких powershell


(Lelik) #7

Спасибо. Получилось. Запускаю command line script

C:\Users\lelik\scoop\apps\allure\2.12.1\bin\allure.bat serve E:\allure-result\CDM -h 10.10.11.123 -p 8778

Теперь у меня еще несколько вопросов, надеюсь найти ответ.

Сггенерился отчет и он жив, пока запущена консоль. Я могу поставить таймаут (например 2 мин), но в этом случае , по истечении 2 минут закроется консоль и с ней отчет.
Воторой вопрос. если мне удастся оставить запущенную консоль, тогда мне перед следующим запуском тестов, нужно закрыть консоль запущенную накануне.


(Vasiliy Rakshin) #8

Ну это мы настроили в лоб.
А вообще-то тогда лучше настроить такой плагин - https://docs.qameta.io/allure/#_teamcity
Тогда не будет проблем с консолью, и все отчеты будут храниться и открываться для нужных сборок.


(Lelik) #9

На сколько я понимаю, нужно иметь teamcity что бы поставить плагин.


(Vasiliy Rakshin) #10

Извиняюсь, попутал.
Тогда вам надо просто использовать другую команду - allure generate <directory-with-results> https://docs.qameta.io/allure/#_generate_the_report и генерировать отчет.


(Valentin G ) #11

Используйте команду не allure serve а allure generate, тогда у вас будет сгенерирован отчет, который вы можете сохранять в артифактах и потом просматривать.


(Bleakers) #12

Здравствуйте!
А почему не используете отчеты самого TFS? Ведь они гораздо удобнее allure.