如何忽略黄瓜的特定场景?

2022-09-01 07:08:06
  1. 我正在使用cucumber来喂养场景和java作为语言。
  2. 在运行自动化测试时,我需要忽略特定方案。
  3. 我尝试了以下@ignore语法,它根本不起作用。
  4. 它不会跳过特定的场景,它会继续执行所有测试场景,我在功能文件中提供了这些场景。

功能文件

@ActivateSegment
Feature: Test for Activate segment

  Scenario: Login
    Given I navigate to M
    And I enter user name 
    And I enter password 
    And I login to MM

  Scenario: Open grid
    Given I choose menu
    And I choose Segments menu

  Scenario: Open segment creation page
    Given I click on New button
    And I click on Segment button

答案 1

使用标签~@tag_name

排除具有特定标记的方案

cucumber --tags ~@tag_name

注意我用了符号。~


这里需要注意的一件事是,如果您的@wip标记的场景通过,Cucumber将以1的状态退出(这是一个提醒,因为它们通过后不再工作)。

更新 1

示例方案

@billing
Feature: Verify billing

  @important
  Scenario: Missing product description

  Scenario: Several products

运行标签

cucumber --tags @billing            # Runs both scenarios
cucumber --tags @important          # Runs the first scenario
cucumber --tags ~@important         # Runs the second scenario (Scenarios without @important)

正式文件:https://github.com/cucumber/cucumber/wiki/Tags


答案 2

根据 Cucumber.io2 种样式可以定义标记表达式。对于您的特定情况,要排除标有@ignore的步骤或功能,以下 2 种样式可转换为:

  • 旧风格cucumber --tags ~@ignore
  • 新样式 : .cucumber --tags "not @ignore"

令我惊讶的是,在Node.js v6.9.2上运行的相同的cucumber-js v1.3.1,我发现Windows版本只接受新样式,而Linux版本只接受旧样式。根据您的设置,您可能希望同时尝试两者,看看是否成功使用其中任何一个。


推荐