Используя 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>
так что ничего необычного там нет. После того, как мой код попадет в начало/мастер, мы будем запускать сборку jenkins, поэтому из любопытства я переместил файл feature.cs, попытался построить, и сборка завершилась неудачно из-за недостающего файла. Я открыл файл функции, ничего не изменил, но нажал save (так, чтобы генератор создал файл), а теперь снова работает.
Есть ли способ обойти это? Я бы предпочел не иметь автоматически сгенерированный код в источнике, когда он может быть сгенерирован.
Файлы, содержащие код, нужны, потому что есть код для разных тестовых бегунов, чтобы распознавать сценарии в качестве тестов.
Если вы не хотите их проверять, вы можете сгенерировать их, когда будете строить.
См. Http://www.specflow.org/documentation/Generate-Tests-from-MsBuild/ для объяснения, как это сделать.