下载Specflow的先前版本.vsix

时间:2017-10-06 22:35:41

标签: visual-studio-2017 specflow vsix

我们的团队支持使用最新版本Specflow的用户以及未使用的用户的自动化工作。因此需要在VS2017上的Specflow的当前.vsix以及期望Specflow 2.1的.vsix之间反弹(现在我被卡住了因为任何feature.cs再生失败而且找不到2.2)。我确实试图从https://github.com/techtalk/SpecFlow.VisualStudio/tree/release/v2017.1拉出来,但我得到了几个未解决的对Microsoft.VisualStudio的引用。

只需简单地拉出适用于SpecFlow 2.1的.vsix?

编辑:感谢Andreas,非常感谢快速反应。如果您愿意,我会继续在GitHub上打开一个问题,但我并不意味着暗示扩展存在问题。这可能是我的一个误解 - 我虽然目前的Specflow VS Extension'期望' SpecFlow 2.2。

如您所知,SpecFlow 2.2使用NUnit 3.x,而SpecFlow 2.1使用NUnit 2.x,这对于使用NUnit 2.x的过时功能的解决方案来说实质上是一个重大变化。

因此,当我从使用SpecFlow 2.2的分支切换到另一个使用2.1的分支(甚至尝试清除AppData / Local / Temp)时,SpecFlowGenerator将会失败,因为它正在寻找SpecFlow 2.2,我们不会这样做#&# 39;由于NUnit问题,我想在预转换分支中使用。

我希望不必更换扩展名,只要我可以继续在使用SpecFlow 2.1和使用2.2的分支之间切换分支。该项目的app.config确实包含绑定重定向 -

<dependentAssembly> <assemblyIdentity name="TechTalk.SpecFlow" publicKeyToken="0778194805d6db41" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-2.2.1.0" newVersion="2.1.0.0" /> </dependentAssembly>

所以问题是即使在使用2.1和2.2的分支之间弹跳时如何使用最新的扩展。再次感谢!

2 个答案:

答案 0 :(得分:0)

Visual Studio扩展支持从1.9到2.2的所有版本的SpecFlow。

如果您遇到问题,请在GitHub上打开一个问题,以便我们可以一起找到原因。

更新:
SpecFlow没有直接引用NUnit。不是2.2或之前的任何东西。有一个NuGet包SpecFlow.NUnit,它与NUnit有一个包依赖,但是这个包只能为NUnit配置SpecFlow。但是,当您手动进行配置时(在app.config中将单元测试提供程序设置为NUnit),您不需要这样做。

可能是,当您切换分支并且之间不重新启动Visual Studio时,我们仍然引用了之前的SpecFlow程序集,因此创建了一个Version hickup。

完全披露:我是SpecFlow的维护者之一。

答案 1 :(得分:0)

如果有其他人在努力解决这个问题,那么这个特定事件序列对我有用的解决方法

1)你有一个使用SpecFlow 2.1的分支

2)升级到最新的VS SpecFlowExtension

3)切换到另一个使用SpecFlow 2.2的分支并成功生成feature.cs

4)您收到来自需要2.1支持的用户的请求,切换到该分支,更改功能文件,并获得未找到SpecFlow 2.2的攻击

5)即使关闭VS的所有实例,删除LocalAppData / Temp / VisualStudioTestExplorerExtensions,启动VS并打开使用SpecFlow 2.1驱动程序的解决方案,然后尝试保存仍然导致未找到SpecFlow 2.2,即使使用绑定重定向到2.1

显然有些东西被缓存到磁盘上(重新启动没有帮助),这一点并不是很明显。解决方案是使用单独的克隆 - 一个用于引用SpecFlow 2.1的分支,另一个用于引用SpecFlow 2.2的分支的完全独立的克隆。

现在我不再遇到SpecFlow Generator错误 - 诀窍不是使用单独的分支,而是使用单独的克隆。