Specflow无法检测到我的测试VS 2017

时间:2019-10-09 03:05:58

标签: visual-studio-2017 nunit mstest specflow

很久以来我一直在尝试,但是还没有成功。我创建了新的单元测试项目,并添加了以下内容:

包装:

Nunit - 3.10.0
Nunit3TestAdapter - 3.11.0
SpecFlow - 2.3.2
SpecFlow.Assist.Dynamic - 1.3.1

App.Config:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="specFlow"
             type="TechTalk.SpecFlow.Configuration.ConfigurationSectionHandler, TechTalk.SpecFlow"/>
  </configSections>
  <specFlow>
    <unitTestProvider name="MsTest" />
  </specFlow>
</configuration>

我也尝试使用Nunit进行上述配置。

还添加了specflow默认功能文件和步骤定义文件。但是VS 2017仍然无法检测到我的任何测试。

总是作为输出:NUnit在...中找不到任何测试。

我已经为Visual Studio 2017安装了Specflow。

1 个答案:

答案 0 :(得分:1)

Specflow.Tools.MSBuild.Generation版本= 2.3.2中存在错误

一种解决方法是编辑.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>