Как Visual Studio /mstest определяет тестовые проекты?
Скажите (на 100% гипотетически), что я случайно добавил проект модульного тестирования в качестве типа проекта "Библиотека классов" в решение VS2010. Затем я добавил сборки, необходимые для его запуска в качестве проекта модульного тестирования, но MSTest не подхватит его, когда я нажму "Запустить все тесты в решении". Каковы критерии здесь?
У меня была пара теорий, которые пока что провалились:
- Что-то в файле.testsettings (здесь нет ссылок на какие-либо сборки, насколько я вижу)
- Что-то в файле.SLN (ничего не могу найти)
- Что-то в AssemblyInfo.cs (нет, это не так)
- Влиять, ссылаясь на (...)UnitTestFramwork.dll (Obv нет)
Кто-нибудь?
3 ответа
В файле проекта есть элемент XML с именем ProjectTypeGuids
, который содержит несколько GUID, которые обозначают тестовый проект. Пример следующим образом.
<Project>
<PropertyGroup>
<ProjectTypeGuids>{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
</PropertyGroup>
</Project>
Вот список известных идентификаторов GUID типов проектов для Visual Studio 2010: http://onlinecoder.blogspot.com/2009/09/visual-studio-projects-project-type.html
В приведенном выше примере показан проект типа Test и Windows (C#).
Если кому-то это поможет, у меня возникла противоположная проблема - я ошибочно добавил проект в качестве юнит-тестов. Чтобы изменить тип обратно на обычную библиотеку классов, я просто удалил теги ProjectTypeGuids, упомянутые в других ответах, предположительно VS вернул правильные.
- В обозревателе решений щелкните правой кнопкой мыши имя проекта и выберите " Выгрузить проект".
- Затем снова щелкните правой кнопкой мыши имя проекта и выберите " Редактировать ProjectName.csproj".
Найдите элемент ProjectTypeGuids и следующий код.(Если вы не найдете элемент ProjectTypeGuids, просто вставьте его)
<Project> <PropertyGroup> <ProjectTypeGuids>{3AC096D0-A1C2-E12C-1390-A8335801FDAB}; {FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} </ProjectTypeGuids> </PropertyGroup> </Project>
,Сохраните изменения, щелкните правой кнопкой мыши проект и выберите " Обновить проект".