запустить тесты огурцов параллельно с помощью cucumber-jvm 4

Java v8.x - весна v5.x огурец v4.2.0

Я попробовал temyers/cucumber-jvm-parallel-plugin, и он работает нормально, но когда я добрался до их страницы gitihub, они объявили о прекращении использования этого плагина b / c cucumber уже начали поддерживать поддержку параллельного тестирования от cucumber-jvm 4.0.0.

У меня есть существующие тесты с использованием следующих зависимостей maven.

cucumber-java v4.2.0
cucumber-junit v4.2.0
cucumber-spring v4.2.0

у меня есть два вопроса, которые сбивают меня с толку.

  1. Чтобы использовать cucumber-jvm, мне нужно изменить свои зависимости, или мои текущие зависимости будут работать.
  2. Могу ли я запустить параллельные тесты на огурцы, просто передав параметр --parallel?

любая помощь приветствуется.


person d-man    schedule 22.03.2019    source источник


Ответы (1)


Параллельная поддержка была введена в cucumber-jvm:4.0.0. Итак, с вашими зависимостями все в порядке.

Если вы используете Maven:

Cucumber JUnit - параллельное выполнение с Maven

Cucumber JUnit поддерживает параллельное выполнение файлов функций в нескольких потоках. Чтобы включить это с помощью maven, установите для свойства parallel значение methods или both.

<build>
    <plugins>
        <plugin>
            <artifactId>maven-surefire-plugin</artifactId>
            <configuration>
                <parallel>both</parallel>
                <threadCount>4</threadCount>
            </configuration>
        </plugin>
    </plugins>
</build>

Если вы используете Gralde, вам лучше использовать плагин Gradle Cucumber, поскольку Gradle не поддерживает распараллеливание на уровне подкласса. В этом случае вам не нужно cucumber-junit.

Gradle Cucumber runner - параллельное выполнение функций

Cucumber поддерживает параллельное выполнение, если вы укажете количество используемых потоков. Это можно сделать двумя способами.

  • Опция, запускаемая из командной строки, ./gradlew cucumber --threads 4, будет запускать четыре параллельных потока.
  • Расширение, устанавливающее значение в вашем build.gradle файле в разделе огурцов.

Устанавливая значение в скрипте сборки, вы не можете точно знать, к скольким потокам сборка будет иметь доступ. Жесткое кодирование фиксированного числа может быть не лучшим вариантом.

Один из способов указать количество используемых потоков:

cucumber {
    threads = = Runtime.runtime.availableProcessors().intdiv(2) ?: 1 
}

Это будет использовать как можно больше потоков, оставляя ресурсы для выполнения Gradle.

person M.P. Korstanje    schedule 22.03.2019
comment
привет @mpkorstanje - Верна ли такая же конфигурация для огурца с хорошо протестированным тестом? - person Shubham Jain; 24.10.2019
comment
Кроме того, есть ли у нас какой-либо документ с примером образца для сборок maven - person Shubham Jain; 24.10.2019