У меня есть 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; для меня мне нравится понимать то, что находится позади занавеса, так как это делает меня, по моему скромному мнению, намного лучшим программистом.
Я только что сделал это вручную:
Создал новый проект библиотеки классов 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 по ошибке. Попробуйте начать с нуля.
Есть ли в вашем решении файл VSMDI? Я считаю, что этот файл необходим (НЕ ПОДТВЕРЖДЕН).
Возможно, немного поздно, но этот вопрос хорошо угадает, я подумал, что брошу немного крошек для будущих гуглеров.
Брайан Кук предлагает проверить 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>
Еще один вопрос для гуглеров - этот оказался моей проблемой, и это до неловкости бесполезно с моей стороны. Убедитесь, что ваш тестовый проект настроен на сборку в любой конфигурации решения, которую вы используете. Если тестовая сборка не собирается, VS не сможет найти какие-либо тесты в несуществующей сборке, и вы на какое-то время бьетесь головой о стену: -)