为什么@Before钩子中的scheme.getName()只返回最后一个方案名?

时间:2019-07-01 09:14:59

标签: selenium-webdriver cucumber

我正在使用Cucumber&TestNG在Selenium Webdriver中创建一个框架,并且对于报告部分,我正在使用范围报告。

在@Before挂钩中,我想取每个场景的名称。因此,我使用的是 scenario.getName()方法。因此,对于4个场景,我想通过这种方法获得4个不同的场景名称,但是每次我只获得最后一个场景名称。例如:以下是我的功能文件: enter image description here

下面是我使用@Before钩子的“步骤定义”方法。 enter image description here

注意:在@Before钩子中,我使用了 cucumber.api.Scenario ,因为有两个Scenario类,一个来自Extent Report,另一个来自Cucumber.api,所以我导入第一个,第二个使用完整的名称。

现在,对于@Before挂钩中的S.O.P函数,它应该为每次迭代逐一打印方案名称。但是,每次我只得到最后一个方案名称。我在哪里做错了? enter image description here

1 个答案:

答案 0 :(得分:3)

前三个方案大纲被忽略。原因是它们没有任何示例表。仅最后一个方案大纲附有示例表并可以运行。

最后一个方案大纲的名称为“用户登录”,对于“示例”表的每一行重复4次。

将示例表复制到每个方案大纲中。

Scenario Outline: <title>
Given User is on....

Examples
|username |....| title |
...............| valid login |