【问题标题】:NUnit Multiple TestFixture with different Category attribute具有不同类别属性的 NUnit 多个 TestFixture
【发布时间】:2016-08-11 16:28:35
【问题描述】:

我有一个包含多个 TestFixture 的测试类,我想为每个 testfixture 提供不同的类别,例如:

[TestFixture("WebsiteA"), Category("A")]
[TestFixture("WebsiteB"), Category("B")]
public class LoginTests 
{
    public LoginTests(string websiteName) 
    {
    }
    [Test]
    //test
}

当我使用 nunit3-console runner 运行测试时,给出说明 --where "cat==A" 然后它仍然为两个网站运行测试方法。有没有办法只对这种模型中的一个类别进行测试?

【问题讨论】:

    标签: nunit-console nunit-3.0


    【解决方案1】:

    您的语法有一个小错误。您指定它的方式是使用单独的CategoryAttribute,它将两个类别作为一个整体应用到类中。相反,您希望在 TestFixtureAttribute 上设置 Category 属性

    [TestFixture("WebsiteA", Category="A")]
    [TestFixture("WebsiteB", Category="B")]
    

    你目前拥有的相当于:

    [TestFixture("WebsiteA")]
    [TestFixture("WebsiteB")]
    [Category("A")]
    [Category("B")]
    public class LoginTests 
    {
    

    【讨论】:

    • @Chris,一个问题......如果我们想将两个不同的类别添加到同一个 TestFixture,你知道任何语法吗?我试过 Category="A,C",但问题是当我运行 Nunit 测试时,类别显示为“A,C”,而不是两个不同的类别,A 和 C...
    • 逗号分隔应该可以工作 - 请参阅github.com/nunit/nunit/blob/… 也许在最新版本的框架中仔细检查,然后提交错误?非常欢迎提出修复此问题的拉取请求 - 只要团队同意这是一个错误,而不是故意的!
    • 它似乎在团队城市中工作,但在 Visual Studio/Resharper 创建单元测试会话时不起作用。在团队城市中,它创建了两个不同的类别,一个用于“A”,一个用于“C”,在 VS/Resharper 中,会话显示为单个类别,例如“A,C”。似乎它可能不是 Nunit 错误,而是与 VS 或 Resharper 有关?我找不到修改此行为的选项...
    • @mickael 你解决过这个问题吗?现在遇到同样的问题
    猜你喜欢
    • 1970-01-01
    • 2014-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多