Java 第一个方案失败时如何跳过所有jvm方案
我有8个Java 第一个方案失败时如何跳过所有jvm方案,java,selenium-webdriver,cucumber,cucumber-jvm,Java,Selenium Webdriver,Cucumber,Cucumber Jvm,我有8个jvm场景,第一个场景测量页面加载时间和环境可用性。为了避免不必要的运行,如果第一个场景失败(例如,环境不可用或加载太慢),则应跳过所有其他场景 我该怎么做 我的黄瓜选项: @RunWith(Cucumber.class) @CucumberOptions( strict = true, features = {"src/test/resources/features"}, glue = {"stepDefinitions"},
jvm
场景,第一个场景测量页面加载时间和环境可用性。为了避免不必要的运行,如果第一个场景失败(例如,环境不可用或加载太慢),则应跳过所有其他场景
我该怎么做
我的黄瓜选项
:
@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 {
}
谢谢 您可以使用
假设.assumeTrue(false)
跳过测试。但这需要对测试运行程序进行一些更改,并对代码进行更改
标记一个@Smoke值。其他选项值默认为您拥有的值
@Smoke
标记添加到功能文件中检查环境等的场景中。您可以选择拆分功能文件,其值选项设置为@Smoke
。因此,它将仅在烟雾场景中运行
标记值。其他选项值默认为您拥有的值
@RunWith(Cucumber.class)@CucumberOptions(plugin={“},
标记={“@MainTests”},glue=“”,features=“”)公共类RunMainTest
{
@课前
()之前的公共静态无效{
if(SkipFlag.SkipFlag)
假设。假设为真(假);
}
}
@MainTests
标记添加到功能文件中的其他场景。(可选)您可以查看拆分要素文件,并在“要素”选项值中指定要素文件的名称
运行第一次测试
Runmain测试
按字母顺序排列的
如果只有两个流道,则“包含”部分可能是可选的最重要的一点是RunFirstTest
应该是第一个运行的,所以字母顺序应该是第一个。
希望它能起作用。 < P>而不是尝试在黄瓜上做这件事,只需编写一个简单的BASH脚本,即
- 运行第一个功能文件,例如
cumber功能/first\u场景。功能
- 使用第一次运行的退出代码决定是否运行其余功能
特性的一个特点是,不同的人会根据自己的具体情况,以不同的方式运行它们。将这些东西放在您的功能集中可能会让其他用户更加困难。您是否使用Maven来运行这些测试?使用Maven并出于调试/测试目的,只需在intellij.Gus中运行我的测试,谢谢您的更正。将来将使用此模式!哇!谢谢你的全面回答!看来,这是处理这种事情的最有效的方法,尤其是@smoke标签,用于划分场景。这就是我想要的答案!非常感谢。它应该与cucumber picocontainer(共享驱动程序)一起工作,没有任何问题,对吗?实现了这种方法,工作起来很有魅力!非常有用!一点也不复杂,我学会了一个很好的方法!我欠你一杯啤酒!你应该写一个博客或者类似的东西,在我们的自动化道路上向前迈进是非常有帮助的。我认为,向更有经验的人提问是不被禁止的@蚱蜢,你能看看我关于验证错误消息的另一个问题吗?提前谢谢。谢谢你的回复。蚱蜢的想法已经实现了,一点也不复杂。让我们的生活更轻松,我绝对推荐给任何人。无论如何,谢谢!
@RunWith(Cucumber.class)
@CucumberOptions(plugin={ }, tags={"@Smoke"}, glue=" ", features=" ")
public class RunFirstTest {
public class SkipFlag {
public static boolean skipFlag = false; }
@After(value={"@Smoke"})
public void afterSkip(Scenario scen) {
if(scen.isFailed())
SkipFlag.skipFlag = true;
}
<configuration>
<includes>
<include>RunFirstTest</include>
<include>RunMainTest</include>
</includes>
<runOrder>alphabetical</runOrder>
</configuration>