C# Specflow:错误:测试资源管理器中未启动结果集合

C# Specflow:错误:测试资源管理器中未启动结果集合,c#,visual-studio,nunit,appium,specflow,C#,Visual Studio,Nunit,Appium,Specflow,使用specflow最新版本时,当我运行脚本时,我得到的结果集无法启动,并且已经运行了一周。自动化脚本一直运行到完成,但出现此错误,测试失败。specflow版本3.1.97为,visual studio版本为2019。我已经把它缩小到一个简单的测试,但仍然失败,它似乎与specflow有关。我不想创建一个新的解决方案并重新开始,我已经编写了很多测试,但不能再进一步了,因为报告总是会因为这个错误而失败。我在网上查过了。我尝试了不同的解决方案,包括etc,但没有效果。我已经下载了specflow.

使用specflow最新版本时,当我运行脚本时,我得到的结果集无法启动,并且已经运行了一周。自动化脚本一直运行到完成,但出现此错误,测试失败。specflow版本3.1.97为,visual studio版本为2019。我已经把它缩小到一个简单的测试,但仍然失败,它似乎与specflow有关。我不想创建一个新的解决方案并重新开始,我已经编写了很多测试,但不能再进一步了,因为报告总是会因为这个错误而失败。我在网上查过了。我尝试了不同的解决方案,包括etc,但没有效果。我已经下载了specflow.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);
}

将特征文件移动到共享部件后,我收到此错误消息。错误的原因是启动时未调用SpecFlow.MSBuild生成的静态初始化方法。我通过链接顶级测试程序集中相应初始化方法的调用来修复此问题

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

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

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

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

注意-您可以在不移动的情况下就地调试初始化代码。在我的例子中,我需要修改代码,因此是一个永久的非生成版本

对于试图将功能文件拆分为共享项目的任何其他人,您还需要使用更新app.config

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

将特征文件移动到共享部件后,我收到此错误消息。错误的原因是启动时未调用SpecFlow.MSBuild生成的静态初始化方法。我通过链接顶级测试程序集中相应初始化方法的调用来修复此问题

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

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

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

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

注意-您可以在不移动的情况下就地调试初始化代码。在我的例子中,我需要修改代码,因此是一个永久的非生成版本

对于试图将功能文件拆分为共享项目的任何其他人,您还需要使用更新app.config

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

我也有同样的问题。但是,在完全卸载所有与Specflow相关的软件包后,然后重新安装所有软件包,这样可以正常工作吗?去图~我现在正在测试3.1.97。一旦稳定下来,我将尝试3.3


清除解决方案中使用或需要Specflow的所有内容,然后重新安装每个软件包。

我也遇到了同样的问题。但是,在完全卸载所有与Specflow相关的软件包后,然后重新安装所有软件包,这样可以正常工作吗?去图~我现在正在测试3.1.97。一旦稳定下来,我将尝试3.3


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

请回答您的问题并包含代码。还请注意您使用的是哪个版本的SpecFlow和Visual Studio。您好,我添加了一些信息,代码运行到完成,然后在testscript完成时出现此错误。这是一个代码片段,但他们的代码将为您提供大量@Settings About Scenario:About Screen#当用户使用以下配置文件登录时,给定用户已登录| ClientCode | UserName | PassWord |我无法读取您在应用程序中发布的代码评论。请回答您的问题,添加代码并使用问题文本工具栏中的“格式代码”图标对其进行格式设置。我已将其缩小到基本范围,只需调用一个简单的断言,但仍然会出现此错误,我不知道从何处开始。我已经安装了nunit、speclow和appium。看起来specflow出现了一些类型的问题。有关类似的错误,请查看此处,并提供您的问题和代码。还请注意您使用的是哪个版本的SpecFlow和Visual Studio。您好,我添加了一些信息,代码运行到完成,然后在testscript完成时出现此错误。这是一个代码片段,但他们的代码将为您提供大量@Settings About Scenario:About Screen#当用户使用以下配置文件登录时,给定用户已登录| ClientCode | UserName | PassWord |我无法读取您在应用程序中发布的代码评论。请回答您的问题,添加代码并使用问题文本工具栏中的“格式代码”图标对其进行格式设置。我已将其缩小到基本范围,只需调用一个简单的断言,但仍然会出现此错误,我不知道从何处开始。我已经安装了nunit、speclow和appium。看起来specflow出现了某种类型的问题。请参阅此处,了解类似的错误