Как 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 вернул правильные.

  1. В обозревателе решений щелкните правой кнопкой мыши имя проекта и выберите " Выгрузить проект".
  2. Затем снова щелкните правой кнопкой мыши имя проекта и выберите " Редактировать ProjectName.csproj".
  3. Найдите элемент ProjectTypeGuids и следующий код.(Если вы не найдете элемент ProjectTypeGuids, просто вставьте его)

    <Project> <PropertyGroup> <ProjectTypeGuids>{3AC096D0-A1C2-E12C-1390-A8335801FDAB}; {FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} </ProjectTypeGuids> </PropertyGroup> </Project>,

  4. Сохраните изменения, щелкните правой кнопкой мыши проект и выберите " Обновить проект".

Другие вопросы по тегам