Specflow:Error:Result Collection has not started in test explorer(测试探索器)。

问题描述 投票:1回答:1

enter image description here

工作与specflow的最新版本,当我运行我的脚本,我得到的结果集不能启动,并一直在这一个星期.自动化脚本运行完成,但它带来了这个错误和测试失败.specflow版本3.1.97是和视觉工作室是2019年。我已经把它缩小到一个简单的测试,仍然失败,它似乎有一些做specflow。我不想不得不创建一个新的解决方案,并重新开始,我已经写了很多测试,但不能进一步,因为报告总是会失败,由于这个错误。我已经在网上查过了。我已经尝试了不同的解决方案,包括 https:/github.comSpecFlowOSSSpecFlowissues1851。 等,但无济于事。我已经下调了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);
}
c# visual-studio nunit appium specflow
1个回答
0
投票

我在将我的特性文件移动到共享汇编后,收到了这个错误信息。 错误的原因是SpecFlow.MSBuild生成的静态初始化方法在启动时没有被调用。我通过链式调用顶层测试汇编中相应的初始化方法来解决。

虽然你的问题原因可能不同,但我怀疑你可以用同样的过程来诊断问题。

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

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

    <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>
© www.soinside.com 2019 - 2024. All rights reserved.