Я просто (сегодня) впервые попробовал SpecFlow. Я играю, создавая новую библиотеку классов в VS2010 Pro и добавляя файл определения FeatureFlow.
Дело в том, что интеграция, похоже, не работает должным образом, с множеством различных ошибок. Я выбрал MsTest в качестве тестового бегуна, потому что меня не беспокоит вызов NUnit (я бы хотел использовать NUnit в долгосрочной перспективе, но на данный момент я просто хочу получить некоторый код BDD). Однако сгенерированные файлы кода продолжают ссылаться на NUnit - что явно неправильно, так как я только что сказал SpecFlow для запуска с использованием MsTest. Я сделал все, что мог придумать, чтобы снова вызвать генерацию кода, включая создание нового проекта библиотеки классов с опцией MsTest, выбранной в меню "Сервис" > "Параметры" > "SpecFlow".
Если я оставлю поле тестового бегуна в поле "Авто" и щелкните правой кнопкой мыши файл функции, затем выберите "Запустить сценарии сценариев". Я получаю сообщение об ошибке "Не удалось найти подходящий тестовый бегун".
Если я вместо этого изменил поле тестового бегуна на MsTest, я получаю другое сообщение об ошибке при выполнении того же самого действия: "Object Reference не установлен в экземпляр объекта". Я не удивлен этим, так как он все еще пытается запустить тесты NUnit, хотя я явно просил MsTest, хотя, очевидно, это не должно быть noref и представить это пользователю.
Что я делаю неправильно? Документация не помогает, и, насколько я вижу, нет часто задаваемых вопросов.
edit # 1. Я установил, что фактическая настройка, которую я ищу, предоставляется с помощью App.Config
с использованием поля <unitTestProvider name="MsTest" />
. Я вижу, что произошло - поле в меню параметров Visual Studio, похоже, не изменяет проект, над которым вы сейчас работаете. Дело в том, что это похоже на то, что это поле ничего не делает. Теперь я убедил SpecFlow генерировать классы MsTest и работать с помощью бегуна MSTest.
Итак, теперь вопрос превращается в несколько другое: Что (если что-либо) делает инструмент > Опции > SpecFlow > Test Runner Tool?