В 2007 году автор использовал Selenium для интеграционного и автоматического тестирования браузера. В настоящее время предпочтение отдается Playwright за его универсальность и совместимость на разных платформах. Чтобы обеспечить тестирование с конечной точки до конечной точки, тесты Playwright интегрируются в приложения .NET с помощью Visual Studio или VS Code.
Ранее использовался хак с WebApplicationFactory для запуска ASP.NET в рамках юнит-тестов. Однако с .NET 8 IHostBuilder заменил IWebHostBuilder, что потребовало изменений в коде.
Целью автора является написание тестов Playwright в NUnit, которые предполагают запущенное веб-приложение и определенный URL. WebApplicationTestBuilderFactory запускает веб-приложение в TestHost, динамически получая порт.
Фабрика строителей использует файл манифеста, сгенерированный MSBuild, который является необходимой обходной мерой в .NET 8. Однако этот хак можно устранить в .NET 9, что сделает тестирование более простым.
С этими улучшениями можно запускать как юнит-тесты, так и интеграционные тесты Playwright на различных операционных системах и средах, обеспечивая всестороннее тестирование сайта, обновленного до .NET 8.
feeds.hanselman.com
Updating to .NET 8, updating to IHostBuilder, and running Playwright Tests within NUnit headless or headed on any OS
