我有一个针对3个不同标签的功能。有些场景针对所有三个标签运行,有两个,一些仅针对一个。
@build_1 @build_2
Scenario: Test Case 1
Given I am on the home page
And I click the X button
Then I must see the text "function not available"
@build_1
Scenario: Test Case 2
Given I am on the home page
And I click the Y button
Then I must see the text "You pushed the Y button"
@build_2 @build_3
Scenario: Test Case 3
Given I am on the home page
And I click the Y button
Then I must see the text "function not available"
@build_3
Scenario: Test Case 4
Given I am on the home page
And I click the X button
Then I must see the text "Hey, this is neat!"
@build_1 @build_2 @build_3
Scenario: Test Case 5
Given I am on the home page
And I click the Z button
Then I must see the text "You pushed the Z button"
我使用三个不同的命令运行场景:
cucucmber features/my_test.feature --tags @build_1
cucucmber features/my_test.feature --tags @build_2
cucucmber features/my_test.feature --tags @build_3
我已经大大简化了我的代码,考虑到在构建之间切换所需的时间,我必须以这种方式运行测试。
有没有办法告诉哪个标签调用了当前的运行?使用
scenario.source_tag_names
给出了给定场景的所有标签,我正在寻找在命令行上指定的一个标签。如果我跑
cucucmber features/my_test.feature --tags @build_2
对于方案1,我得到了
scenario.source_tag_names = ["@build_1", "@build2", "@build_3"]
我想要的东西只是给@ build_2。
最后我要找的是确保所有场景都针对所有各自标签运行的方法。
答案 0 :(得分:1)
AfterConfiguration do |config|
puts config.tag_expressions
end