11

特定のテスト方法のテストデータを関数と同じ名前のフォルダーに保存します。以前は、それぞれ[TestMethod]で同じ関数呼び出しを実行しました。ClearAllAndLoadTestMethodData()これにより、を介してメソッド名が決定されましたStackTrace。ここで、この関数をに移動しました[TestInitialize]。実行しようとしているメソッドの名前を見つけるにはどうすればよいですか?

TestContext私はこれを提供すると思いました。私はそれを介してアクセスでき[AssemblyInitialize()]、最初の実行時にそのプロパティNameはテストメソッドの名前に設定されます。ただし、後でこれは変更されません(オブジェクトを静的フィールドに保存した場合)。

4

2 に答える 2

24

AssemblyInitializeメソッドは、すべてのテストの前に1回だけ実行されます。

メソッドのTestContext内部を使用します。TestInitialize

[TestClass]
public class TestClass
{
    [TestInitialize]
    public void TestIntialize()
    {
        string testMethodName = TestContext.TestName;
    }

    [TestMethod]
    public void TestMethod()
    {
    }

    public TestContext TestContext { get; set; }
}
于 2012-08-30T13:43:45.480 に答える
0
[TestClass]
public class MyTestClass
{
    private static TestContext _testContext;

    [ClassInitialize]
    public static void TestFixtureSetup(TestContext context)
    {
        _testContext = context;
    }

    [TestInitialize]
    public void TestIntialize()
    {
        string testMethodName = MyTestClass._testContext.TestName;
        switch (testMethodName)
        {
            case "TestMethodA":

                //todo..

                break;
            case "TestMethodB":

                //todo..

                break;              
            default:
                break;
        }
    }

    [TestMethod]
    public void TestMethodA()
    {
    }

    [TestMethod]
    public void TestMethodB()
    {
    }   
}
于 2019-10-27T21:12:15.833 に答える