首页 > 解决方案 > 当我执行场景大纲时,它会从给定的语句中执行多次(Cucumber-JVM)

问题描述

当我执行场景大纲时,它从场景大纲开始执行多次。我知道它会根据测试数据执行多次,但是当我们执行场景大纲时,它不应该每次都从给定语句执行,它必须多次执行示例。如何解决这个问题。

@Workflow
Scenario Outline: Perform
   Given I click on Maglink 
   When I Click AllMagLink & Select Exception  on Advanced Filters 
   And I Send the Value After Reading Form ExcelSheet
   And I Click on Search
   And I Click on subregLink
   And I Get The xxxx From xxxx Tab
   Then I Click on <Tabs> and Validate it in AllTasks

   Examples: 
   |Tabs        |
   |Apple       |
   |Mango       |
   | PineApple  |

标签: cucumberselenium-chromedrivercucumber-jvmcucumber-javacucumber-junit

解决方案


场景大纲是一种从一个书面定义运行多个场景的方法。对于每个示例,场景将从一开始就作为单个场景运行。在每个场景(每个示例)之间,一切都会被重置,这样之前的场景就不会影响当前的场景。

这就是场景大纲的工作方式,并且在过去 10 年中一直有效。他们正常工作,这不会改变。您只是误解了它们的工作原理。

如果您想编写一个执行许多不同操作的单一场景,那么您必须将执行此操作的代码推送到您的步骤定义中,因此您最终会得到如下步骤

When 'I do many different things' do
  @results = []
  @results << do_first_thing
  @results << do_second_thing
end

Then "I should see I've done different things" do
  # examine @results
end

注意:上面的代码是 Ruby


推荐阅读