MSTest не находит новые тесты из-за отсутствия ProjectTypeGuids в .csproj — почему?

В VS2010 случилось так, что при создании проекта файл .csproj не генерировал некоторый тег ProjectTypeGuids в первой PropertyGroup.

Это привело к тому, что я не мог видеть в окне TestView ни одного модульного теста MS в этом проекте и не выполнять его.

Я скопировал ProjectTypeGuids из другого файла .csproj, где тесты работали, и это сработало, по объяснению MoCapitan в: MSTest не находит новые тесты

Кто-нибудь знает, что такое ProjectTypeGuids, почему UnitTests не работают без него и по какой причине VS его генерирует или пропускает?


person Nemanja Avramovic    schedule 15.10.2015    source источник
comment
Руководство определяет, какие надстройки загружаются, когда VS открывает проект. 3AC096D0-A1C2-E12C-1390-A8335801FDAB — важный, в нем говорится, что я — тестовый проект, пожалуйста, загрузите надстройки поддержки тестирования. Если он отсутствует, то это, конечно, не может работать. Он не должен отсутствовать, в вашем вопросе нет намека на то, что может вызвать это.   -  person Hans Passant    schedule 16.10.2015


Ответы (1)


ProjectTypeGuids — это список «руководств, определяющих тип проекта». Поэтому, если вам не хватает руководства «Это проект модульного тестирования», инфраструктура VS по умолчанию не будет пытаться искать тесты в этом проекте (другие средства запуска тестов, такие как R #, могут по-прежнему запускать такие тесты).

Если вы создали проект как обычную «библиотеку классов» (вместо «проекта модульных тестов»), то руководства будут отсутствовать.

Частичный список типов: http://www.codeproject.com/Reference/720512/List-of-Visual-Studio-Project-Type-GUID

person Alexei Levenkov    schedule 15.10.2015
comment
Спасибо за хорошие и быстрые ответы. Теперь ясно, что я создал тестовый проект как библиотеку классов, потому что я не знал, что существуют дополнительные особенности .csproj, которые должны быть настроены для поддержки. И это не так очевидно, как очевидно, что TestProject действительно является библиотекой классов и нуждается в ссылке на библиотеку Unit Test. P.S. считайте ваш ответ отмеченным мной как полезный, потому что у меня нет репутации, чтобы сделать это :-) - person Nemanja Avramovic; 17.10.2015