每个测试的标记钩子 运行
Tagged hooks are running for every test
我的 Hooks class 如下所示:
@Before("@Firefox")
public void setUpFirefox() {}
@Before("@Chrome")
public void setUpChrome() {}
@After
public void tearDown(){}
当我 运行 以下命令时 mvn test -Dcucumber.options="--tags @Chrome"
两个 @Before
函数都在调用。
如何根据 maven 命令 运行 具体 @Before
方法?
My Runner class(我已经尝试使用 tags
选项,它也不适合我):
@RunWith(Cucumber.class)
@CucumberOptions(
plugin = {"pretty", "json:target/cucumber-reports/Cucumber.json",
"junit:target/cucumber-reports/Cucumber.xml",
"html:target/cucumber-reports"},
features = {"src/test/features/"},
glue = {"steps"})
public class RunCukesTest {
}
我的专题文件:
Feature: Storybook
@Test @Widgets @Smoke @Chrome @Firefox
Scenario: Storybook example
Given The user clicks on "storybook" index on the homepage
And Storybook HomePage should be displayed
看起来是因为你有那个场景的两个标签,before 挂钩似乎是根据 运行ning 的场景执行的。例如
-tag命令行--tags@Chrome等指定要运行
哪个场景
-现在基于该场景,使用附加到该场景的标签执行之前的函数(测试、Widgets、Smoke、Chrome、Firefox)
如果您要为 Smoke 标签添加 Before 钩子,我想那也会 运行。
例如:
(在 Scala 中)
Before("@test1") { _ =>
println("test1 before actioned")
}
Before("@test2") { _ =>
println("test2 before actioned")
}
使用特征文件:
[...]
@test1
Scenario: Test scenario 1
Given Some precondition occurs
@test2
Scenario: Test scenario 2
Given Some precondition occurs
当我 运行 这些标签中的任何一个时,我得到输出
test1 before actioned
或 test2 before actioned
但是,如果在一个场景中同时使用两个标签,则会打印两行。
那些 setupChome、setupFirefox 函数中正在执行什么操作,只是设置驱动程序?您可以创建新系统 属性 例如 browser
,匹配值并执行一些设置然后您可以输入:
-Dbrowser=chrome
它将以这种方式进行设置。
我的 Hooks class 如下所示:
@Before("@Firefox")
public void setUpFirefox() {}
@Before("@Chrome")
public void setUpChrome() {}
@After
public void tearDown(){}
当我 运行 以下命令时 mvn test -Dcucumber.options="--tags @Chrome"
两个 @Before
函数都在调用。
如何根据 maven 命令 运行 具体 @Before
方法?
My Runner class(我已经尝试使用 tags
选项,它也不适合我):
@RunWith(Cucumber.class)
@CucumberOptions(
plugin = {"pretty", "json:target/cucumber-reports/Cucumber.json",
"junit:target/cucumber-reports/Cucumber.xml",
"html:target/cucumber-reports"},
features = {"src/test/features/"},
glue = {"steps"})
public class RunCukesTest {
}
我的专题文件:
Feature: Storybook
@Test @Widgets @Smoke @Chrome @Firefox
Scenario: Storybook example
Given The user clicks on "storybook" index on the homepage
And Storybook HomePage should be displayed
看起来是因为你有那个场景的两个标签,before 挂钩似乎是根据 运行ning 的场景执行的。例如
-tag命令行--tags@Chrome等指定要运行
哪个场景-现在基于该场景,使用附加到该场景的标签执行之前的函数(测试、Widgets、Smoke、Chrome、Firefox)
如果您要为 Smoke 标签添加 Before 钩子,我想那也会 运行。
例如:
(在 Scala 中)
Before("@test1") { _ =>
println("test1 before actioned")
}
Before("@test2") { _ =>
println("test2 before actioned")
}
使用特征文件:
[...]
@test1
Scenario: Test scenario 1
Given Some precondition occurs
@test2
Scenario: Test scenario 2
Given Some precondition occurs
当我 运行 这些标签中的任何一个时,我得到输出
test1 before actioned
或 test2 before actioned
但是,如果在一个场景中同时使用两个标签,则会打印两行。
那些 setupChome、setupFirefox 函数中正在执行什么操作,只是设置驱动程序?您可以创建新系统 属性 例如 browser
,匹配值并执行一些设置然后您可以输入:
-Dbrowser=chrome
它将以这种方式进行设置。