我想将标签 @skiponchrome 添加到场景中,这应该在使用 Chrome 浏览器运行 Selenium 测试时跳过该场景。这样做的原因是因为某些场景在某些环境中有效,而在其他环境中无效,这甚至可能不是特定于浏览器测试的,并且可以应用于其他情况,例如操作系统平台。
钩子示例:
@Before("@skiponchrome") // this works
public void beforeScenario() {
if(currentBrowser == 'chrome') { // this works
// Skip scenario code here
}
}
我知道可以在黄瓜标签中定义 ~@skiponchrome 来跳过该标签,但我想在运行时跳过标签。这样我在某个环境上开始测试运行时就不必提前考虑要跳过哪些步骤。
我想创建一个钩子来捕获标签并跳过场景而不报告失败/错误。这可能吗?
我意识到这是对已回答问题的较晚更新,但我想直接添加一个选项支持的 https://github.com/cucumber/cucumber-jvm/pull/363通过黄瓜 jvm:
@Before //(cucumber one)
public void setup(){
Assume.assumeTrue(weAreInPreProductionEnvironment);
}
“并且该场景将被标记为忽略(但测试将通过)如果weAreInPreProductionEnvironment
是假的。”
您需要添加
import org.junit.Assume;
与接受的答案的主要区别在于JUnit 假设失败的行为就像挂起一样 https://github.com/cucumber/cucumber-jvm/commit/bc215fee21ea92739688f65ce49fff1b21847ff7
重要的因为一个bug fix https://github.com/cucumber/cucumber-jvm/pull/961您将需要 cucumber-jvm 版本 1.2.5,在撰写本文时该版本是最新版本。例如,上面的代码将在 cucumber-java8-1.2.3.jar 中生成失败而不是挂起
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)