are*_*ena 5 java cucumber cucumber-jvm selenium-webdriver
我有 8 个cucumber-jvm场景,第一个场景测量页面加载时间和环境可用性。为了避免不必要的运行,如果第一个场景失败 - 例如,环境不可用或加载太慢 - 应跳过所有其他场景。
我怎样才能做到这一点?
我的CucumberOptions:
@RunWith(Cucumber.class)
@CucumberOptions(
strict = true,
features = {"src/test/resources/features"},
glue = {"stepDefinitions"},
format = { "progress", "html:target/Results",
"json:target/Results/cucumber.json"},
tags = {"@test"})
public class TestRunner {
}
Run Code Online (Sandbox Code Playgroud)
谢谢!
您可以使用它Assume.assumeTrue(false)来跳过测试。但这需要对测试运行程序和代码进行一些更改。
tags值 @Smoke。其他选项值默认为您拥有的值。Run Code Online (Sandbox Code Playgroud)@RunWith(Cucumber.class) @CucumberOptions(plugin={ }, tags={"@Smoke"}, glue=" ", features=" ") public class RunFirstTest {
将@Smoke标签添加到检查环境等的功能文件中的场景中。您也可以选择拆分功能文件。
创建一个新类来保存静态标志。这是一个简单的实现,您可能会考虑使其更加健壮。
Run Code Online (Sandbox Code Playgroud)public class SkipFlag { public static boolean skipFlag = false; }
After hook,并将值选项设置为@Smoke。因此它只会在烟雾场景下运行。Run Code Online (Sandbox Code Playgroud)@After(value={"@Smoke"}) public void afterSkip(Scenario scen) { if(scen.isFailed()) SkipFlag.skipFlag = true; }
tags值 @MainTests。其他选项值默认为您拥有的值。
@RunWith(Cucumber.class) @CucumberOptions(plugin={" "}, tags={"@MainTests"}, glue=" ", features=" ") public class RunMainTest {
@BeforeClass public static void before() { if(SkipFlag.skipFlag) Assume.assumeTrue(false); } }
将@MainTests标签添加到功能文件中的其他场景。或者,您可以考虑拆分功能文件,并在 features 选项值中给出功能文件的名称。
使用 Maven 故障安全插件运行它。在此插件的配置中,在 pom.xml 中添加这 2 个运行程序。
Run Code Online (Sandbox Code Playgroud)<configuration> <includes> <include>RunFirstTest</include> <include>RunMainTest</include> </includes> <runOrder>alphabetical</runOrder> </configuration>
如果您只有 2 个跑步者,则包含部分可能是可选的。最重要的一点是RunFirstTest应该是第一个运行的,所以按字母顺序应该是第一个。
希望它有效。
| 归档时间: |
|
| 查看次数: |
5504 次 |
| 最近记录: |