Как перезапустить неудачные тестовые случаи с использованием расширенного класса cucumber при запуске файлов объектов в Parallel с использованием cucumber-jvm-parallel-plugin (tymers) - PullRequest
0 голосов
/ 13 января 2020

Я использую плагин cucumber-jvm-parallel-plugin (tymers) для параллельного запуска файлов объектов. На данный момент я не использую какой-либо пользовательский класс бегунов VMtemplate, а использую плагины, генерируемые плагином.

Но теперь я хочу перезапустить ошибочных сценариев / функций, которые работают параллельно. Я попытался использовать ниже customVmRunner с extendedCucumber class , но это не сработало. Может ли кто-нибудь помочь мне с тем, как написать собственный бегун с использованием extendedCucumber class и как настроить его в файле POM? `

Вот как мой файл POM используется в Проект выглядит следующим образом.

        <plugins>
        <plugin>
            <groupId>com.github.temyers</groupId>
            <artifactId>cucumber-jvm-parallel-plugin</artifactId>
            <version>2.1.0</version>
            <executions>
                <execution>
                    <id>generateRunners</id>
                    <phase>validate</phase>
                    <goals>
                        <goal>generateRunners</goal>
                    </goals>
                    <configuration>
                        <testSourceDirectory>${basedir}/src/main/java/</testSourceDirectory>
                    <testClassesDirectory>${project.build.directory}/classes/</testClassesDirectory>

                        <!-- Step Definition Packages, Feature Files Folder, Tags -->
                        <glue> 
                               ALL STEPDEINITION PACKAGES
                        </glue>

                    <featuresDirectory>${basedir}/src/main/resources/ui/features</featuresDirectory>
                        <tags>${ATDD_TAGS}</tags>
                        <filterFeaturesByTags>true</filterFeaturesByTags>
                        <strict>true</strict>
                        <monochrome>true</monochrome>

                        <!-- Generate Runners for each feature file in below directory -->
                        <namingScheme>pattern</namingScheme>
                        <namingPattern>PR{c}_{f}</namingPattern>
                        <parallelScheme>${RUN_LEVEL}</parallelScheme>
                        <outputDirectory>${project.build.directory}/generated-parallel-runners</outputDirectory>


                      <customVmTemplate>  </customVmTemplate>



                        <!-- Generated reports of each parallel runner in below directory -->
                        <format>json</format>
                        <cucumberOutputDir>${project.build.directory}/test-report</cucumberOutputDir>

                    </configuration>
                </execution>
            </executions>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.8.1</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-failsafe-plugin</artifactId>
            <version>2.18.1</version>
            <executions>
                <execution>
                    <goals>
                        <goal>integration-test</goal>
                        <goal>verify</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>3.0.0-M4</version>
            <configuration>
                <forkCount>${FORK_COUNT}</forkCount>
                <reuseForks>true</reuseForks>
                <includes>
                    <include>PR*.java</include>
                </includes>
                <testFailureIgnore>true</testFailureIgnore>
                <reportsDirectory>${project.build.directory}/reports</reportsDirectory>
                <outputDirectory>${project.build.directory}/output</outputDirectory>
            </configuration>
        </plugin>
    </plugins>

Так я создал пользовательский бегун

    #parse("/array.java.vm")
    #if ($packageName)
    package $packageName;

    #end##
    import org.junit.runner.RunWith;

    import cucumber.api.CucumberOptions;
    import cucumber.api.junit.Cucumber;

    #set( $featureFileStripped = $featureFile.replaceFirst("(.*)/src", "src") )

    @RunWith(ExtendedCucumber.class)
    @ExtendedCucumberOptions
(
        jsonReport = "target/81/cucumber.json",
        retryCount = 3,
        jsonUsageReport = "target/81/cucumber-usage.json",
        usageReport = true,
        detailedReport = true,
        detailedAggregatedReport = true,
        overviewReport = true,
        overviewChartsReport = true,
        pdfPageSize = "A4 Landscape",
        toPDF = true,
        outputFolder = "target/81"

        )
    @CucumberOptions(
            strict = $strict,
            features = {"$featureFileStripped"},
            plugin = #stringArray($plugins),

    #if(!$featureFile.contains(".feature:") && $tags)
            tags = #stringArray($tags),
    #end
        monochrome = $monochrome)
    ##  glue = #stringArray($glue))
    public class $className {
    }
...