Specflow - 没有匹配的步骤定义错误,但仅在场景大纲的第二次迭代时

时间:2017-03-27 14:57:34

标签: specflow

我的解决方案中有一个功能如下:

功能:登录
    登录界面
场景大纲:使用无效凭据登录     给定已创建并激活用户帐户
    何时我输入用户名<用户名>
     我输入密码<密码>
     我按登录
    然后显示错误消息
    的实施例
    |用户名|密码|
    | joe.bloggs | abcd1234 |
    | known.user | ck |

步骤文件包含:

[Binding]
public class LoginSteps
{

    [Given(@"A user account has been created and activated")]
    public void GivenAUserAccountHasBeenCreatedAndActivated()
    {
        int a = 1;
    }

    [When(@"When I enter the username (.*)")]
    public void WhenIEnterTheUsername(string username)
    {
        int a = 1;
    }

    [When(@"When I enter the password (.*)")]
    public void WhenIEnterThePassword(string password)
    {
        int a = 1;
    }

    [When(@"I press Login")]
    public void WhenIPressLogin()
    {
        int a = 1;
    }

    [Then(@"An error message is displayed")]
    public void ThenAnErrorMessageIsDisplayed()
    {
        int a = 1;
    }
}

*我添加了'int a = 1;'临时调整行以便于调试

当我右键单击该功能并选择“Debug Specflow Scenarios”时,会发生以下错误: 找不到一个或多个步骤的匹配步骤定义:'显示错误消息'

该方案是所有颜色编码正确的,并且转到步骤定义适用于“显示错误消息”步骤。

之前有其他人看过这个或者有过如何修复的建议吗?

3 个答案:

答案 0 :(得分:0)

问题可能出在specflow项目的配置文件中...... 你是否: a)不要宣告测试员 b)申报非英语语言?

或替代方案 c)不经意地禁用specflow d)选择了错误的dotnet框架

答案 1 :(得分:0)

最后,我能解决的唯一方法是删除功能文件并从头开始重新创建。现在有效,但我不确切知道问题是什么。

答案 2 :(得分:0)

您遇到的问题是,在 when 步骤中重复了 when 字样,如下所示:

 [When(@"When I enter the username (.*)")]
....

 [When(@"When I enter the password (.*)")]

它们应该像这样:

    [When(@"I enter the username (.*)")]
    public void WhenIEnterTheUsername(string username)
    {
        int a = 1;
    }

    [When(@"I enter the password (.*)")]
    public void WhenIEnterThePassword(string password)
    {
        int a = 1;
    }