繁体   English   中英

如何并行运行 cucumber 功能文件

[英]How to Run cucumber Feature files in parallel

我想运行功能文件(不是场景)以并行运行。

第一个特点:

Feature: Refund item for Jeff

  Scenario: 01 Collect Details
    Given Collect Jeff details
    And Collect receipts for purchase
  
  Scenario: 02 Refund
    When Jeff returns the microwave
    Then Jeff should be refunded $100

第二个特点:

Feature: Refund item for Dave

  Scenario: 01 Collect Details
    Given Collect Dave details
    And Collect receipts for purchase
  
  Scenario: 02 Refund
    When Dave returns the microwave
    Then Dave should be refunded $100

我正在使用带有 testng 的 Cucumber-java。 我能够并行运行这些场景。 但我真的很想并行运行功能。 我已经为并行场景实现了下面的代码。

public class RunCucumberTest extends AbstractTestNGCucumberTests {

    @Override
    @DataProvider(parallel = true)
    public Object[][] scenarios() {
        return super.scenarios();
    }
}

你不能。 场景旨在彼此独立地执行。 根据您要测试的内容,您可以将功能文件中的所有场景转换为单个场景。

但是,您应该考虑重写您的场景,使它们不依赖于先前场景中的操作。

通常这意味着编写如下场景:

Scenario: Do a thing
  Given a thing
  When a thing is used
  Then something happens

Scenario: Do another thing next
  Given a thing that was used
  When a thing is used again
  Then something else happens

要实现a thing that was used您可以重用您已经编写的方法来实现第一个场景的步骤。

您无法使用TestNg实现这一目标。 但。 您可以使用JUnit4来实现。 基本上这就是根据Cucumber 规范JUnit 4进行并行化的方式。

Cucumber 可以使用 JUnit 和 Maven 测试执行插件并行执行。 在 JUnit 中,功能文件是并行运行的,而不是场景,这意味着一个功能文件中的所有场景都将由同一个线程执行。 您可以使用 Maven Surefire 或 Failsafe 插件来执行运行器。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM