提问者:小点点

如何并行运行cucumber特征文件


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

第一个特点:

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

我正在使用cucumberjava测试。我能够并行运行场景。但是我真的想在并行中运行功能。我已经实现了下面的并行场景代码。

public class RunCucumberTest extends AbstractTestNGCucumberTests {

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

共2个答案

匿名用户

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

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

匿名用户

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

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

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

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

要实现使用的东西,您可以重用您已经编写的方法来实现第一个场景的步骤。