N单元测试顺序在夹具之间共享

问题描述 投票:0回答:1

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

  • 在不同的夹具中,所有的test1案例应该先运行
  • 在不同的夹具中,所有的测试2案例都应该在以下情况下运行
  • ...

这些案例应该被分批放在一起(由于另一个限制)。

我曾尝试使用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个回答
0
投票

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

固定装置是NUnit中使用的关键组织结构。如果你所有的 "Test1 "案例需要一起运行,也许它们应该在同一个夹具中。或者,也许你所有的测试都需要在一个夹具中--虽然这听起来很乱。

这种事情通常发生在一些组织中,在这些组织中,有一些关于如何组织夹具的规则,而这些规则并没有关注NUnit如何使用夹具。

我认识到这对您来说并不是什么答案,但是由于您实际上并没有说过这样的话 何以 你需要按照这个顺序运行测试,不可能提出其他方法。如果你编辑你的问题,我很乐意编辑我的答案。 :-)

© www.soinside.com 2019 - 2024. All rights reserved.