次の構造の ac# ソリューションがあります。
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、テスト ビューにはテストが表示されません。
注: Microsoft のウィザードを使用する代わりに、手動でテストを作成しました (xUnit.net で動作します)。
手動で作成した MSTest のセットアップと、ウィザードを使用して生成した別のテストのセットアップを比較しましたが、それらは十分に似ているようです。
質問:上記のエラー メッセージの最も可能性の高い原因は何ですか?
編集 2010-02-25: 詳細:ソリューション アイテム
フォルダー
を右クリックし、[追加]、[新しいプロジェクト] の順に選択し、「Test Projects,Test Documents::Visual Studio Test Project template」と入力します。
新しいプロジェクトのデフォルトの何もしないテスト「TestMethod1」が検出され、合格しました。
しかし、私のテストは表示されませんでした...そのため、テスト メソッドをコピーして、既定のテスト テスト プロジェクト "TestProject1" に貼り付けました。
私のテストは「TestProject」で検出されましたが、元の場所では検出されませんでした。
「TestProject1」のファイル、構成、および設定を、手動で作成したテスト プロジェクトと比較しました。
この時点で、簡単には検出できない設定が Visual Studio テスト プロジェクト テンプレートによって行われると推測しています。
imo、手動でテスト プロジェクトを作成するのは、Visual Studio テスト プロジェクト テンプレートを使用して作成するのと同じくらい簡単です。
注意: Visual Studio テスト プロジェクト テンプレートの使用に反対しているわけではありません。私にとっては、カーテンの後ろにあるものを理解したいと思っています。これにより、私ははるかに優れたプログラマーになることができます。