【问题标题】:Specflow Generate Step Definition is missing from the context menu上下文菜单中缺少 Specflow 生成步骤定义
【发布时间】:2018-09-02 12:05:16
【问题描述】:
我右键单击我的功能文件应该可以选择生成步骤定义。它不在上下文菜单中。
我进行了搜索,它说要为 nunit 安装 specrun。
我尝试从 Manage NuGet Packages 安装 SpecRun.Nunit。
我得到错误:
Severity Code Description Project File Line Suppression State
Error Unable to load the service index for source
http://packagesource.
An error occurred while sending the request.
The remote name could not be resolved: 'packagesource' 0
我安装了 Visual Studio Enterprise 2017。
我已经安装了 Selenium-webdriver,Specflow
请问如何解决这个问题,谢谢。
【问题讨论】:
标签:
selenium-webdriver
visual-studio-2013
specflow
【解决方案1】:
您需要从菜单项 Tools -> "Extensions and Updates..." 安装 specflow nuget 包以及 Visual Studio 集成包
【解决方案2】:
这是使选项出现在 VS2019 的上下文菜单中所要做的。
- 我正常安装了 Specflow,从 Extensions-> Manage Extensions,
然后搜索 Specflow for Visual Studio 2019。
- 安装包并重新启动VS。
- 然后我创建了一个新项目,一个 C# 测试。
- 初始设置准备就绪后,从
解决方案资源管理器我去了“添加->新项目...”并选择了“SpecFlow
Feature File”,我在我的 Feature 文件中输入了我想要的信息。
- 在任何 Gherkin 行上,我右键单击以获取上下文
菜单并选择“转到定义”。显示一个对话框,告诉我
没有匹配项,但我可以将这些行保存在剪贴板中。一世
选择是。
- 然后再次在解决方案资源管理器上(如步骤 4),右键单击
“Add->New Item...”,但现在选择了“SpecFlow Step Definition”。这
步骤定义将是计算器测试的定义。
下面是诀窍:
像这样:
using System;
using TechTalk.SpecFlow;
namespace SpecflowFirst
{
[Binding]
public class SpecFlowFeature1Steps
{
}
}
- 然后将您从对话框中获得的 sn-p 粘贴到主目录中
类
像这样:
using System;
using TechTalk.SpecFlow;
namespace SpecflowFirst
{
[Binding]
public class SpecFlowFeature1Steps
{
[Given(@"I navigated to the github login page")]
public void GivenINavigatedToTheGithubLoginPage()
{
ScenarioContext.Current.Pending();
}
}
}
这将触发编译错误。如果您指向“ScenarioContext”中的错误并执行“显示潜在修复”,则其中一个修复将是安装“Sprcflow 扩展”。这样您就可以安装剩余的集成,该集成现在将在上下文菜单中显示该选项。
这解决了我的问题,现在我可以在上下文菜单“生成步骤定义”中看到
【解决方案3】:
我遵循了 Kyon 的出色演练,但这对我不起作用。即使 SpecFlow 已正确安装,它也无法识别以下库,或者对“修复此问题”提出任何建议:
using TechTalk.Specflow
然后我注意到,对于全新的 MsTest 项目和最新的 VS2019(截至 2020 年 10 月),您需要安装稍微-早期版本的 SpecFlow(v2.1 相比v2.4)。
因此,如果您在显示这个虚幻的“生成步骤定义”菜单项时也遇到问题,请查看您的 Dependencies\Packages 中是否有任何感叹号。