Как Visual Studio / mstest определяет тестовые проекты? - PullRequest
16 голосов
/ 10 августа 2011

Скажите (гипотетически 100%), что я случайно добавил проект модульного тестирования в качестве типа проекта "Библиотека классов" в решение VS2010. Затем я добавил сборки, необходимые для его запуска в качестве проекта юнит-теста, но MSTest не подхватит его, когда я нажму «Запустить все тесты в решении». Какие критерии здесь?

У меня была пара теорий, которые пока что провалились:

  • Что-то в файле .testsettings (здесь нет ссылок на какие-либо сборки, насколько я вижу)
  • Что-то в файле .SLN (ничего не может найти)
  • Что-то в AssemblyInfo.cs (нет, это не так)
  • Влияет, ссылаясь на (...) UnitTestFramwork.dll (Obv not)

Любой

Ответы [ 3 ]

30 голосов
/ 10 августа 2011

В файле проекта есть элемент 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 #) .

4 голосов
/ 12 апреля 2013

Если кому-то это поможет, у меня возникла противоположная проблема - я ошибочно добавил проект в качестве юнит-тестов. Чтобы изменить тип обратно на обычную библиотеку классов, я просто удалил теги ProjectTypeGuids, упомянутые в других ответах, предположительно VS вернул правильные.

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

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

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

...