С#+WebDriver+NUnit 3 интеграция с Allure 2 Framework

как это скормить Allure
Directory = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);

чтобы в конфиге можно было написать
allure": {
“directory”: “…/…/…/resources/target/allure-results”
},

?

Здесь предложено так:

[OneTimeSetUp]
public void Init()
{
   Environment.CurrentDirectory = Path.GetDirectoryName(GetType().Assembly.Location);
}

не совсем понятно, как этот метод Init() связать с json …
“allure”: {
“directory”: “???”
},

Если я правильно понимаю, то allure берёт путь для создания своего каталога на основании переменной окруженния Environment.CurrentDirectory

Я использую эту же связку, в моем случае этот метод в классе Hooks (где есть BeforeScenario and AfterScenario степы. Этот метод:

[OneTimeSetUp]
public void Init()
{
   Environment.CurrentDirectory = Path.GetDirectoryName(GetType().Assembly.Location);
}

после окончания джобы c прогоном теста на gitlab (c помощью Runner), в папке ранера, на компе создается папка “allure-results” в которой находятся .json. После запуска следующей джобы, которая:

-powershell -command (путь)
-powershell -command allure serve
отчет не поднимается, папка allure-results не существует.

В чем может быть дело ? как поднять аллюр отчет ?
Возможно эти .json можно складывать в артефакты и там каким-то образом поднимать отчет ?

А если делаешь не

-powershell -command allure serve

а команду

-powershell -command allure generate

то папка с allure-report с отчетом появляется?

выполнил allure-generate. Да, папка allure-report появляется на уровень выше папки allure-results(они должны быть на одном уровне ?).
Открыва html - пустая

Не могу сказать насчет уровня, у меня она на одном уровне создается. Мне кажется это зависит от того, откуда запускается команда.

Я слышал, что отчет неправильно отображается в Хроме, вы открываете в этом броузере? Попробуйте в другом броузере открыть.

Папка allure-report появляется в WorkDirectory, применительно к дженкинсу - это в большинстве случаев workspace.

Дело было в (-powershell -command set-location) - не отрабатывала.
Отчет Алюра генерится, но его надо открывать вручную. Как это можно исправить ?

Никогда не делал этой операции через Powershell, использовал обычный git bash/cmd. Возможно это какие-то внутренние запреты самого powershell’a.

Можно ли использовать каким-либо образом переменные среды для файла Name.csproj
содержание которого, а конкретно UserName

ItemGroup
Content
Update=“C:\Users*UserName*.nuget\packages\specflow.allure\2.4.1.1\contentFiles\any\net45\allureConfig.json”>
CopyToOutputDirectory>Always</CopyToOutputDirectory
Content
ItemGroup

А зачем?
Хранить изменяемые файлы в хранилище бинарников, плохая идея. Они должны быть, либо в проекте, либо в соответствующем пути, известном тестам, где можно использовать переменные окружения.

если не указывать путь к NameUI.Spekflow.csproj в виде
C:\Users* UserName *.nuget\packages\specflow.allure\2.4.1.1\contentFiles\any\net45\allureConfig.json

то ругается не найдет файл. Хотелось бы универсальное решение, для запуска на различных компах(ранерах)
C:\Runner2\builds\05ed8cc1\0\remote-platform\uitests-draft\UITests.SpecFlow\bin\Release\net471\allureConfig.json’ не найден.

Вам надо положить этот файл (allureconfig.json) в свой проект тестов, а не дёргать его из нугет пакета, который скачался.

Тогда он будет корректно копироваться в outputdirectory…

1 лайк

хм…
allureConfig.json лежит в проекте на уровне, тестов. И чтобы генерился отчет(локально в том числе)
я поставил настройку “Поставьте свойство у файла, чтобы он копировался при сборке”

После этого в файле Name.csproj прописалось это свойство.

Update=“C:\UsersUserName.nuget\packages\specflow.allure\2.4.1.1\contentFiles\any\net45\allureConfig.json”>
CopyToOutputDirectory>Always</CopyToOutputDirectory

Тогда Вы какой-то не тот файл добавил в проект. Удалите этот и добавьте заново.

дело в том, что я не добавлял allureConfig.json он добавился после того, как я установил SpecFlow.Allure 2.4.1.1 и сбилдил проект.

Удалите Specflow. Он удалит этот файл.
После - добавьте руками файл с таким названием в корень проекта, добавьте его в проект.
Установите пакет заново.
После этого у вас будет редактируемый файл в корне проекта.

4 лайка