Я настроил Specflow для предназначения для платформы MsTest (вместо NUnit) путем определения его как это в app.config моей библиотеки классов 'спецификаций':
<configSections>
<section name="specFlow"
type="TechTalk.SpecFlow.Configuration.ConfigurationSectionHandler, TechTalk.SpecFlow"/>
</configSections>
<specFlow>
<unitTestProvider name="MsTest.2010" />
</specFlow>
Таким образом, после того как это существует, я вижу, что мои тестовые приспособления производятся правильно инструментом пользователя Specflow, с корректным TestClassAttribute () и методы, и т.д.:
[System.CodeDom.Compiler.GeneratedCodeAttribute("TechTalk.SpecFlow", "1.3.3.0")]
[System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[Microsoft.VisualStudio.TestTools.UnitTesting.TestClassAttribute()]
...
Сборки класса спецификаций, но теперь я не могу запустить тесты с помощью Теста-> Выполнение-> Все Тесты в Решении в Visual Studio 2010 на моей перспективе 64 поля. Почему VS не распознает, что они как допустимые тесты работают?
Мне пришлось заново создавать проект как тестовый проект
, а не просто библиотеку классов
- поскольку я начал разработку с NUnit и SpecFlow, я создал ванильную библиотеку классов для хранения моих спецификаций, которые были оформлены атрибутами NUnit. Я думал, что смогу просто изменить app.config этого существующего проекта, указав на фреймворк mstest, и перестать использовать NUnit, но VS2010 так и не распознала тесты, несмотря на правильное создание заглушек пользовательским инструментом specflow.
Итак... я добавил новый Test Project
к моему решению, переместил весь мой код spec в этот новый проект, затем перекомпилировал, и альт, VS2010 распознает тесты. Я уверен, что есть GUID, который он ищет в XML файла .csproj или что-то, что говорит ему подключить фреймворк тестирования, но я не копал так далеко.
Надеюсь, это кому-нибудь поможет.