【问题标题】:NUnit test order shared among fixturesNUnit 测试顺序在夹具之间共享
【发布时间】:2020-05-24 15:12:28
【问题描述】:

我有一个测试夹具,里面有一些案例(test1-test5)。 从逻辑上讲,测试用例应该水平运行:

  • 应首先运行不同夹具中的所有 test1 用例
  • 不同夹具中的所有 test2 用例都应在之后运行
  • ...

这些案例应该一起批处理(由于另一个限制)。

我尝试使用 OrderAttribute,但似乎订单出现在每个灯具中,但它们之间没有全局共享。有什么想法吗?

这是代码示例:

[TestFixture, TestFixtureSource(nameof(TestFixture))]
public class TestCases
{
    [Test, Order(1)]
    public async Task Test1()
    {
        ...
    }

    [Test, Order(2)]
    public async Task Test2()
    {
        ...
    }

    [Test, Order(3)]
    public async Task Test3()
    {
        ...
    }

    [Test, Order(4)]
    public async Task Test4()
    {
        ...
    }

    [Test, Order(5)]
    public async Task Test5()
    {
        ...
    }
}

【问题讨论】:

    标签: c# testing nunit


    【解决方案1】:

    那根本行不通。您似乎想要一种使测试相互依赖的通用能力,这已经被讨论过,但从未在 NUnit 中真正实现过。

    fixture 是 NUnit 中使用的关键组织结构。如果您所有的“Test1”案例需要一起运行,也许它们应该在同一个夹具中。或者也许你所有的测试都需要在一个夹具中——尽管这听起来很混乱。

    这种事情通常发生在组织中,其中设置了关于如何组织固定装置的某种规则,而该规则并不关注 NUnit 如何使用固定装置。

    我知道这对你来说不是一个很好的答案,但由于你实际上并没有说为什么你需要按这个顺序运行你的测试,所以不可能提出替代方法。如果您编辑您的问题,我将很高兴编辑我的答案。 :-)

    【讨论】:

    • 我想要做的是将记录输入到 MQ 中,然后有一个具有延迟的进程以特定顺序将其数据输入到几个数据源中,因此我需要检查每个来源都按正确的顺序分开......
    • 这不能被重组,以便必须按顺序运行的测试序列在一个夹具中吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-21
    • 1970-01-01
    • 1970-01-01
    • 2017-02-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多