.NET 6 запускает тесты xUnit без распараллеливания

#c# #testing #continuous-integration #xunit #.net-6.0

#c# #тестирование #непрерывная интеграция #xunit #.net-6.0

Вопрос:

У нас проблема с нашим .NET 6 CI, работающим с дроном. У нас есть тесты, которые работают с реальной базой данных postgres.

Тесты отлично выполняются локально, потому что Rider не распараллеливает их.

Но в CI тесты случайным образом завершаются неудачно, потому что данные в базе данных не соответствуют ожиданиям для данного теста.

Наше понимание (в соответствии со случайностью сбоев) заключается в том, что тесты выполняются параллельно в CI.

До сих пор мы пытались использовать конфигурационный файл xUnit ( xunit.runne.json ) :

 {  "parallelizeAssembly": false,  "parallelizeTestCollections": false,  "maxParallelThreads": -1 }  

И добавление [Collection] атрибута с именем в родительский класс всех тестовых классов :

 [Collection("Database Test")]  

В CI тесты выполняются с использованием dotnet test .

Есть какие-нибудь зацепки по этому поводу ? Заранее спасибо

Комментарии:

1. Вы имеете в виду, что ваши тесты на самом деле зависят от порядка их выполнения?

2. Нет, они не зависят от порядка выполнения, их просто нужно запускать по одному за раз

3. [Collection] атрибут должен выполнять эту работу, если только вы не выполняете разные тесты в разных процессах

4. У меня есть атрибут коллекции в классе, который расширяют мои классы тестов, должен ли я помещать его в каждый подкласс или он должен работать так ?