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

dsi*_*dsi 5 c# nunit unit-testing

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

    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()
    {
    }
Run Code Online (Sandbox Code Playgroud)

如何解决这个问题,以便我可以在安装类中获取类别属性。

Rob*_*use 6

升级到最新版本的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");
}
Run Code Online (Sandbox Code Playgroud)

产生输出,

Category: One
Category: Two
Run Code Online (Sandbox Code Playgroud)