是否可以在运行时跳过 Cucumber-JVM 的场景

2024-01-23

我想将标签 @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(使用前将#替换为@)

是否可以在运行时跳过 Cucumber-JVM 的场景 的相关文章

  • 在其他项目中重用 Cucumber-JVM 步骤定义

    如何在其他项目中重用 Cucumber JVM 步骤定义来测试一些典型的 Web 操作 重点是 我创建了一些 java 项目 仅使用典型场景操作的步骤定义实现 例如 When I follow the link some link Then
  • 如何使用 Capybara 获取 HTML 表格行

    我正在尝试使用部分 href xpath 扫描 HTML 表中的行 并对该行的其他列值执行进一步测试 div table tr td a href afile key HONDA link a td td 29 33 485 td td 4
  • 有 Spring Boot 与 cucumber-jvm 配合使用吗?

    我正在使用 Spring Boot 因为它删除了所有无聊的东西 让我专注于我的代码 但所有测试示例都使用 junit 而我想使用 Cucumber 有人能给我指出正确的方向 让黄瓜和弹簧启动 进行所有自动配置和接线 并让我的步骤定义使用自动
  • 如何从命令行执行 Cucumber Spring Boot 打包的 Jar?

    我对 cucumber jvm 世界相当陌生 尝试将 Cucumber Spring Boot 应用程序打包为 Jar 应用程序在 Eclipse 中运行良好 但是当我打包为可执行 jar 时 它失败并出现 Exception 主线程异常
  • Cucumber如何查找某个功能文件是否已执行?有什么Java方法吗?

    Before public void quit if tagged scenario failed Scenario scenario if isTagged scenario prevScenarioFailed throw new Il
  • Cucumber:如何从外部 Excel 文件中读取场景大纲的示例

    我的要求是从外部 Excel 文件读取示例 而不是将其硬编码到功能文件中 我有 100 多个示例 这些示例很难在功能文件中维护 你能帮我解决这个问题吗 这是我的场景 Scenario Outline Browser Test When I
  • 从 Cucumber Stepdefs 中的 Testng.xml 文件读取参数值

    我能够在与 Cucumber 集成时运行 testng 脚本 我已按照中定义的确切步骤进行操作http automatictester co uk 2015 06 11 basic cucumberjvm selenium webdrive
  • cucumber-testng 4.0 并行执行默认为 10 始终

    这是我的酷跑者 我试图通过重写 dataprovider 方法来使用 cucumber jvm 4 0 0 中内置的并行性 我看到我的场景是并行调用的 但线程数始终默认为 10 我尝试使用 threads 选项作为状态执行GitHub ht
  • 如何创建 Cucumber 数据表?

    我想使用 Java 而不是 Gherkin 手动设置 Cucumber 数据表 在 Gherkin 中 我的表格如下所示 h1 h2 v1 v2 到目前为止 我的 Java 看起来像这样 List
  • Cucumber.wants_to_quit 的 cucumber-jvm 等价物是什么?

    我正在使用 cucumber jvm 编写测试 我希望系统在第一个失败的场景中停止运行测试 我找到了为 Cucumber Ruby 编写的示例代码 它通过 After 挂钩来执行此操作 我正在寻找正确的 java 类和方法来调用 这相当于在
  • 如何根据环境实现cucumber场景不同的数据

    我在不同环境中执行 cucumber jvm 场景时遇到问题 场景的特征文件中包含的数据属于一个环境 为了在不同的环境中执行场景 我需要根据要执行的环境更新功能文件中的数据 例如 在以下场景中 我将搜索条件包含在功能文件中 搜索条件对于 Q
  • 黄瓜报告缺少报告结果 - 报告未成功完成

    我使用 Cucumber Reports 插件在管道作业中获取 Cucumber 报告 以前工作正常 但现在出现此错误 CucumberReport Preparing Cucumber Reports CucumberReport JSO
  • 使用Karate REST API工具上传文件

    我正在尝试使用空手道在特定的松弛通道上上传图像 但没有运气 我尝试了多次不同的步骤 但仍然有 200 响应 并且图像未显示在通道中 尝试发布文字内容并成功在频道上找到文字 以下是我根据空手道文档尝试过的两个 post Feature Pos
  • 在步骤定义文件之间共享相同的 selenium WebDriver

    现在我们正在努力采用 Cucumber 在我们的 Java8 Spring 应用程序上运行功能测试 我们希望我们的步骤定义文件尽可能保持干燥 因此计划在不同的功能文件中使用相同的步骤定义 由于我们使用的是硒WebDriver为了驱动我们的测
  • 是否可以从 Cucumber 功能文件中传递 Java-Enum 作为参数

    我目前正在将selenium与Java一起使用 并希望实现cucumber以使测试脚本更具可读性 目前在将参数传递给 java 方法时面临问题 其中 Enum 应该作为参数 我还想知道在迁移当前框架之前 cucumber java 是否还有
  • 如何在 Cucumber-JVM 中明确匹配这些步骤?

    有什么方法可以明确匹配以下步骤吗 And I should have 2 alerts And I should have 2 alerts with param 71 我将它们实现为 And I should have d alerts
  • 将外部数据源与 Cucumber 功能文件集成

    我是 Cucumber 及其用于 BDD 的功能文件的新手 我想知道是否有任何方法可以直接给出外部数据文件 例如 CSV 文件 的文件路径 并获取用于创建测试脚本的参数值 您可以向功能添加带有参数的标签 data path data jso
  • java - JUnit 测试失败挂钩上的 Cucumber

    我们使用 Cucumber JVM 编写验收测试脚本 并使用 JUnit 来执行它们 通过 JUnit Cucumber 运行程序 由于这些测试涉及 Selenium WebDriver 因此我希望能够在测试失败时截取屏幕截图 我有代码 如
  • 如何在 Cucumber-JVM 中并行运行场景? [复制]

    这个问题在这里已经有答案了 我有一组为 Cucumber JVM 编写的验收测试 为了减少反馈时间 我想并行运行 功能的 场景 我该如何以最简单 最方便的方式做到这一点 我希望能够在 Java 代码中表达这一点 作为常规的 JUnit 测试
  • 如何在验收测试期间从 Struts 2 获取 ActionContext?

    我正在使用 cucumber jvm 在一个使用 Struts 2 和 Tomcat 作为我的 Servlet 容器的应用程序上编写验收测试 测试行为 在我的代码中的某个时刻 我需要从 Struts 2 中获取用户HttpSession 由

随机推荐