【问题标题】:Add attribute to disable parallel execution for some features in Specflow + Nunit添加属性以禁用 Specflow + Nunit 中某些功能的并行执行
【发布时间】:2020-11-10 16:38:32
【问题描述】:

您好,我正在使用 specflow + nunit,

通过在程序集级别添加以下内容,我已使所有功能并行运行。

[assembly: Parallelizable(ParallelScope.Fixtures)]
[assembly: LevelOfParallelism(5)]

但现在我有一些不应该并行运行的功能,我想排除这些测试。我知道在 Nunit 项目中使用了[NonParallelizable][Parallelizable(ParallelScope.None)] 以将它们排除在并行执行之外。但是对于 specflow 我在哪里指定这些。因为.cs file 是在 specfow 中自动生成的。如何添加这些属性?

【问题讨论】:

  • 你找到解决方案了吗?
  • 遗憾的是,SpecFlow 中没有直接的功能。但是有一个解决方法:我们将代码隐藏类生成为部分类。因此,您可以创建一个带有部分类的文件并在其中添加 [NonParallizable] 属性。
  • 我实际上发现可以创建一个生成器插件,该插件可以为生成的 nunit 测试类添加属性。我最终创建了一个运行时插件,尝试同步一些测试的访问。

标签: c# nunit specflow


【解决方案1】:

遗憾的是,SpecFlow 中没有直接的功能。

但是有一个解决方法:

我们将代码隐藏类生成为部分类。因此,您可以创建一个带有部分类的文件并在其中添加 [NonParallizable] 属性。

看起来像这样:

using NUnit.Framework;
namespace ParallelExecution.Features
{
[NonParallelizable]
public partial class CalculatorFeature
{

}
}

【讨论】:

    猜你喜欢
    • 2017-04-14
    • 2011-06-17
    • 2020-08-19
    • 2019-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多