30

Visual Studio 2010 Pro で、クラシック アセンブリを ms ユニット テスト アセンブリに簡単に変換するにはどうすればよいですか?

.csproj ファイルで有効にするフラグはありますか?

4

3 に答える 3

53

問題は、テスト プロジェクトがプロジェクト ファイルで「マーク」されていることです。次の 4 つの簡単な手順に従って、クラス ライブラリをテスト プロジェクトに変換できます。

  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 が NUnit/XUnit と同じように機能する NuGet パッケージになるため、これは必要ありません。

于 2012-04-24T14:27:36.087 に答える
0

Visual Studio 2017 では、nuget パッケージMSTest.TestAdapterMSTest.TestFrameworkC# プロジェクトに追加し、それ以降は[TestClass]属性で使用でき[TestMethod]ます。それらは自動的に検出され、 にリストされますTest ExplorerProjectTypeGuidsテストを有効にするために追加されたマニュアルは必要ありません。

// 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 に答える