30

在 Visual Studio 2010 Pro 中,如何轻松将经典程序集转换为 ms 单元测试程序集?

.csproj 文件中是否有要激活的标志?

4

3 回答 3

53

问题是测试项目在项目文件上“标记” - 您可以按照以下四个简单步骤将类库转换为测试项目:

  1. 卸载项目 (.prj) 文件,然后打开它进行更新。
  2. 将以下行添加到项目
    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>

  3. 重新加载项目
  4. 运行你(现在工作)测试

请注意,您需要手动添加对 Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll 的引用才能使用与测试相关的属性

更新:在即将推出的 MSTest V2 中,这将不再是必要的,因为 MSTest 成为一个 NuGet 包,其工作方式与 NUnit/XUnit 一样

于 2012-04-24T14:27:36.087 回答
0

在 Visual Studio 2017 中,您可以将 nuget 包添加MSTest.TestAdapterMSTest.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);
        }
    }
}
于 2019-01-10T08:13:49.350 回答
-3

单元测试项目只是具有属性 [TestClass] 的类的类库,并且 .csproj 文件没有任何标志。您可以将类添加到您的项目并设置属性 [TestClass],它将是测试类。

于 2010-06-10T07:57:16.453 回答