Я использую плагин 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 {
}