为什么 Specflow 会尝试多次执行相同的场景



我已经将Specflow/Specrun添加到Visual Studio 2015中现有的单元测试项目(基于XUnit 2.0)。

当我尝试执行

单个场景时,它似乎尝试执行同一件事 4 次。下面是控制台输出:

Scenario: Add true/false question in AddTrueFalseQuestion -> Succeeded on thread #0
Scenario: Add true/false question in AddTrueFalseQuestion -> Failed on thread #0
    [ERROR] Trace listener failed. -> The ScenarioContext.Current static accessor cannot be used in multi-threaded execution. Try injecting the scenario context to the binding class. See http://go.specflow.org/doc-multithreaded for details.
Scenario: Add true/false question in AddTrueFalseQuestion -> Failed on thread #0
    [ERROR] Trace listener failed. -> The ScenarioContext.Current static accessor cannot be used in multi-threaded execution. Try injecting the scenario context to the binding class. See http://go.specflow.org/doc-multithreaded for details.
Scenario: Add true/false question in AddTrueFalseQuestion -> Failed on thread #0
    [ERROR] Trace listener failed. -> The ScenarioContext.Current static accessor cannot be used in multi-threaded execution. Try injecting the scenario context to the binding class. See http://go.specflow.org/doc-multithreaded for details.
Result: 1 failed
  Total: 2 (test executions: 4)
  Succeeded: 1
  Ignored: 0
  Pending: 0
  Skipped: 0
  Failed: 1

我尝试过的事情:

  • 我已经搜索以验证项目中是否有任何文件引用ScenarioContext.Current,根据上述错误,但没有找到任何内容

  • specflow 的 default.sprofile 测试配置文件具有以下配置,但不确定是否遵守:

    < Execution stopAfterFailures="3" testThreadCount="1" testSchedulingMode="Sequential" />

  • 我什至尝试将以下内容添加到 App.config 中,以防 XUnit 中的某些内容干扰,但无济于事:

    <add key="xunit.maxParallelThreads" value="1"/>

    <add key="xunit.parallelizeTestCollections" value="false"/>

我不确定为什么测试会执行 4 次,而它已经成功了一次。可能是什么问题以及如何解决?请注意,这仅适用于调用浏览器的测试。对于其他人来说,它似乎工作得很好。

PS:这只有在将 Specflow/Specrun 添加到现有的单元测试项目后才会发生。我已经安装了specflow的单独解决方案中创建了多个项目,并且它们工作得很好。

SpecRun 是一个专门用于 SpecFlow 的 TestRunner。所以它取代了XUnit Runner。

失败测试的重试由"执行"部分的 retryCount 配置控制。请参阅此处的 SRProfile - 文档:http://www.specflow.org/plus/documentation/SpecFlowPlus-Runner-Profiles/

到 ScenarioContext.Current 错误:您是否重新生成了所有 *.feature.cs 文件?在 SpecFlow 2.0 中,生成的代码发生了一些更改,因此必须重新生成它们。

相关内容

  • 没有找到相关文章

最新更新