Я работаю над интеграцией отчетов об экстенте с NUnit для моей среды автоматизации, стремясь сохранять подробные журналы выполнения тестов и снимки экрана. Идея состоит в том, чтобы создать структурированный отчет об экстенте, который показывает каждый метод [Test] в его классе [TestFixture] в качестве дочерних узлов.
Основная причина – фиксировать события жизненного цикла теста, такие как когда тест начинается и заканчивается, чтобы их можно было зарегистрировать в отчете об объеме. Без подключения ExtentReportManager в качестве прослушивателя он не сможет перехватить эти события, то есть не сможет записать в отчет необходимые сведения или снимки экрана. Это вложение необходимо для создания динамического и подробного отчета, отражающего фактическое выполнение теста.
Однако я столкнулся с препятствием при попытке прикрепить свой класс ExtentReportManager в качестве ITestListener. Кажется, что ни методы TestExecutionContext.CurrentContext.Listener, ни AddListener() для этой цели не работают. Я не уверен, что я что-то упускаю или мне следует использовать другой подход к NUnit.
Среды:
- Версия NUnit: 3.14.0
- Версия NUnit3TestAdapter: 4.5.0
- Выполнение тестов с использованием: NUnit Test Runner в Visual Studio li>
- Язык программирования: C#
- Среда: Selenium WebDriver, Extent Reports
- Класс ExtentReportManager предназначен для реализации ITestListener.
- BaseClass содержит такие методы, как CaptureScreen, инициализацию и разрыв WebDriver. вниз.
- [SetUpFixture] используется для глобальной настройки тестирования и демонтажа.
Запросить рекомендации:
h1>
- Как правильно подключить ExtentReportManager к выполнению теста NUnit, чтобы он прослушивал тестовые события?
- Есть ли альтернатива способ зарегистрировать ITestListener для тестов, выполняемых в NUnit Test Runner в Visual Studio?
- Есть ли предложения по беспрепятственному достижению этой интеграции в текущей среде NUnit?
Предпринятые шаги:- Создан класс ExtentReportManager, реализующий интерфейс ITestListener для захвата событий жизненного цикла теста.
Код: Выделить всё
public class ExtentReportManager : ITestListener { private readonly BaseClass baseInstance; public ExtentReportManager(BaseClass baseInstance) { this.baseInstance = baseInstance; } public void TestStarted(ITest test) { // Logic to create a child node in Extent Report var testName = test.Name; baseInstance.CaptureScreen(testName); // Capture screenshot // Create and log to Extent Report } public void TestFinished(ITestResult result) { // Logic to finalize the test node in Extent Report } // Other ITestListener methods... }- Попытался подключить ExtentReportManager в классе [SetUpFixture] с помощью методов TestExecutionContext.CurrentContext.Listener и AddListener() в соответствии с рекомендациями ChatGPT:
Попытался подключить ExtentReportManager в классе [SetUpFixture] с помощью методов TestExecutionContext.CurrentContext.Listener и AddListener(), как рекомендовано ChatGPT:
li>
Обнаружена ошибка:Код: Выделить всё
[SetUpFixture] public class ExtentReportSetUp { [OneTimeSetUp] public void GlobalSetup() { // Attempt 1: Direct assignment (does not work) // var extentReportManager = new ExtentReportManager(new BaseClass()); // TestExecutionContext.CurrentContext.Listener = extentReportManager; // Attempt 2: AddListener (does not work) // TestExecutionContext.AddListener(extentReportManager); } [OneTimeTearDown] public void GlobalTeardown() { // Flush the Extent Report } }
Попытка использовать TestExecutionContext.CurrentContext.Listener приводит к ошибке: 'TestExecutionContext ' не содержит определения для "Прослушивателя". - Попытка использовать TestExecutionContext.AddListener() приводит к аналогичной ошибке, указывающей, что AddListener не является определено.
Я ожидал этого, прикрепив ExtentReportManager как прослушиватель, он будет фиксировать и фиксировать все события жизненного цикла теста в отчете об экстенте, делая отчет более информативным и полезным.
Фактическое поведение:
Тесты выполняются, но ExtentReportManager ничего не регистрирует в отчете об экстенте, поскольку он не подключен в качестве прослушивателя.
Подробнее здесь: https://stackoverflow.com/questions/790 ... est-runner
Мобильная версия