当我编辑 specflow 功能文件测试时,它不会更新代码隐藏文件。
当我尝试通过右键单击项目并选择'Regenerate Feature Files'
手动重新生成代码隐藏文件时,出现错误:
错误:在此系统上找不到自定义工具'specflowsinglefilegenerator'
我发现这通常意味着我没有安装Specflow
扩展名。但是,当我在Visual Studio中查看“扩展和更新”时,可以看到已安装'Specflow for Visual Studio 2017'
。
如果有人知道我能做什么,那将非常有帮助。 当我将存储库重新克隆到新文件夹时,此操作开始。
我也尝试过清理和重建。关闭Visual Studio。卸载并重新安装Specflow Extension。从Visual Studio从2019切换到2017。重新启动计算机。更新规格流程。删除specflow缓存文件并强制文件重新生成。 我仍然没有更改代码隐藏文件。
答案 0 :(得分:5)
在Visual Studio中,我选择:工具>选项> Specflow。 然后将“启用SpecFlowSingleFileGenerator自定义工具”设置为True。
但是,这是一个旧设置,我想尝试找到一种使用MSBuild的方法。
答案 1 :(得分:1)
要将旧版 Specflow v2.4.1
与 MSTest 结合使用,您只需执行以下操作:
在 Visual Studio 中设置此选项:
为您的特征文件设置 CustomTool
属性:
在您的测试项目的 App.Config 中有以下标记:
<specFlow>
<unitTestProvider name="MsTest" />
</specFlow>
添加对 Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll 的引用,如下图所示:
确保您在测试项目中添加了以下两个 nuget 包:
然后尝试重新生成功能文件。如果这不起作用,请在执行以下步骤后再次尝试上述步骤:
bin
和 obj
文件夹。下面的链接是很好的阅读来了解规范流代码生成的东西:
https://docs.specflow.org/projects/specflow/en/latest/Tools/Generate-Tests-From-MsBuild.html https://docs.specflow.org/projects/specflow/en/latest/Installation/Unit-Test-Providers.html
答案 2 :(得分:0)
我有同样的问题。当我将specflow升级到3.0.213时,没有生成feature.cs和测试。然后,我使用了this MSBUild示例和最新的specflow来生成feature.cs和测试资源管理器中的测试。它使用MSTest作为测试运行程序。
答案 3 :(得分:0)
这些是我从使用旧的“ specflowsinglefilegenerator”切换为生成* .feature.cs文件到在构建测试项目时使它们自动更新所必须采取的步骤。
在Specflow's website中描述了该过程,但是图片有助于理解该过程。