Получить тесты для выполнения в [SetUpFixture] во время работы через nunit3-console.exe

Я использую NUnit.ConsoleRunner.3.8.0 для запуска тестов NUnit 3.10.1.

Проблема в том, что если в фильтре запуска есть определенные тесты, я должен правильно настроить свой SUT. Это довольно болезненный процесс, поэтому я хотел бы сделать это только в том случае, если нужно запустить какой-то конкретный тест.

Есть ли способ получить список тестов, которые должны быть запущены консольным бегуном, в идеале в SetUpFixture?


person Andrey Gurenkov    schedule 01.10.2018    source источник


Ответы (1)


Если выбраны любые тесты в том же пространстве имен (или потомках), что и SetUpFixture, будет запущен SetUpFixture. Если ничего не выбрано, то оно не будет запущено.

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

По своему опыту работы с командами я обнаружил, что им иногда мешают стандарты (навязанные или выбранные самостоятельно), которые требуют, чтобы тестовые пространства имен соответствовали определенному дизайну. Это плохая идея при использовании такой системы, как NUnit, которая зависит от структуры пространства имен для управления выполнением тестов.

person Charlie    schedule 01.10.2018
comment
Я думал об этом, но как насчет выполнения параллельных тестов? Конфигурация SUT в SetUpFixture для определенных тестов начнется, в то время как тесты в других SetUpFixture начнут выполняться и не пройдут. - person Andrey Gurenkov; 02.10.2018
comment
Параллелизм - другое дело. Сначала вы должны заставить свои тесты работать правильно в структуре пространства имен, которая позволяет корректно работать SetUpFixture для группы TestFixxture. Как только это будет сделано, вы можете использовать атрибуты, чтобы определить, какие из них могут работать параллельно, а какие нет. - person Charlie; 04.10.2018