ゴール:
TestContext.TestName プロパティを使用して、実行中のテストの名前を抽出し、[TestCleanup] 関数が結果を特注の結果リポジトリに記録できるようにします。これは、すべてのテストが完了するたびに自動的に行われます。
問題:
以下の構造に似た5つのテストを含む私の基本的な「サニティチェック」テストプロジェクトでも:
[TestMethod]
public void TestMethodX()
{
Console.WriteLine(String.Format("In Test '{0}'",_ctx.TestName));
Assert.IsTrue(true);
}
以下のようなクラス「初期化子」を使用して、_ctx を設定します。
[ClassInitialize]
public static void ClassInit(TestContext Context)
{
_ctx = Context;
Console.WriteLine("In ClassInit()");
}
[[注: Console.WriteLines は、マウスをホバーして値/プロパティなどを検査するためだけに存在します]]
NEVERは_ctx.TestName
、テストの実行における最初のテストの名前から変更されません。つまり、5 つのテスト ('TestMethod1'、'TestMethod2'、'TestMethod3' など) をすべて実行すると、すべてのテスト名として 'TestMethod1' がログに記録されます。私の結果リポジトリに。テストを個別に実行すると問題なく動作しますが、アプリケーションに対して 10/100/1000 のテストを実行し、testContext にテスト名または私を処理させる必要があるため、これは役に立ちません。
私はこれを数回試しましたが、インターネットの負荷を検索しましたが、この問題を抱えている人は誰もいませんでした. うまくいけば、これは理にかなっていて、誰かが答えを持っています.
前もって感謝します、
アンディ