Test explorer visual studio 2015没有发现specflow测试

时间:2016-10-28 13:48:57

标签: visual-studio-2015 specflow

不确定它是否是一个视觉工作室的错误,或者我是否错过了明显的错误,但它有点受欢迎。

有时,Visual Studio会发现测试,大多数时候我只能看到选框进度条而不是其他内容。

关于为什么的任何想法?

EDITED

这是怎么回事:

有时测试没有显示 大多数时间测试显示,但是当构建/重建解决方案比选框进度条进入无限循环并且运行选定测试和调试选择测试都是禁用时因此无法运行测试。输出窗口什么都没有显示。

2 个答案:

答案 0 :(得分:0)

如果有一些消息,请查看输出窗格/测试输出,以指示测试不可见的原因。 SpecFlow使用属性生成正常的MSTest测试用例。所以测试资源管理器应该每次都找到它们而不需要做任何额外的工作。

答案 1 :(得分:0)

Specflow.Tools.MSBuild.Generation版本= 2.3.2中有一个错误。

它的简短摘要如下:Specflow找到.feature个文件 并且是否缺少任何相应的.feature.cs文件,或者 过期,它将生成它们并将其添加到文件列表中 称为SpecFlowGeneratedFiles.csproj包含一个部分,其中 将SpecFlowGeneratedFiles编译到程序集中。如果文件 不包括在内,则装配体中没有测试,因此 没有发现任何测试。

如果所有.feature.cs文件已经存在并且 最新的SpecFlowGeneratedFiles未设置,您得到 令人难以置信的情况是测试神秘地消失了。 您可以通过删除生成的.feature.cs中的任何一个来验证此错误 磁盘中的文件并重新构建。

一种解决方法是编辑.csproj并在AfterUpdateFeatureFilesInProject之后添加一个部分。

<Target Name="AfterUpdateFeatureFilesInProject">
  <ItemGroup>
    <Compile Include="@(SpecFlowGeneratedFiles)" />
  </ItemGroup>
</Target>

<!-- Workaround Specflow 2.3 MSBuild bug. SpecFlowGeneratedFiles is not set if UpdateFeatureFilesInProject is up-to-date
   causing tests not to be discovered, as they are not included in the project -->
<ItemGroup>
  <Compile Include="**/*.feature.cs" Exclude="@(SpecFlowGeneratedFiles)">
    <DependentUpon>%(Filename)</DependentUpon>
  </Compile>
</ItemGroup>