以下是最新的自动生成的运行器文件
import cucumber.api.CucumberOptions;
import cucumber.api.testng.AbstractTestNGCucumberTests;
@CucumberOptions(strict = false,
features = {"C:/Users/mbethu/IdeaProjects/comparalleltestng/src/main/java/java/features/HomePage.feature"},
plugin = {"html:target/cucumber/1.html"},
monochrome = true,
tags = {},
glue = { "java.stepdefinitions" })
public class Parallel01IT extends AbstractTestNGCucumberTests {
}
import cucumber.api.CucumberOptions;
import cucumber.api.testng.AbstractTestNGCucumberTests;
@CucumberOptions(strict = false,
features = {"C:/Users/mbethu/IdeaProjects/comparalleltestng/src/main/java/java/features/Login.feature"},
plugin = {"html:target/cucumber/2.html"},
monochrome = true,
tags = {},
glue = { "java.stepdefinitions" })
public class Parallel02IT extends AbstractTestNGCucumberTests {
}
下面是最新的testng.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Suite" data-provider-thread-count="3"> <!-- how many scenarios we can execute at a time is mentioned bt data-provider-thread-count-->
<test name="ChromeTest" thread-count="5" >
<!-- <parameter name="browser" value="chrome"/>-->
<packages>
<package name="target.generated-test-sources.cucumber"/>
</packages>
</test> <!-- Test -->
</suite> <!-- Suite -->
下面是最新的POM.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.parallel</groupId>
<artifactId>com.parallel.testng</artifactId>
<version>1.0-SNAPSHOT</version>
<build>
<plugins>
<plugin>
<groupId>com.github.temyers</groupId>
<artifactId>cucumber-jvm-parallel-plugin</artifactId>
<version>2.1.0</version>
<executions>
<execution>
<id>generateRunners</id>
<phase>generate-test-sources</phase>
<goals>
<goal>generateRunners</goal>
</goals>
<configuration>
<!-- Mandatory -->
<!-- comma separated list of package names to scan for glue code -->
<glue>java.stepdefinitions</glue>
<outputDirectory>${project.build.directory}/generated-test-sources/cucumber</outputDirectory>
<!-- The directory, which must be in the root of the runtime classpath, containing your feature files. -->
<featuresDirectory>C:\Users\mbethu\IdeaProjects\comparalleltestng\src\main\java\java\features</featuresDirectory>
<!-- Directory where the cucumber report files shall be written -->
<cucumberOutputDir>target/cucumber</cucumberOutputDir>
<!-- comma separated list of output formats json,html,rerun.txt -->
<format>html</format>
<!-- CucumberOptions.strict property -->
<strict>false</strict>
<!-- CucumberOptions.monochrome property -->
<monochrome>true</monochrome>
<!-- The tags to run, maps to CucumberOptions.tags property you can pass ANDed tags like "@tag1","@tag2" and ORed tags like "@tag1,@tag2,@tag3" -->
<!-- <tags></tags>-->
<!-- If set to true, only feature files containing the required tags shall be generated. -->
<filterFeaturesByTags>false</filterFeaturesByTags>
<!-- Generate TestNG runners instead of default JUnit ones. -->
<useTestNG>true</useTestNG>
<!-- The naming scheme to use for the generated test classes. One of 'simple' or 'feature-title' -->
<namingScheme>simple</namingScheme>
<!-- The class naming pattern to use. Only required/used if naming scheme is 'pattern'.-->
<namingPattern>Parallel{c}IT</namingPattern>
<!-- One of [SCENARIO, FEATURE]. SCENARIO generates one runner per scenario. FEATURE generates a runner per feature. -->
<parallelScheme>FEATURE</parallelScheme>
<!-- This is optional, required only if you want to specify a custom template for the generated sources (this is a relative path) -->
<!--<customVmTemplate>src/test/resources/cucumber-custom-runner.vm</customVmTemplate>-->
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.0</version>
<configuration>
<fork>true</fork>
<executable>C:\Program Files\Java\jdk1.8.0_201\bin\javac.exe</executable>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.1</version>
<configuration>
<!--<forkCount>5</forkCount>
<reuseForks>true</reuseForks>-->
<suiteXmlFiles>
<suiteXmlFile>src\test\java\testng.xml</suiteXmlFile>
</suiteXmlFiles>
<testFailureIgnore>true</testFailureIgnore>
<parallel>classes</parallel>
<threadCount>10</threadCount>
<testErrorIgnore>true</testErrorIgnore>
<includes>
<include>src\test\java\testng.xml</include>
<!--<include>**/*IT.class</include>-->
</includes>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java -->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>3.141.59</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-server -->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-server</artifactId>
<version>3.141.59</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.testng/testng -->
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.14.3</version>
<scope>compile</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.maven.surefire/surefire-testng -->
<!-- <dependency>
<groupId>org.apache.maven.surefire</groupId>
<artifactId>surefire-testng</artifactId>
<version>2.22.1</version>
</dependency>-->
<!-- https://mvnrepository.com/artifact/info.cukes/cucumber-testng -->
<!-- <dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-testng</artifactId>
<version>1.2.5</version>
</dependency>-->
<!-- https://mvnrepository.com/artifact/info.cukes/cucumber-java -->
<!-- <dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-java</artifactId>
<version>1.2.5</version>
</dependency>-->
<!-- https://mvnrepository.com/artifact/info.cukes/cucumber-jvm -->
<!-- <dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-jvm</artifactId>
<version>1.2.5</version>
<type>pom</type>
</dependency>-->
<!-- https://mvnrepository.com/artifact/info.cukes/cucumber-jvm-deps -->
<!-- <dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-jvm-deps</artifactId>
<version>1.0.5</version>
<scope>provided</scope>
</dependency>-->
<!-- https://mvnrepository.com/artifact/info.cukes/gherkin -->
<!-- <dependency>
<groupId>info.cukes</groupId>
<artifactId>gherkin</artifactId>
<version>2.12.2</version>
<scope>provided</scope>
</dependency>
-->
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-java</artifactId>
<version>4.2.3</version>
</dependency>
<!-- https://mvnrepository.com/artifact/io.cucumber/cucumber-testng -->
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-testng</artifactId>
<version>2.0.0</version>
</dependency>
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-junit</artifactId>
<version>4.2.3</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>datatable</artifactId>
<version>1.1.12</version>
</dependency>
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-picocontainer</artifactId>
<version>4.2.3</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
下面是较旧的文件
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.parallel</groupId>
<artifactId>com.parallel.testng</artifactId>
<version>1.0-SNAPSHOT</version>
<build>
<plugins>
<plugin>
<groupId>com.github.temyers</groupId>
<artifactId>cucumber-jvm-parallel-plugin</artifactId>
<version>2.1.0</version>
<executions>
<execution>
<id>generateRunners</id>
<phase>generate-test-sources</phase>
<goals>
<goal>generateRunners</goal>
</goals>
<configuration>
<!-- Mandatory -->
<!-- comma separated list of package names to scan for glue code -->
<glue>java.stepdefinitions</glue>
<outputDirectory>${project.build.directory}/generated-test-
sources/cucumber</outputDirectory>
<!-- The directory, which must be in the root of the runtime classpath, containing your feature files. -->
<featuresDirectory>C:\Users\mbethu\IdeaProjects\comparalleltestng\src\main\java\java\features</featuresDirectory>
<!-- Directory where the cucumber report files shall be written -->
<cucumberOutputDir>target/cucumber</cucumberOutputDir>
<!-- comma separated list of output formats json,html,rerun.txt -->
<format>json,html</format>
<!-- CucumberOptions.strict property -->
<strict>false</strict>
<!-- CucumberOptions.monochrome property -->
<monochrome>true</monochrome>
<!-- The tags to run, maps to CucumberOptions.tags property you can
pass ANDed tags like "@tag1","@tag2" and ORed tags like
"@tag1,@tag2,@tag3" -->
<tags></tags>
<!-- If set to true, only feature files containing the required tags
shall be generated. -->
<filterFeaturesByTags>false</filterFeaturesByTags>
<!-- Generate TestNG runners instead of default JUnit ones. -->
<useTestNG>true</useTestNG>
<!-- The naming scheme to use for the generated test classes. One of
'simple' or 'feature-title' -->
<namingScheme>simple</namingScheme>
<!-- The class naming pattern to use. Only required/used if naming scheme is 'pattern'.-->
<namingPattern>Parallel{c}IT</namingPattern>
<!-- One of [SCENARIO, FEATURE]. SCENARIO generates one runner per
scenario. FEATURE generates a runner per feature. -->
<parallelScheme>FEATURE</parallelScheme>
<!-- This is optional, required only if you want to specify a custom
template for the generated sources (this is a relative path) -->
<!--<customVmTemplate>src/test/resources/cucumber-custom-
runner.vm</customVmTemplate>-->
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.19.1</version>
<configuration>
<!-- <forkCount>5</forkCount>
<reuseForks>true</reuseForks>-->
<suiteXmlFiles>
<suiteXmlFile>src\test\java\testng.xml</suiteXmlFile>
</suiteXmlFiles>
<parallel>classes</parallel>
<threadCount>10</threadCount>
<!-- <includes>
<include>**/*IT.class</include>
</includes>-->
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java -->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>3.141.59</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-server -->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-server</artifactId>
<version>3.141.59</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.testng/testng -->
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.14.3</version>
<scope>compile</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.maven.surefire/surefire-testng -->
<dependency>
<groupId>org.apache.maven.surefire</groupId>
<artifactId>surefire-testng</artifactId>
<version>2.22.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/info.cukes/cucumber-testng -->
<dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-testng</artifactId>
<version>1.2.5</version>
</dependency>
<!-- https://mvnrepository.com/artifact/info.cukes/cucumber-java -->
<dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-java</artifactId>
<version>1.2.5</version>
</dependency>
<!-- https://mvnrepository.com/artifact/info.cukes/cucumber-jvm -->
<dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-jvm</artifactId>
<version>1.2.5</version>
<type>pom</type>
</dependency>
<!-- https://mvnrepository.com/artifact/info.cukes/cucumber-jvm-deps -->
<dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-jvm-deps</artifactId>
<version>1.0.5</version>
<scope>provided</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/info.cukes/gherkin -->
<dependency>
<groupId>info.cukes</groupId>
<artifactId>gherkin</artifactId>
<version>2.12.2</version>
<scope>provided</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/io.cucumber/cucumber-core
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-core</artifactId>
<version>4.2.6</version>
</dependency>-->
<!-- https://mvnrepository.com/artifact/org.apache.maven.plugins/maven-compiler-plugin -->
<dependency>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
</dependency>
</dependencies>
下面是我运行命令时遇到的错误
运行测试:0,失败:0,错误:0,跳过:0
[INFO] -------------------------------------------------- ---------------------- [INFO]内置失败[INFO] -------------------------------------------------- ---------------------- [INFO]总时间:12.820 s [INFO]完成于: 2019-04-20T16:15:56 + 05:30 [INFO] -------------------------------------------------- ---------------------- [ERROR]无法执行目标 org.apache.maven.plugins:maven-surefire-plugin:2.19.1:test (默认测试)在项目com.parallel.testng上:执行默认测试 目标org.apache.maven.plugins:maven-surefire-plugin:2.19.1:test 失败:分叉过程中出现错误[ERROR] java.lang.NoSuchMethodError: org.apache.maven.surefire.report.SimpleReportEntry。(Ljava / lang / String; Ljava / lang / String; Ljava / util / Map;)V 在[ERROR] org.apache.maven.surefire.testng.TestSuite.startTestSuite(TestSuite.java:46) 在[ERROR] org.apache.maven.surefire.testng.TestNGXmlTestSuite.execute(TestNGXmlTestSuite.java:74) 在[ERROR] org.apache.maven.surefire.testng.TestNGProvider.invoke(TestNGProvider.java:120) 在[ERROR] org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:290) 在[ERROR] org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:242) 在[ERROR] org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:121) [错误] [错误]-> [帮助1] org.apache.maven.lifecycle.LifecycleExecutionException:失败 执行目标 org.apache.maven.plugins:maven-surefire-plugin:2.19.1:test (默认测试)在项目com.parallel.testng上:执行默认测试 目标org.apache.maven.plugins:maven-surefire-plugin:2.19.1:test 失败:分叉过程中出现错误 java.lang.NoSuchMethodError: org.apache.maven.surefire.report.SimpleReportEntry。(Ljava / lang / String; Ljava / lang / String; Ljava / util / Map;)V 在org.apache.maven.surefire.testng.TestSuite.startTestSuite(TestSuite.java:46) 在org.apache.maven.surefire.testng.TestNGXmlTestSuite.execute(TestNGXmlTestSuite.java:74) 在org.apache.maven.surefire.testng.TestNGProvider.invoke(TestNGProvider.java:120) 在org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:290) 在org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:242) 在org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:121)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:215) at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156) at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject
(LifecycleModuleBuilder.java:117) 在org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject中 (LifecycleModuleBuilder.java:81) 在org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56) 在org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128) 在org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:305) 在org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:192) 在org.apache.maven.DefaultMaven.execute(DefaultMaven.java:105) 在org.apache.maven.cli.MavenCli.execute(MavenCli.java:956) 在org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288) 在org.apache.maven.cli.MavenCli.main(MavenCli.java:192) 在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处 在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在java.lang.reflect.Method.invoke(Method.java:498) 在org.codehaus.plexus.classworlds.launcher.Launcher.launch上增强 (Launcher.java:282) 在org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:225) 在org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406) 在org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:347)上由以下原因引起: org.apache.maven.plugin.PluginExecutionException:执行 目标的默认检验 org.apache.maven.plugins:maven-surefire-plugin:2.19.1:test失败: 分叉的过程java.lang.NoSuchMethodError中存在错误: org.apache.maven.surefire.report.SimpleReportEntry。(Ljava / lang / String; Ljava / lang / String; Ljava / util / Map;)V 在org.apache.maven.surefire.testng.TestSuite.startTestSuite(TestSuite.java:46) 在org.apache.maven.surefire.testng.TestNGXmlTestSuite.execute(TestNGXmlTestSuite.java:74) 在org.apache.maven.surefire.testng.TestNGProvider.invoke(TestNGProvider.java:120) 在org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:290) 在org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:242) 在org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:121)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:148) at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:210) at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156) at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject
(LifecycleModuleBuilder.java:117) 在org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject中 (LifecycleModuleBuilder.java:81)
org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build
(SingleThreadedBuilder.java:56) 在org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128) 在org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:305) 在org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:192) 在org.apache.maven.DefaultMaven.execute(DefaultMaven.java:105) 在org.apache.maven.cli.MavenCli.execute(MavenCli.java:956) 在org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288) 在org.apache.maven.cli.MavenCli.main(MavenCli.java:192) 在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处 在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在java.lang.reflect.Method.invoke(Method.java:498) 在org.codehaus.plexus.classworlds.launcher.Launcher.launch上增强 (Launcher.java:282) 在org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:225) 在org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406) 在org.codehaus.plexus.classworlds.launcher.Launcher.main上(Launcher.java:347)造成原因:java.lang.RuntimeException: 分叉进程java.lang.NoSuchMethodError中的错误: org.apache.maven.surefire.report.SimpleReportEntry。(Ljava / lang / String; Ljava / lang / String; Ljava / util / Map;)V 在org.apache.maven.surefire.testng.TestSuite.startTestSuite(TestSuite.java:46) 在org.apache.maven.surefire.testng.TestNGXmlTestSuite.execute(TestNGXmlTestSuite.java:74) 在org.apache.maven.surefire.testng.TestNGProvider.invoke(TestNGProvider.java:120) 在org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:290) 在org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:242) 在org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:121)
at org.apache.maven.plugin.surefire.booterclient.ForkStarter.fork (ForkStarter.java:584) at org.apache.maven.plugin.surefire.booterclient.ForkStarter.fork (ForkStarter.java:460) at org.apache.maven.plugin.surefire.booterclient.ForkStarter.run (ForkStarter.java:229) at org.apache.maven.plugin.surefire.booterclient.ForkStarter.run (ForkStarter.java:201) at org.apache.maven.plugin.surefire.AbstractSurefireMojo.executeProvider
(AbstractSurefireMojo.java:1026) 在org.apache.maven.plugin.surefire.AbstractSurefireMojo.executeAfterPreconditionsChecked (AbstractSurefireMojo.java:862) 在org.apache.maven.plugin.surefire.AbstractSurefireMojo.execute(AbstractSurefireMojo.java:755) 在org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:137) 在org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:210) 在org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:156) 在org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:148) 在org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject中 (LifecycleModuleBuilder.java:117) 在org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject中 (LifecycleModuleBuilder.java:81) 在org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56) 在org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128) 在org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:305) 在org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:192) 在org.apache.maven.DefaultMaven.execute(DefaultMaven.java:105) 在org.apache.maven.cli.MavenCli.execute(MavenCli.java:956) 在org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288) 在org.apache.maven.cli.MavenCli.main(MavenCli.java:192) 在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处 在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在java.lang.reflect.Method.invoke(Method.java:498) 在org.codehaus.plexus.classworlds.launcher.Launcher.launch上增强 (Launcher.java:282) 在org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:225) 在org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406) 在org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:347)上[ERROR] [ERROR] [ERROR]有关更多信息 错误和可能的解决方案,请阅读以下文章: [错误] [帮助1] http://cwiki.apache.org/confluence/display/MAVEN/PluginExecutionException
答案 0 :(得分:0)
您正在使用info.cukes依赖关系,该依赖关系非常老,仅在1.2.5之前支持黄瓜,并且在2016年9月12日之后对此不再提供支持,这就是您仍然必须使用cumber-jvm-parallel的原因-plugin并进行大量配置,以动态生成每个功能文件的单个运行程序。
请尝试遵循并实现Cucumber V 4.0.X及更高版本,不仅要实现并行执行,还要使您保持更新,以下是实现此过程的步骤。
1。添加正确的依赖关系集。在实施过程中,我一直关注JUnit。
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-java</artifactId>
<version>4.2.3</version>
</dependency>
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-junit</artifactId>
<version>4.2.3</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>datatable</artifactId>
<version>1.1.12</version>
</dependency>
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-picocontainer</artifactId>
<version>4.2.3</version>
<scope>test</scope>
</dependency>
2。在POM.XML下添加Maven-Surefire-Plugin
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.0.0-M3</version>
<configuration>
<parallel>methods</parallel>
<threadCount>1</threadCount>
<reuserForks>false</reuserForks>
<testErrorIgnore>true</testErrorIgnore>
<testFailureIgnore>true</testFailureIgnore>
<includes>
<include>**/*RunCukeTest.java</include>
</includes>
</configuration>
</plugin>
注意-TestNG依赖性导致Surefire忽略JUnit包装器类。如果根本不需要,请删除所有TestNG依赖项,或者您可以调用2定义2执行,一个用于TestNG,另一个用于JUnit,并根据需要禁用一个。使用JUnit的人面临的问题是一切正常,但仍然可以进行一次测试。所以我们也必须保持这一点。