NET CORE - Модульные тесты - CustomWebApplicationFactory - PullRequest
0 голосов
/ 09 апреля 2020

Я создаю модульные тесты, используя CustomWebApplicationFactory. Мой сценарий следующий: два тестовых класса (Test1 и Test2). Оба класса используют CustomWebApplicationFactory, указывающую на запуск основного API net.

Если я запускаю все тесты из класса Test1, все в порядке. То же самое, если я запускаю все тесты из класса Test2. Проблема возникает, если я запускаю все тесты одновременно. Тесты разбились по разным причинам. Я предполагаю, что CustomWebApplicationFactory совместно используют что-то между двумя тестовыми классами, когда они выполняются одновременно.

CustomWebApplicationFactory не использует два экземпляра запуска API. Я не уверен, что это происходит, но кажется, что оба тестовых класса совместно используют поля stati c или что-то похожее.

В любом случае стоит ли запускать два совершенно разных экземпляра? Или другой способ сделать это?

Моя цель - иметь несколько классов тестов, но все они указывают на один и тот же API и запускать все тесты одновременно, без ошибок между ними.

Спасибо

1 Ответ

0 голосов
/ 09 апреля 2020

Я сталкивался с одной и той же проблемой несколько раз с WebApplicationFactory . Я знаю, что вы упомянули, что хотели бы запустить все тесты одновременно, но решение, которое сработало для меня, состоит в том, чтобы запускать тесты только последовательно.

Вы можете добавить файл AssemblyInfo.cs в свою интеграцию. Проекты тестов, такие как:

<ProjectPath>\Properties\AssemblyInfo.cs

С этим внутри:

using Xunit;

[assembly: CollectionBehavior(DisableTestParallelization = true)]

Это заставит ваши тесты запускаться последовательно и должно устранить ошибки, которые вы видите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...