自定义Nunit类别在测试资源管理器中无法正确显示

时间:2014-05-27 16:04:16

标签: visual-studio-2013 nunit test-explorer

我正在尝试为我的测试创建自定义类别,因此我们可以列出测试专门测试的要求。目标:更改需求或需求命中的一部分代码,然后运行该需求的测试。它还有助于我们跟踪测试,因此它们不会重复。 (我们有400多个要求)。

[AttributeUsage(AttributeTargets.Method, AllowMultiple = true, Inherited = false)]
public class RequirementAttribute : CategoryAttribute
{

    protected string requirementName;


    public RequirementAttribute(string name)
    {
        this.requirementName = name.Trim();
    }


    protected RequirementAttribute()
    {
        this.requirementName = this.GetType().Name;
        if (requirementName.EndsWith("Attribute"))
            requirementName = requirementName.Substring(0, requirementName.Length - 9);
    }

    public new string Name
    {
        get { return requirementName; }
    }
}

这是我使用的代码,它允许我进行多项要求的测试:

    [Requirement("000124")]
    [Requirement("000382")]
    [Requirement("000612")]
    [Category("Foo")]
    public void TestSomething(){}

这是有效的,但是在Test-Explorer中我看到了:

Category[Foo](1) 
Category[000124](1) 
Category[000382](1)
Category[000612](1)

我想看看:

Category[Foo](1)
Requirement[000124](1)
Requirement[000382](1)
Requirement[000612(1)

这可能吗?

1 个答案:

答案 0 :(得分:0)

为装饰添加类别(“要求”)应该有效:

[Category("Requirement"), AttributeUsage(AttributeTargets.Method, AllowMultiple = true, Inherited = false)]

http://msdn.microsoft.com/en-us/library/system.componentmodel.categoryattribute.aspx