我是否必须在源代码管理中包含class.feature.cs文件?

时间:2016-07-13 20:50:52

标签: c# git jenkins msbuild specflow

使用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文件移出,尝试构建并且由于缺少文件而导致构建失败。我打开了功能文件,没有做任何更改,但点击了保存(这样生成器创建了文件),现在再次构建了。

有解决方法吗?我希望在生成代码时不会在源代码中自动生成代码。

1 个答案:

答案 0 :(得分:2)

需要代码隐藏文件,因为不同的测试运行程序的代码可以将方案识别为测试。

如果您不想检查它们,可以在构建时生成它们。

有关如何操作的说明,请参阅http://www.specflow.org/documentation/Generate-Tests-from-MsBuild/