Тесты проходят, но сам отчет пустой. У меня есть подозрение, что отчет не строится, потому что тесты запускаются через TeamCity’вский NUnit runner, и по окончании в папке проекта не формируется TestResult.xml, на основе которого, если правильно я понимаю, строится и сам Allure отчет.Если это так, то какие есть пути решения этой проблемы?
Понятно…Я ожидал, что прикрутка будет проще. И печально, что не получится использовать TeamCity’вский runner.
А какой вы Build step использовали для запуска NUnit Console?
Просто Command Line с nunit-console командой ну и там уже параметры-)
А что бы после этого сразу создавался репорт в артифактах создают еще один билд степ с command line в котором я генерирую xml отчет в html используя allure-cli(не забудьте в кондишенах запуска поставить, чтобы комманд лайн степ выполнялся даже если предедущие степы зафейлились).
Хм…а без allure-cli разве нельзя обойтись? Я, правда, через nunit console не пробовал прогонять тесты, а лишь через GUI, куда помимо dll проекта добавлял assembly NUnitAllureAdapter.dll, и по окончании выполнения тестов создавался xml отчет.
А чтобы отчет трансформировался в html, эту проблему по идее должен решать как раз плагин Allure TeamCity.
Command Line билд-степ в котором пишем nunit-console C:\Users\user\Source\Workspaces\MAP\QA\Autotests\PlusTest\bin \Debug\PlusTest.dll
Создаем еще один билд степ с Command Line с надстройкой Execute: Even if some of the previous steps failed и путь к allure-cli/allure.bat generate path/to/directory/with/xml/file - путь к хмлке вы берете из степа 3, где вы указываете куда будут создаваться allure-xmlки
И это все, ах да, что бы сразу отчет можно было посмотреть в Тимсити артефактах, укажите путь к фолдеру где буду храниться html отчеты в Artifacts path(General Setting секция)
Спасибо. Но пока не запустилось
Есть какие-то проблемы с исполнением файла allure.bat
C:\Users\user\Downloads\allure-cli-master\allure-cli-master\src\main\scripts>allure.bat
Error: JAVA_HOME is set to an invalid directory.
JAVA_HOME = "C:\Program Files\Java\jdk1.7.0_75\bin\"
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation.
"-jar" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
а по поводу пути к xml - это путь, где будет сохраняться отчет или это путь, где лежит xml отчет, созданный NUnit? Дело в том, что Allure’вский отчет у меня не создается. Возможно, я не правильно подключил сам NUnit Allure Adapter? В инструкции как-то расплывчато написано, что нужно положить в директорию C:\Program Files (x86)\NUnit 2.6.3\bin\addins бинарники. Речь идет только о cs файлах из папки NUnitAllureAdapter? Или там должны лежать dll-ки?
Нужно было качать: allure-nunit2-0.2.1.zip и все заэкстрактить в C:\Program Files (x86)\NUnit 2.6.3\bin\addins
Путь к xml прописывается в файле bin\addins\config.xml собственно, что означает - после каждого прогона теста через nunit результат будет по этому пути.
На счет ошибки с JAVA_HOME, все просто, укажите в систем вериблах JAVA_HOME переменную и укажите путь к jdk, смотрите скрин: Screenpresso Cloud
Я сначала сам проект NUnitAllureAdapter добавлял в свои тесты. Из-за этого отчеты не формировались. Теперь все OK. Однако до окончательного штриха осталась проблема с батником, но теперь нужно указать путь к ALLURE_HOME. Я в переменных окружения указал путь, где лежит сам батник. Но видимо это не верный путь?
C:\Users\user\Downloads\allure-cli-master\allure-cli-master\src\main\scripts>allure.bat generate "C:\Program Files (x86)\NUnit 2.6.3\bin\AllureResults"
Error: ALLURE_HOME is set to an invalid directory.
ALLURE_HOME = "C:\Users\user\Downloads\allure-cli-master\allure-cli-master\src\m
ain\scripts\.."
Please set the ALLURE_HOME variable in your environment to match the
location of your Allure installation.
"-jar" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
На самом деле оказалось, что я скачал сначала какую-то левую сборку, в которой отсутствовала папка lib с jar файлом.
Заработало, но очет из xml не строится. Здесь наверное ошибка уже на стороне Allure
C:\allure-cli\bin>allure.bat generate "C:\Program Files (x86)\NUnit 2.6.3\bin\AllureResults"
Error on line 196
XTDE0410: An attribute node (version) cannot be created after the children of
the containing element
at xsl:call-template name="copy-all-without-namespace" (#192)
at xsl:apply-templates (#27)
processing /alr:allure-test-run/test-suites[1]/test-suite[1]/@version
at xsl:apply-templates (#197)
processing /alr:allure-test-run/test-suites[1]/test-suite[1]
at xsl:call-template name="copy-all-without-namespace" (#192)
at xsl:apply-templates (#14)
processing /alr:allure-test-run/test-suites[1]
in built-in template rule
java.lang.reflect.InvocationTargetException
C:\allure-cli\bin>allure.bat generate "C:\Program Files (x86)\NUnit 2.6.3\bin\AllureResults" -v 1.4.1
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further detail
s.
log4j:ERROR A "org.apache.log4j.ConsoleAppender" object is not assignable to a "
org.apache.log4j.Appender" variable.
log4j:ERROR The class "org.apache.log4j.Appender" was loaded by
log4j:ERROR [java.net.URLClassLoader@5d03462c] whereas object of type
log4j:ERROR "org.apache.log4j.ConsoleAppender" was loaded by [sun.misc.Launcher$
AppClassLoader@75da931b].
log4j:ERROR Could not instantiate appender named "console".
Successfully generated report to [C:\allure-cli\bin\allure-report].
Сама html-ка, правда, при этом создается, но на странице различные ошибки.
Евгений, еще раз здравствуйте. У меня появилась проблема с генерацией отчета через TeamCity. Он создается, но не правильно (ложный статус прохождения тестов и отсутствие скриншотов при ошибке). Вот что пишет AllureLog:
2015-03-30 15:03:53,535 [EventPumpThread] ERROR NUnitAllureAdapter.AllureEventListener - Exception in TestFinished "NUnit.Core.TestResult"
System.ComponentModel.Win32Exception (0x80004005): The handle is invalid
at System.Drawing.Graphics.CopyFromScreen(Int32 sourceX, Int32 sourceY, Int32 destinationX, Int32 destinationY, Size blockRegionSize, CopyPixelOperation copyPixelOperation)
at System.Drawing.Graphics.CopyFromScreen(Int32 sourceX, Int32 sourceY, Int32 destinationX, Int32 destinationY, Size blockRegionSize)
at AllureCSharpCommons.Utils.AllureResultsUtils.TakeScreenShot()
at NUnitAllureAdapter.AllureEventListener.TakeScreenshot()
at NUnitAllureAdapter.AllureEventListener.TestFinished(TestResult result)
Хотя при запуске через консоль руками - все нормально. Сталкивались ли с подобной проблемой?
Да, у меня также было.
Вроде было создано ишью где-то по этому поводу, но я так понял не было пофикшено еще.
Солюшен для меня на данный момент, я просто перешел на генерацию отчета в html по стандартным xml отчетам Nunit-а.
П.С. возможно я что-то упустил и у меня такая же проблема как и у вас, а возможно если запускается через консоль Teamcity то нужно по другому “приседать” и делать какой-то воркераунд.
С этим Allure’ом столько провозился, что думаю уже может обойтись стандартным отчетов. А каким образом вы генерируете стандартный отчет в html? Для этого существует какой-то плагин?