使用Specflow 2.1,NUnit 3.4和Visual Studio 2015我正在修复以将我的源代码提交到git中。当我到达Foobar.feature.cs
时,它说它是自动生成的。我在csproj文件中看到它被编译(有意义)并且它依赖于特征文件,并且它是生成的。
<ItemGroup>
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Foobar.feature.cs">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>Foobar.feature</DependentUpon>
</Compile>
<Compile Include="FoobarSteps.cs" />
</ItemGroup>
<ItemGroup>
<None Include="App.config" />
<None Include="packages.config" />
<None Include="Foobar.feature">
<Generator>SpecFlowSingleFileGenerator</Generator>
<LastGenOutput>Foobar.feature.cs</LastGenOutput>
</None>
</ItemGroup>
那里没什么特别的。在我的代码被推入origin / master之后,我们将启动jenkins构建,因此出于好奇我将feature.cs文件移出,尝试构建并且由于缺少文件而导致构建失败。我打开了功能文件,没有做任何更改,但点击了保存(这样生成器创建了文件),现在再次构建了。
有解决方法吗?我希望在生成代码时不会在源代码中自动生成代码。
答案 0 :(得分:2)
需要代码隐藏文件,因为不同的测试运行程序的代码可以将方案识别为测试。
如果您不想检查它们,可以在构建时生成它们。
有关如何操作的说明,请参阅http://www.specflow.org/documentation/Generate-Tests-from-MsBuild/。