У меня есть папка с сборками, каждая из которых содержит реализацию определенного интерфейса (по-разному в каждой сборке). Я написал несколько модульных тестов для этого интерфейса и хотел бы автоматизировать задачу запуска тестов интерфейса для каждой реализации.Автоматическая инъекция зависимостей при тестировании модулей
У меня есть рабочее решение, что мне не нравится:
Написать код в реальном классе тест для загрузки (сборки) и создать экземпляр реализаций, хранить их в списке.
Напишите каждый тест, чтобы пройти через список реализаций, используя свои утверждения для каждого.
То, что я хочу вместо чтобы запустить все тесты на одном из вариантов осуществления, а затем перейти к следующему, чтобы запустить все тесты снова, и так далее. Моя мысль заключалась в том, чтобы найти способ сделать что-то вроде (программно):
- Загрузите сборки и создайте экземпляр реализаций - как раньше, но не внутри тестового класса.
- Создайте экземпляр тестового класса, введя следующую реализацию.
- Запуск тестов.
- Перейдите к следующей реализации, повторив процесс.
(я понимаю, что я мог бы быть перетасовки файлы в вашей файловой системы - как поместить сборку в одном месте> запустить тест, который загружает один реализации> заменить узел со следующей реализации, а затем повторите процесс, однако, если это возможно, мне бы хотелось что-то менее грубое.)
Я искал тест-бегунов nUnit (консоль и т. д.) для короткого вырезания, но пока ничего не нашел. Кто-нибудь знает, есть ли способ достичь того, что я хочу, используя nUnit или любой другой набор тестов, который можно контролировать программным путем? Или, может быть, есть еще один способ обойти все это, что удовлетворит критерии «что я хочу» выше?
Возможно, вам понадобится использовать атрибут 'TestCaseSource' для предоставления типов/экземпляров класса, который вы хотите протестировать. Вам понадобится загрузка сборки и т. Д., Но NUnit затем позаботится о остальной части сантехники для вас. http://www.nunit.org/index.php?p=testCaseSource&r=2.5.9 – forsvarir
'TestCaseSource' - это вариант, я согласен, но не буду добиваться цели: каждый тест для одной реализации, а затем переход к следующая реализация, повторяющая процесс_. Не получив хорошего решения от реализации 'IAddin' и' ISuiteBuilder', я в настоящее время просматриваю 'SuiteAttribute', который выглядит многообещающим. –