【发布时间】:2018-12-13 19:13:40
【问题描述】:
我有一个带有标签的背景测试用例,我需要每次都在多个场景中运行。
例子:
有 3 个场景和 1 个背景。简而言之,Background 的行为应该类似于测试的@BeforeMethod
所以我的执行应该是这样的
- 背景然后场景 1 (@Dev,@tagteacher1)
- 先是背景,然后是场景 2 (@Dev,@tagteacher2)
- 再次背景,然后是场景 3 (@Dev,@tagteacher3)
@TestStory
Feature: Teachers' timesheet need to be filled
Background:
Scenario Outline: Open Webpage
Given User Open teacher application with given <ENDPOINT>
And Login into application with given <USERNAME> and <PASSWORD>
And User clicks on teacher submission link
@DEV
Examples:
| endpoint | USERNAME | PASSWORD |
| http://teachersheetdev.ggn.com | sdrdev| aknewdev|
@QA
Examples:
| endpoint | USERNAME | PASSWORD |
| http://teachersheetqa.ggn.com | sdrqa | aknewdev|
@tagteacher1
Scenario1: Open app home page and click the button1
Given I'm at the teachersheet homepage
When User clicks Add Task button
Then User should see the tasks schedule
@tagteacher2
Scenario1: Open app home page and click the button2
Given I'm at the teachersheet homepage
When User clicks Add Task button
Then User should see the tasks schedule
@tagteacher3
Scenario1: Open app home page and click the button3
Given I'm at the teachersheet homepage
When User clicks Add Task button
Then User should see the tasks schedule
import org.junit.runner.RunWith;
import com.optum.synergy.common.ui.controller.WebController;
import cucumber.api.CucumberOptions;
import cucumber.api.SnippetType;
import cucumber.api.junit.Cucumber;
@RunWith(Cucumber.class)
@CucumberOptions(
plugin = { "json:target/test_results/cucumber.json"},
features = { "src/main/resources/ui/features" },
tags ={"@Dev,@tagteacher"},
snippets = SnippetType.CAMELCASE
)
public class CucumberRunnerTest {
public static void tearDown(){
WebController.closeDeviceDriver();
}
}
当我想使用 Dev 或 QA 环境运行时如何使用标签?
【问题讨论】:
-
你可以使用
@Before钩子来实现这个。见stackoverflow.com/questions/51202574/…