В Visual Studio 2010 Pro, как я могу легко преобразовать классическую сборку в сборку ms unit test?
Есть ли флаг для активации в файле .csproj?
В Visual Studio 2010 Pro, как я могу легко преобразовать классическую сборку в сборку ms unit test?
Есть ли флаг для активации в файле .csproj?
Проблема в том, что тестовые проекты "помечены" в файле проекта - вы можете преобразовать библиотеку классов в тестовый проект, выполнив следующие четыре простых шага:
добавьте следующую строку в проект
С#:
<Project>
<PropertyGroup>
<AssemblyName>....</AssemblyName>
<!-- add this line below -->
<ProjectTypeGuids>{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
</PropertyGroup>
</Project>
VB - <ProjectTypeGuids>{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{F184B08F-C81C-45F6-A57F-
5ABD9991F28F}</ProjectTypeGuids>
Обратите внимание, что вам нужно вручную добавить ссылку на Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll, чтобы иметь возможность использовать атрибуты, связанные с тестированием
Обновление: в предстоящем MSTest V2 это не будет nesessery, так как MSTest становится пакетом NuGet, который работает так же, как NUnit/XUnit
В Visual Studio 2017 вы можете добавить пакеты MSTest.TestAdapter
и MSTest.TestFramework
в ваш проект С#, а затем использовать [TestClass]
с [TestMethod]
. Они будут автоматически обнаружены и перечислены в Test Explorer
. Добавленное вручную ProjectTypeGuids
не требуется для включения тестов.
// MyFancyClassTests.cs
namespace MyTests
{
using Microsoft.VisualStudio.TestTools.UnitTesting;
[TestClass]
public class MyFancyClassTest
{
private readonly MyFancyClass _MyFancyClass;
public MyFancyClassTest()
{
_MyFancyClass= new MyFancyClass();
}
[TestMethod]
public void MyFancyClass_UninitializedName_ReturnsEmptyString()
{
Assert.AreEqual(string.Empty, _MyFancyClass.Name);
}
}
}
Unit Test Проект - это только библиотека классов, которые имеют классы с атрибутом [TestClass], а файл .csproj не имеет никаких флагов. Вы можете добавить класс в свой проект и установить атрибут [TestClass], и это будет тестовый класс.