如何在测试设置方法中获取测试类别

时间:2017-04-06 06:14:38

标签: c# unit-testing nunit

下面是代码,其中测试设置方法与相同的命名空间链接,并且应用了所有其他单元测试用例。我想跳过特定的单元测试用例来调用测试设置方法。要实现这一点,应用了category属性,但是,它无法获取setup方法并且所有时间都为Properties['_CATEGORIES']提供0值。

    class 1
   {
    [Setup]
    public void SetupMethod()
    {
      if (CheckForSkipSetup()) return;
         ...
    }
    private static bool CheckForSkipSetup() {
        ArrayList categories = TestContext.CurrentContext.Test
           .Properties["_CATEGORIES"] as ArrayList;

        bool skipSetup = categories != null && categories.Contains( SKIP_SETUP );
        return skipSetup ;
    }
   } 
    class 2
    [Test]
    [Category("skipMethod")]
    public void Method1()
    {
    }

如何解决此问题,我可以在安装程序类中获取category属性。

1 个答案:

答案 0 :(得分:3)

升级到最新版本的NUnit 3,它在那里修复。属性键为Category

例如,以下代码

[SetUp]
public void Setup()
{
    var cats = TestContext.CurrentContext.Test?.Properties["Category"];
    foreach (var cat in cats)
    {
        TestContext.WriteLine("Category: " + cat);
    }
}

[Test]
[Category("One")]
[Category("Two")]
public void TestMethod()
{
    Assert.Pass("Passes");
}

生成输出

Category: One
Category: Two