【问题标题】:Is it possible to open code of specflow scenario (scenario outline) from test explorer in Visual Studio 2013?是否可以从 Visual Studio 2013 的测试资源管理器中打开 specflow 场景的代码(场景大纲)?
【发布时间】:2015-07-01 19:34:42
【问题描述】:

我有一个specflow场景,它是一个带有两个示例场景大纲。在 Visual Studio 2013 的测试资源管理器窗口中,我可以将其视为两个单独的测试(没关系),但是上下文菜单中的“打开测试”命令对它们不起作用,但它适用于简单的规范流场景(不是“大纲”情景)。是否可以从 Visual Studio 2013 的测试资源管理器窗口中快速打开此类大纲场景的代码?还是有其他方法可以做到这一点?

附:我用SpecFlow integration for Visual Studio 2013

【问题讨论】:

  • 也许包含一个指向屏幕截图的链接以准确显示您的意思?

标签: visual-studio-2013 specflow


【解决方案1】:

当前版本的 specflow 在为场景大纲映射代码行时存在一些问题。 This pull request 对此进行了修复,并在 vNext 分支中合并(通过 this PR)。我有一个安装了此修复程序的版本,我刚刚检查过,当我选择“打开测试”或在测试资源管理器中双击一个测试时,我会被带到测试资源管理器中的场景行。

为了使用它,您需要自己构建一个我从“v2”分支精简的 specflow 版本,至少在 nuget 上发布 beta 版本之前。

为了使用 v2 分支,您需要签出代码并构建它。因此,您最终应该在\SpecFlow\Installer\NuGetPackages\bin\ 中获得一个 nuget 包。您可能需要更新 specflow.nuspec 中的版本号,以便获得正确的版本号。完成后,您需要将 nuget 包放入文件夹中,然后将 tell visual studio the that folder is a nuget source 放入。然后你可以安装 nuget 包(卸载旧包之后),你应该很高兴。如果它不起作用,则可能是因为扩展需要更新。在机器上搜索 specflow dll 并用新构建的版本替换它们可能是最好的方法,因为 ide 集成现在是一个单独的包。

有其他问题请告诉我,我会尽我所能提供帮助。

【讨论】:

  • 感谢您的回答。需要检查这个。我已经下载了“v2”分支(它是specflow 1.7.1版本,不是最新的吗??)并构建它。我现在如何让我的测试项目使用它?我将“Specflow for Visual Studio 2013”​​作为扩展安装,并通过“管理 NuGet 包”在 Visual Studio 中安装了 Specflow 1.9.0 包。我是否需要卸载/删除所有这些并手动将“v2”分支中对 TechTalk.Specflow.dll 的新引用添加到我的项目中?我已经尝试过了,但是现在构建失败,出现“...'WhenAttribute' not found...”等消息。当我试图...
  • ... 使用“v2”分支中对其他 TechTalk.Specflow.dll 的引用(我需要哪个 dll,因为“v2”分支中有几个?)我得到“没有重载方法 'When' 需要 4 个参数”等等。附言在 App.config 我有 <configSections> <section name="specFlow" type="TechTalk.SpecFlow.Configuration.ConfigurationSectionHandler, TechTalk.SpecFlow"/> </configSections> <specFlow> <unitTestProvider name="MsTest" /> </specFlow>
  • @alika,我已经更新了答案以包含一些说明。请阅读。另外,由于您是新手,您可能想check out how the site works
  • 仍然无法解决这个问题。我已经删除了以前安装的 SpecFlow 包。我已经按照你的描述准备了新的包裹。然后我在 Visual Studio 中设置了所有内容,如here 所述。在“管理 NuGet 包”窗口中,要从我的源“SpecFlow”安装的新包被标记为“预发布”。可以吗?我已经尝试安装它。然后它看起来像已安装的包,但没有为我的测试项目自动添加对 TechTalk.SpecFlow.dll 的引用。 ...
  • .. 然后我卸载了这个包并为了检查目的尝试在我的包源中安装 SpecFlow.NUnit 包(它也可用)。连同 SpecFlow 包本身也被自动安装。对 TechTalk.SpecFlow.dll 的引用也被自动添加(虽然不是每次我都尝试过,而且我已经尝试了好几次)。但是无论如何,构建并不成功。然后,按照您的建议,我尝试用新的旧 SpecFlow dll 替换所有其他旧的 SpecFlow dll,但我不确定这些是否是我需要替换的。没有帮助。 ...
猜你喜欢
  • 2017-10-31
  • 2020-03-10
  • 2018-03-10
  • 2014-10-12
  • 2021-04-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-31
相关资源
最近更新 更多