【问题标题】:Specflow:Error:Result collection has not started in test explorerSpecflow:Error:Result collection has not started in test explorer
【发布时间】:2020-09-04 04:51:39
【问题描述】:

在使用 specflow 最新版本时,当我运行我的脚本时,我得到的结果集无法启动并且已经持续了一周。自动化脚本运行完成,但出现此错误并且测试失败。specflow 版本为 3.1.97,Visual Studio 为 2019。我已经把它缩小到一个简单的测试并且仍然失败,它似乎与specflow有关。我不想创建一个新的解决方案并重新开始,我已经写了很多测试但不能再进一步了,因为报告总是会因为这个错误而失败。我在网上查过了。我尝试了不同的解决方案,包括 https://github.com/SpecFlowOSS/SpecFlow/issues/1851 等,但无济于事。我已经降低了 specflow 的版本,specfow.tools.MsBuild.Generation ,nunit 但仍然相同。如果我创建一个新的解决方案并添加这些依赖项,它似乎很好,并且做一个快速测试也很好。

功能文件:

@Settings About
Scenario: About Screen
    Given user is already logged in

步骤定义:

[Given(@"user is already logged in")]
public void GivenUserIsAlreadyLoggedIn()
{
    Assert.IsTrue(true);
}

【问题讨论】:

  • edit您的问题并附上您的代码。另请注意您拥有的 SpecFlow 和 Visual Studio 版本。
  • 嗨,我添加了信息,代码运行完成,然后当 testscript 完成时出现此错误 这是一个代码 sn-p 但他们的代码会给你很多 @Settings About场景:关于屏幕 #Given 用户已登录当用户使用以下配置文件登录时 |客户代码 |用户名 |密码 |
  • 我无法阅读您在评论中发布的代码。请edit您的问题,添加代码并使用问题文本工具栏中的格式代码图标对其进行格式化。
  • 我已经把它缩小到基本的地方,它只是调用一个简单的断言,它仍然会出现这个错误,我不知道从哪里开始。我已经安装了 nunit、speclow 和 appium,看起来 specflow 出现了某种类型的问题
  • 查看此处查看类似错误github.com/SpecFlowOSS/SpecFlow/…

标签: c# visual-studio nunit appium specflow


【解决方案1】:

在将我的功能文件移动到共享程序集中后,我收到了此错误消息。错误的原因是 SpecFlow.MSBuild 生成的静态初始化方法在启动时没有被调用。我通过链接来自顶级测试程序集中相应初始化方法的调用来修复。

虽然您的问题的原因可能不同,但我怀疑您可以使用相同的过程诊断问题。

  • 在您的测试项目的 obj 文件夹中应该有一个名为 MsTest.AssemblyHooks.cs 的文件。将此文件移动到主项目文件夹并包含在项目中。

  • 将以下 xml 添加到 csproj 项目文件中。 (这会关闭自动挂钩文件生成)。

    <PropertyGroup>
        <GenerateSpecFlowAssemblyHooksFile>false</GenerateSpecFlowAssemblyHooksFile>
    </PropertyGroup>
    

然后您可以在初始化代码上放置一个断点并进行调试。 (你可能会遇到异常,或者初始化可能没有被调用。)

注意 - 您可以在原地调试初始化代码而无需移动。就我而言,我需要修改代码,因此需要一个永久的非生成版本。

对于其他试图将功能文件拆分为共享项目的人,您还需要使用

更新 app.config
<configSections>
    <section name="specFlow" type="TechTalk.SpecFlow.Configuration.ConfigurationSectionHandler, TechTalk.SpecFlow">
 <configSections>
 <specFlow>
   <stepAssemblies>
     <stepAssembly assembly="[TODO - SharedAssemblyName]" />
   <stepAssemblies>
 </specFlow>

【讨论】:

    【解决方案2】:

    我遇到了同样的问题。但是,在完全卸载所有与 Specflow 相关的软件包之后,然后重新安装所有内容,它工作正常吗?去图~我现在正在测试3.1.97。稳定后我会尝试 3.3。

    摆脱解决方案中使用或需要 Specflow 的所有内容,然后从头开始重新安装每个软件包。

    【讨论】:

      猜你喜欢
      • 2022-12-26
      • 1970-01-01
      • 1970-01-01
      • 2015-10-02
      • 2020-07-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多