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

Do I have to include the class.feature.cs file in source control?

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

有办法解决这个问题吗?我宁愿源代码中没有自动生成的代码也可以生成。

需要代码隐藏文件,因为不同的测试运行器需要将场景识别为测试的代码。

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

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