Как Visual Studio/mstest идентифицирует тестовые проекты?
Скажите (гипотетически 100%), что я случайно добавил проект unit test в качестве типа проекта "Библиотека классов" в решение VS2010. Затем я добавил сборки, необходимые для запуска его в качестве проекта unit test, но MSTest не будет принимать его, когда я нажму "Запустить все тесты в решении". Каковы критерии здесь?
У меня было несколько теорий, которые до сих пор не удались:
- Что-то в файле .testsettings(никаких ссылок на какие-либо сборки здесь, насколько я могу судить)
- Что-то в файле .SLN(ничего не найти)
- Что-то в AssemblyInfo.cs(нет, это не так)
- Имплицируется путем ссылки на (...) UnitTestFramwork.dll(Obv not)
Кто-нибудь?
Ответы
Ответ 1
В файле проекта есть 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
В приведенном выше примере он показывает, что проект имеет тип Тест и Windows (С#).
Ответ 2
В случае, если это помогает любому, у меня возникла противоположная проблема - я ошибочно добавил проект как Unit Tests. Чтобы изменить тип обратно в обычную библиотеку классов, я просто удалил теги ProjectTypeGuids, упомянутые в других ответах, предположительно VS вернул правильные.
Ответ 3
- В обозревателе решений щелкните правой кнопкой мыши имя проекта и выберите Выгрузить проект.
- Затем щелкните правой кнопкой мыши имя проекта и выберите Изменить имя_проекта .csproj.
-
Найдите элемент ProjectTypeGuids и следующий код. (Если вы не найдете элемент ProjectTypeGuids, просто вставьте его)
<Project>
<PropertyGroup>
<ProjectTypeGuids>{3AC096D0-A1C2-E12C-1390-A8335801FDAB};
{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
</ProjectTypeGuids>
</PropertyGroup>
</Project>
.
-
Сохраните изменения, щелкните проект правой кнопкой мыши и выберите Обновить Проект.