MSTest: тесты не выполняются, поскольку тесты не загружены или выбранные тесты отключены - PullRequest
61 голосов
/ 23 февраля 2010

У меня есть решение c # со следующей структурой:

mySolution
  myProject
  myProject.MSTests
    References
      Microsoft.VisualStudio.QualityTools.UnitTestFramework
    sutMSTests.cs

sutMSTests.cs:

[TestClass()] 
public class sutMSTests
{
    [TestMethod]
    public void MyTest0()
    {
        Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreEqual(4, 2 + 2);
    } 
}

Когда я пытаюсь запустить тесты через Test, Run, All Tests In Solution, в строке состояния VS2008 появляется следующее:

Тесты не выполняются, поскольку тесты не загружены или выбранные тесты отключены.

Test, Windows, Test View не показывает никаких тестов.

Примечание: я создал тесты вручную (работает для xUnit.net) вместо использования мастеров Microsoft.

Я сравнил мою созданную вручную установку MSTest с настройкой другого теста, который я сгенерировал с помощью мастера, и они выглядят достаточно .

Вопрос: Каковы наиболее вероятные причины сообщения об ошибке выше?

Редактировать 2010-02-25: Дополнительная информация:
Я щелкнул правой кнопкой мыши папку Элементы решения и выбрал Добавить, Новый проект, введите Тестовые проекты, Тестовые документы :: Шаблон тестового проекта Visual Studio.

Новый проект по умолчанию ничего не делает, тест "TestMethod1" был обнаружен и пройден.
Однако мой тест не обнаружился ... поэтому я скопировал и вставил свой метод теста в стандартный проект теста TestProject1.

Мой тест был обнаружен в «TestProject» НО, а не в его исходном местоположении.

Я внимательно сравнил файлы, организацию и настройки «TestProject1» с моим созданным вручную тестовым проектом.

На данный момент я предполагаю , что некоторые настройки выполняются с помощью шаблона тестового проекта Visual Studio, который трудно обнаружить.

imo, создать тестовый проект вручную должно быть так же легко, как и создать его с помощью шаблона тестового проекта Visual Studio.

пожалуйста, обратите внимание: я не говорю, что я против использования шаблона тестового проекта Visual Studio; Мне нравится понимать, что скрывается за занавесом, так как это делает меня намного лучшим программистом.

Ответы [ 18 ]

1 голос
/ 15 сентября 2011

При возникновении этой проблемы в Visual Studio необходимо создать тестовый проект. 1. Выберите «Тест» на панели инструментов и выберите «Новый тест». Создайте свой проект и на этом этапе создайте свой метод тестирования. Это должно работать после этого момента.

1 голос
/ 28 апреля 2011

Это должно быть ошибкой и является абсолютной болью, особенно потому, что вам нужно повторно включать каждый метод тестирования в отдельности. Однако немного побочного мышления дало лучшее решение - переименовать тестовый класс и перестроить. Затем переименуйте его обратно. Кажется, работает. Упс - нет, это не так. Переименование класса работает, но когда оно переименовано обратно, оно возвращается к исходным настройкам. Хитрость заключается в том, чтобы закрыть Visual Studio и удалить файл .vsmdi (метаданные теста Visual Studio). Это будет восстановлено.

0 голосов
/ 07 октября 2016

Я использовал метод public TestContext TestContext для записи результатов теста и изменил область действия на private. Это сделало каждый тест не обнаруживаемым. Поменял его обратно на public.

0 голосов
/ 06 июля 2013

Была такая же проблема, но, читая предыдущие ответы, все выглядело хорошо.

В моем случае я только что запустил набор тестов, внес небольшое изменение, построил решение и попытался запустить тест. Нет идти Я пытался построить еще пару раз и искать проблемы, которые пробовали другие люди. Все еще не идти.

Я нажал клавишу ввода в одном из моих методов тестирования, чтобы добавить новый, и нажал клавишу F6, чтобы построить решение, и нажал кнопку Запустить модульные тесты.

Бинго! Все прошло гладко.

0 голосов
/ 20 января 2011

это типичная проблема, с которой я тоже столкнулся. но самое простое решение, за которым я следовал как свое собственное, это ... просто построить проект один раз и заново его построить. так что вы можете решить это.

0 голосов
/ 20 декабря 2016

Еще один для гуглеров, использующих NUnit, особенно для тех, кто перешел с MS Unit test на NUnit. Пожалуйста, удалите тип проекта Guids, которые идентифицируют проект как MS Test, из файла проекта.

<ProjectTypeGuids>{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
0 голосов
/ 21 марта 2017

Если ваш код CLI (управляемый c ++) и ваш тестовый класс наследуется от абстрактного базового класса, убедитесь, что ваш тестовый класс реализует чистый виртуальный метод базы. если вы его не внедрили, вы можете увидеть сообщение «тесты не найдены для запуска».

0 голосов
/ 23 февраля 2010

Есть ли у вас файл VSMDI в вашем решении? Я считаю, что этот файл необходим (НЕ ПРОВЕРЕН).

...