如何并行运行我的测试并尊重顺序(优先级)

时间:2018-04-10 01:58:55

标签: c# selenium-webdriver nunit nunit-3.0

我并行执行它们工作

我按顺序执行它们(优先级),工作

当我想要结合优先级时+并行性不起作用

示例:

汇编:[汇编:LevelOfParallelism(3)]

[TestFixture]
[Parallelizable(ParallelScope.Children)]
public class Tests
{
    [Test, Order(1)]
    public void Test1()
    {
        //1
    }

    [Test, Order(1)]
    public void Test2()
    {
        //2
    }

    [Test, Order(2)]
    public void Test3()
    {
        //3
    }
}

它们都在同一时间运行,它应该是1和2,然后是3。

NUNIT 3

2 个答案:

答案 0 :(得分:3)

OrderAttribute仅指示测试启动的点。如果你需要在下一次启动之前完成一个测试,那么当你按顺序运行测试时当然可以正常工作 - 但是当你开始在多个线程上运行测试时,你会得到竞争条件(如你所见)。

听起来您正在寻找类似于测试依赖属性功能请求的内容:https://github.com/nunit/nunit/issues/51。随意添加您对此问题的看法。

与此同时 - 我建议将[NonParallelizable]属性添加到此测试夹具中。

答案 1 :(得分:2)

您要求并行(同时)运行测试,但也要求按顺序运行它们(一个接一个地运行)。这是不可能的,所以NUnit只尊重你的一个要求。 NUnit中存在许多冲突的属性和命令行选项。我们试图警告你一些不太明显的冲突,但我们无法处理每一个组合。

如果您想在并行运行的类中进行其他测试,但仍希望遵守一些测试,请使用ParallelScope.None标记有序测试。