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

C# 如何在测试设置方法中获取测试类别,c#,unit-testing,nunit,C#,Unit Testing,Nunit,下面是测试设置方法与相同名称空间链接的代码,并应用了所有其他单元测试用例。我想跳过特定的单元测试用例来调用测试设置方法。为了实现这一点,应用了category属性,但它无法获取setup方法,并且始终为属性['''u CATEGORIES']提供0值 class 1 { [Setup] public void SetupMethod() { if (CheckForSkipSetup()) return; ... }

下面是测试设置方法与相同名称空间链接的代码,并应用了所有其他单元测试用例。我想跳过特定的单元测试用例来调用测试设置方法。为了实现这一点,应用了
category
属性,但它无法获取
setup
方法,并且始终为
属性['''u 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属性。

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

例如,下面的代码

[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