Какая правильная комбинация версий cucumber-jvm параллельно, maven surefire и компилятора должна быть настроена для параллельного запуска тестов - PullRequest
0 голосов
/ 17 февраля 2019

Я новичок в параллельном плагине cucumber-jvm и хочу в основном понять 2 вещи -

Первое - Какую правильную комбинацию версии я выберу из параллельного плагина cucumber-jvm, maven surefire иплагин компилятора

Второй - в чем отличие реализации cucumber-jvm, поддерживающей параллельное выполнение из V 4.0, и плагина cucumber-jvm -rallel

Там2 фазы люди настраивают в плагине cucumber-jvm -rallel.Цель как валидировать или генерировать раннеров.Может кто-нибудь подсказать мне, в чем разница между этими 2.

             <id>generateRunners</id>
                <phase>generate-test-sources</phase>
                <goals>
                    <goal>generateRunners</goal>
                </goals>

Есть ли какие-либо обязательные настройки, отсутствующие в реализации ниже jvm

    <plugin>
        <groupId>com.github.temyers</groupId>
        <artifactId>cucumber-jvm-parallel-plugin</artifactId>
        <version>2.2.0</version>
        <executions>
            <execution>
                <id>generateRunners</id>
                <phase>generate-test-sources</phase>
                <goals>
                    <goal>generateRunners</goal>
                </goals>
                <configuration>


<glue>com.jacksparrow.automation.steps_definitions.functional</glue>
                        <outputDirectory>${project.build.directory}/generated-test-sources</outputDirectory>
                        <featuresDirectory>src/test/resources/features/functional/</featuresDirectory>
                        <cucumberOutputDir>target/cucumber-parallel</cucumberOutputDir>
                        <format>json,html</format>
                        <tags>"~@ignored"</tags>
                    </configuration>
                </execution>
            </executions>
        </plugin>

Пожалуйста, объясните мне, как это заставляет менясмущенный.

Ответы [ 2 ]

0 голосов
/ 23 февраля 2019

Итак, общая картина такова: если мы используем cucumber v 4.0.0 или выше, мы не будем использовать параллельный плагин cucumber-jvm.Поскольку одним из основных принципов реализации Cucumber 4.0.0 является обеспечение поддержки параллельного выполнения и перехода на версию Maven Surefire, мы также можем использовать последнюю версию, а именно 3.0.0-M3.

0 голосов
/ 17 февраля 2019

Maven Surefire имеет два уровня параллельного выполнения для тестов JUnit.Он может запускать отдельные классы параллельно и может предоставлять планировщик для тестировщиков, которые правильно реализуют ParentRunner.Обычно это используется для параллельного запуска методов BlockJUnit4ClassRunner.

До версии v4 Cucumber неправильно реализовывал ParentRunner, поэтому файлы объектов не могли выполняться параллельно с использованием планировщика.

Как объяснено в cucumber-jvm -rallel-plugin / README , плагин создаст отдельный класс бегуна для каждой функции.Это означает, что параллельное выполнение зависит от способности Surefires выполнять классы параллельно, а не от способности предоставить планировщик.

Если вы используете Cucumber v4, вам не следует использовать параллельный плагин.Для всех, кроме нескольких случаев ограниченного использования, это не дает никаких преимуществ, и целый ряд недостатков.

cucumber-jvm / junit / README.md описывает, как настроить параллельный верный запусквыполнение (последняя стабильная версия surefire:2.22.1 и должна работать).

<build>
    <plugins>
        <plugin>
            <artifactId>maven-surefire-plugin</artifactId>
            <configuration>
                <parallel>both</parallel>
                <threadCount>4</threadCount>
            </configuration>
        </plugin>
    </plugins>
</build>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...