gpt4 book ai didi

.net - 如何使用 msbuild 生成 specflow feature.cs 文件?

转载 作者:行者123 更新时间:2023-12-03 21:42:48 25 4
gpt4 key购买 nike

我正在尝试将 specflow 与 CI 一起使用,并且必须将生成的 .cs 文件检查到源代码管理中似乎是错误的。

我试过编辑 .csproj 文件来设置 <BeforeBuild>True</BeforeBuild>Compile feature.cs 文件的步骤,但似乎没有区别。我能找到重新生成 .feature.cs 文件的唯一方法是使用 Visual Studio,但我想在 CI 构建服务器上使用 msbuild。

我也尝试添加 AfterUpdateFeatureFilesInProject目标如 specflow doc 所述但这也没有创建 .feature.cs 文件,无论是否在 .csproj 文件中包含 .feature.cs 文件。

( This question 建议阅读 MSDN 上的“指定自定义构建工具”,但我在那里看不到任何有用的东西。schema definition for msbuild on MSDN 甚至没有提到 Compile 元素 AFAICT。)

最佳答案

我按照说明操作
http://specflow.org/documentation/Generate-Tests-from-MsBuild/ ,但有一些缺失的步骤。

  • 将 SpecFlowTasksPath 属性设置为 specflow.exe 的位置
  • 导入 TechTalk.SpecFlow.tasks
  • 导入 TechTalk.SpecFlow.targets

  • 这些路径应该是相对路径,我的指向 NuGet 包\文件夹,我在其中为我的项目引用了 SpecFlow。

    此外,我在 AfterUpdateFeatureFilesInProject 目标中添加了一个步骤,将生成的文件移动到已知位置,以便可以轻松查看它们。这个文件夹在我的 GIT 存储库中被忽略。

      <PropertyGroup>
    <SpecFlowTasksPath>..\packages\SpecFlow.2.2.0\tools\specflow.exe</SpecFlowTasksPath>
    </PropertyGroup>
    <Import Project="..\packages\SpecFlow.2.2.0\tools\TechTalk.SpecFlow.tasks" Condition="Exists('..\packages\SpecFlow.2.2.0\tools\TechTalk.SpecFlow.tasks')" />
    <Import Project="..\packages\SpecFlow.2.2.0\tools\TechTalk.SpecFlow.targets" Condition="Exists('..\packages\SpecFlow.2.2.0\tools\TechTalk.SpecFlow.targets')" />
    <Target Name="AfterUpdateFeatureFilesInProject">
    <Move SourceFiles="@(SpecFlowGeneratedFiles)" DestinationFolder="Features.Generated" OverwriteReadOnlyFiles="true" />
    <ItemGroup>
    <!-- include any files that specflow generated into the compilation of the project -->
    <Compile Include="Features.Generated\**\*.cs">
    <Visible>true</Visible>
    <!-- the generated files can be hidden in Visual Studio -->
    </Compile>
    </ItemGroup>
    </Target>

    关于.net - 如何使用 msbuild 生成 specflow feature.cs 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42481881/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com