【问题标题】:How to disable a parallel run for a specific SpecFlow scenario?如何禁用特定 SpecFlow 场景的并行运行?
【发布时间】:2019-03-01 05:43:18
【问题描述】:

是否可以从并行运行中排除规范流场景?

我通过这样做为所有程序集设置了并行运行:

[assembly: Parallelize(Workers = 10, Scope = ExecutionScope.ClassLevel)]

在 AssemblyInfo.cs 文件中。

但现在我需要从并行运行中排除一种特定情况。我该怎么做?

【问题讨论】:

    标签: automation automated-tests specflow


    【解决方案1】:

    解决此问题的一种方法是使用NonParallelizable Attribute, provided by NUnit。 示例:

    namespace Tests
    {
        [SetUpFixture]
        public class TestsSetUpFixture
        {
             //setup the tests
        }   
    
        [TestFixture]
        [NonParallelizable]
        public class TestFixture1
        {
            [Test]
            public void TestFixture1_Test()
            {
                //do stuff in your test
            }
        }
    }
    

    NUnit 提供此文档:

    此属性用于指示它出现的测试 不得与任何其他测试并行运行。属性取 没有参数,可以在程序集、类或方法级别使用。

    在汇编级别使用时,它的唯一作用是执行 从非并行队列开始。测试套件、夹具和测试用例 将继续在同一个线程上运行,除非夹具或方法是 标有 Parallelizable 属性。

    当用于测试夹具或方法时,该测试将在 非并行队列,并且在其他测试标记为时不会运行 Parallelizable 正在运行。

    希望这会有所帮助。

    【讨论】:

    • 对不起,我正在使用 MS 测试
    • 问题是要求 Specflow 解决方案,这意味着 TestFixture 是一个生成的文件。
    猜你喜欢
    • 2018-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多