NUnit Запуск тестовых категорий параллельно - PullRequest
1 голос
/ 08 мая 2019

У меня есть тесты в разных классах (шаблон объекта Page), которые могут мешать друг другу при параллельной работе (они не являются * модульными тестами). Например, существуют классы: AddCustomerFormTests и EditCustomerFormTests, которые тестируют добавление клиентов и изменение информации о клиентах соответственно. Наиболее логичное (и удобочитаемое) решение, по-видимому, состоит в том, чтобы назначать приборы различным категориям и избегать одновременного запуска тестов из одной и той же категории, однако я не могу найти способ сделать это.

По сути, я ищу эквивалент [Parallelizable(ParallelScope.Fixtures)], который работает с категориями, а не с классами. Я не хочу объединять классы, потому что это сломало бы шаблон Page Object, а также SRP.

1 Ответ

0 голосов
/ 09 мая 2019

Интересный вопрос! Боюсь, я не думаю, что это в настоящее время возможно - без внесения изменений в структуру NUnit. (Хотя не поверьте мне на слово, другие могут что-то придумать!)

Если бы вы были , чтобы рассмотреть возможность внесения изменений в инфраструктуру NUnit, я бы посмотрел на реализацию новой IWorkItemDispatcher для распараллеливания работы на основе категорий. Затем вы можете просто выбрать правильный диспетчер при инициализации TestExecutionContext. (например, https://github.com/nunit/nunit/blob/ad943eb94fe280e661fc6c690043fe8eb0a11e40/src/NUnitFramework/framework/Api/NUnitTestAssemblyRunner.cs#L352-L358)

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

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