在 Visual Studio 2010 Pro 中,如何轻松将经典程序集转换为 ms 单元测试程序集?
.csproj 文件中是否有要激活的标志?
在 Visual Studio 2010 Pro 中,如何轻松将经典程序集转换为 ms 单元测试程序集?
.csproj 文件中是否有要激活的标志?
问题是测试项目在项目文件上“标记” - 您可以按照以下四个简单步骤将类库转换为测试项目:
将以下行添加到项目
C# 中:
<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 中,这将不再是必要的,因为 MSTest 成为一个 NuGet 包,其工作方式与 NUnit/XUnit 一样
在 Visual Studio 2017 中,您可以将 nuget 包添加MSTest.TestAdapter
到MSTest.TestFramework
您的 C# 项目中,然后[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);
}
}
}
单元测试项目只是具有属性 [TestClass] 的类的类库,并且 .csproj 文件没有任何标志。您可以将类添加到您的项目并设置属性 [TestClass],它将是测试类。