【问题标题】:Running Specflow scenarios in parallel并行运行 Specflow 场景
【发布时间】:2018-10-08 03:03:47
【问题描述】:

我正在处理以下内容

Specflow - 2.2.1 nUnit - 3.9.0

我希望它可以允许同一功能中的 2 个场景并行运行。这样做的原因是为了加快测试套件的速度。

目的是让几个测试 (2-3) 在同一功能中并行运行,而不是按顺序运行。

有人知道这怎么可能吗?

我已将此添加到我的程序集中 -

[程序集:可并行化(ParallelScope.Children)]

但我现在看到以下错误

An item with the same key has already been added.
Object reference not set to an instance of an object.

【问题讨论】:

  • 当我尝试并行运行测试并尝试在字典中保存值时,我遇到了类似的错误。您在测试中使用的是场景还是功能上下文?
  • 我不是,当我让它们在功能级别上并行运行时,我已经删除了这些。但是现在当它们在场景级别并行运行时会出现此错误。我有一种感觉,它没有为每个测试创建单独的线程,因此测试正在另一个测试中运行。
  • 您找到解决方案了吗?我也遇到了这个问题
  • @st0ve 仍在处理中,以上是关于 Key 是 specflow 错误消息的问题。它无法处理子级别的并行作业。现在通过在没有问题的情况下并行运行更多地拆分功能来解决它​​。

标签: nunit specflow


【解决方案1】:

SpecFlow 尚不支持场景级并行。
您可以阅读他们的docs 他们只允许您使用:

[assembly: Parallelizable(ParallelScope.Fixtures)]

有一个公开的票证,描述了为什么还不支持它的所有问题以及解决它的方法 - https://github.com/SpecFlowOSS/SpecFlow/issues/1535

请注意,即使 NUnit 在新版本 (3.13) 中添加了对 Instance-per-test-case feature 的支持,它也不能解决问题(我用 LifeCycle.InstancePerTestCase 尝试过,但仍然出现一些错误)。

SpecFlow repo 中有一个针对此问题的未解决问题:https://github.com/SpecFlowOSS/SpecFlow/issues/894

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-03-01
    • 1970-01-01
    • 2022-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多