我必须在源代码管理中包含 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/。
使用 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/。