我在同一个功能文件中写了两行(何时)
When user $action1$ $key1$ with $value1$ for $atttributeType_Value$ in $Filename1_SectionId1$
Then abc
When user $action2$ $key2$ with $value2$ in $Filename2_SectionId2$
Then def
以及步骤定义文件中相应的步骤定义
as
[When(@"user (.*) (.*) with (.*) for (.*) in (.*)")]
public void abc()
{ //operation }
[When(@"user (.*) (.*) with (.*) in (.*)")]
public void def()
{ //operation }
但是,它显示错误为“找到多个匹配绑定。导航到第一个匹配..”
当我尝试导航第一行时,它给出错误......但是当我使用第二行进行导航时。它导航正常。
我在应该有“”的地方使用了“$”。
问题是你的第二个正则表达式:
with (.*) in (.*)
匹配这两行
with a partridge in a pear tree
with a partridge for Christmas in a pear tree
在第一个实例中,它将选择“鹧鸪”和“梨树”作为两个参数。在第二个中,它将选择“圣诞节的鹧鸪”和“梨树”作为参数。由于您的第一个正则表达式也匹配第二行,因此它确实找到了多个绑定。
您可以使用不同的正则表达式。例如,如果您想挑选整个单词并且不包含任何空格,请尝试(\S*)
代替(.*)
. That .
匹配任何内容,包括空格。有关正则表达式的更多信息here https://msdn.microsoft.com/en-us/library/az24scfc(v=vs.110).aspx.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)