gpt4 book ai didi

multithreading - 为什么Specflow会尝试多次执行同一场景?

转载 作者:行者123 更新时间:2023-12-03 13:19:28 26 4
gpt4 key购买 nike

我已将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中,生成的代码进行了一些更改,因此必须重新生成它们。

    关于multithreading - 为什么Specflow会尝试多次执行同一场景?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35446808/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com