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

本文关键字:class 包含 feature cs 文件 管理 是否 源代码 | 更新日期: 2023-09-27 17:56:45

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

有没有办法解决这个问题?当可以生成源代码时,我宁愿不要在源代码中自动生成代码。

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

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

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

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