Selenium Cumber示例表未正确划界

Selenium Cumber示例表未正确划界,selenium,cucumber,cucumber-java,Selenium,Cucumber,Cucumber Java,我有一个示例表 Examples: | UserName | Group | NotifyUser | ReadOnlyPermission | | testing@test.com | new test | no | no | 为了台阶 And User fills out User Info Form with <UserName> <Group> <NotifyUser> <R

我有一个示例表

Examples:
| UserName         | Group    | NotifyUser | ReadOnlyPermission |
| testing@test.com | new test | no         | no                 |
为了台阶

And User fills out User Info Form with <UserName> <Group> <NotifyUser> <ReadOnlyPermission>
但是由于某些原因,变量username被导入为testing@test.com新的而不仅仅是testing@test.com.


我看了所有的地方,但我似乎找不出它为什么没有正确划界。有什么办法可以解决这个问题吗?

因为您的组中有空格。将示例数据添加到步骤后,它看起来如下所示:

您可以重写步骤定义,用逗号分隔项目,以便:

And User fills out User Info Form with <UserName>,<Group>,<NotifyUser>,<ReadOnlyPermission>
这将解决您的问题:


注意-如果示例数据中有逗号,此修复程序将遇到问题。但是,在编写正则表达式时,可以考虑这一点。

为什么用户名会通过?testing@test.com新的,而不是新的成为自己的项目,并以testing@test.com新测试?因为您在捕获组之间有固定数量的空格,但不受组内空格的限制,因为有一个点接受所有符号,包括空格。这就是为什么这样意外的分组是唯一匹配您最初使用的表达式的分组。
And User fills out User Info Form with <UserName>,<Group>,<NotifyUser>,<ReadOnlyPermission>
@And("^User fills out User Info Form with (.*),(.*),(.*),(.*)$")
public void fillUserInfoForm(String username, String group, String notifyUser, String readOnlyPermission)