MSTest: Никакие тесты не запущены, потому что никакие тесты не загружаются, или выбранные тесты отключены

У меня есть 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);
    } 
}

Когда я пытаюсь запустить тесты через Тест, Выполнение, Все Тесты В Решении, я получаю следование строки состояния VS2008:

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

Тест, Windows, Тестовое Представление не показывает тестов.

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

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

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

Редактирование 25.02.2010: Больше информации:
Я щелкнул правой кнопкой по папке Solution Items, и выберите Add, New Project, Проекты проверки печатания, Тестовые Документы:: шаблон Visual Studio Test Project.

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

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

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

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

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

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

63
задан abatishchev 15 May 2017 в 17:29
поделиться

4 ответа

Я только что сделал это вручную:

Создал новый проект библиотеки классов C # со следующим кодом:

namespace SO_Answer
{
    public class Class1
    {
        public void Test()
        {
            var k = "Hello";
        }
    }
}

Сохранил проект, а затем перешел в 'Файл-> Добавить-> Новый проект »и выберите« Тестовый проект ». После того, как VS создала проект модульного теста, я добавил ссылку на проект библиотеки классов, который я создал ранее.

В моем тесте у меня есть этот код:

namespace Unit_Test
{
    /// <summary>
    /// Summary description for UnitTest1
    /// </summary>
    [TestClass]
    public class UnitTest1
    {
        /// <summary>
        ///Gets or sets the test context which provides
        ///information about and functionality for the current test run.
        ///</summary>
        public TestContext TestContext { get; set; }

        #region Additional test attributes

        // You can use the following additional attributes as you write your tests:
        // Use ClassInitialize to run code before running the first test in the class
        // [ClassInitialize()]
        // public static void MyClassInitialize(TestContext testContext) { }
        // Use ClassCleanup to run code after all tests in a class have run
        // [ClassCleanup()]
        // public static void MyClassCleanup() { }
        // Use TestInitialize to run code before running each test 
        // [TestInitialize()]
        // public void MyTestInitialize() { }
        // Use TestCleanup to run code after each test has run
        // [TestCleanup()]
        // public void MyTestCleanup() { }
        #endregion

        /// <summary>
        /// The test method 1.
        /// </summary>
        [TestMethod]
        public void TestMethod1()
        {
            var f = new Class1();

        }
    }
}

Единственный код, который я добавил, - это оператор using и оператор var f = new Class1 (); . Глядя на бегун MSTest, я вижу, что появляется TestMethod1 .

Я не могу придумать причину, по которой ваши модульные тесты не используются. Единственный раз, когда у меня это было, это потому, что я использовал средство запуска MSTest, чтобы попытаться просмотреть тесты NUnit по ошибке. Попробуйте начать с нуля.

2
ответ дан 24 November 2019 в 16:12
поделиться

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

0
ответ дан 24 November 2019 в 16:12
поделиться

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

Брайан Кук предлагает проверить ProjectTypeGuids в своем сообщении в блоге о Создание тестового проекта MS вручную . По-видимому, вам нужны волшебные идентификаторы GUID: {3AC096D0-A1C2-E12C-1390-A8335801FDAB}; {FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} для c # и {3ACC290D0-A1C096D0-A1 -A8335801FDAB}; {F184B08F-C81C-45F6-A57F-5ABD9991F28F} для VB. См. Его сообщение в блоге для получения более подробной информации.

На случай, если сообщение в блоге когда-нибудь исчезнет, ​​вам нужно добавить следующий элемент в основную группу свойств в файле csproj:

<ProjectTypeGuids>{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
45
ответ дан 24 November 2019 в 16:12
поделиться

Еще один вопрос для гуглеров - этот оказался моей проблемой, и это до неловкости бесполезно с моей стороны. Убедитесь, что ваш тестовый проект настроен на сборку в любой конфигурации решения, которую вы используете. Если тестовая сборка не собирается, VS не сможет найти какие-либо тесты в несуществующей сборке, и вы на какое-то время бьетесь головой о стену: -)

76
ответ дан 24 November 2019 в 16:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: