无法在项目上执行目标org.apache.maven.plugins:maven-surefire-plugin:2.12:test(default-test)。

时间:2016-04-05 13:32:02

标签: maven maven-2

我已经尝试了几天来解决以下错误,但我无法解决它:(

我的模块的pom.xml文件是:

<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>
<parent>
<artifactId>junitcategorizer</artifactId>
<groupId>com.topdesk.test.junitcategorizer</groupId>
<version>0.0.1-SNAPSHOT</version>
<relativePath>..</relativePath>
</parent>
<artifactId>junitcategorizer.instrument</artifactId>
<name>JUnitCategorizer InstrumentationAgent</name>
<description>The agent used to instrument the called Java classes</description>
<dependencies>
<dependency>
    <groupId>org.ow2.asm</groupId>
    <artifactId>asm-commons</artifactId>
    <version>4.0</version>
</dependency>
<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.10</version>
</dependency>
</dependencies>
<build>
<plugins>
  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jar-plugin</artifactId>
    <configuration>
      <archive>
        <manifest>
          <addClasspath>true</addClasspath>
        </manifest>
        <manifestEntries>
            <Premain-Class>com.topdesk.junitcategorizer.instrument.InstrumentationAgent</Premain-Class>
            <Agent-Class>com.topdesk.junitcategorizer.instrument.InstrumentationAgent</Agent-Class>
            <Can-Redefine-Classes>true</Can-Redefine-Classes>
            <Can-Retransform-Classes>true</Can-Retransform-Classes>
            <Boot-Class-Path>${project.artifactId}-${project.version}.jar</Boot-Class-Path>
            <Can-Set-Native-Method-Prefix>true</Can-Set-Native-Method-Prefix>
        </manifestEntries>
      </archive>
    </configuration>
  </plugin>
  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-shade-plugin</artifactId>
    <version>1.5</version>
    <executions>
      <execution>
        <phase>package</phase>
        <goals>
          <goal>shade</goal>
        </goals>
        <configuration> 
          <artifactSet>
            <includes>
              <include>org.ow2.asm:*</include>
            </includes>
          </artifactSet>
          <relocations>
            <relocation>
              <pattern>org.objectweb.asm</pattern>
              <shadedPattern>org.shaded.asm</shadedPattern>
            </relocation>
          </relocations>
        </configuration>
      </execution>
    </executions>
  </plugin>
 </plugins>
 </build>
 </project>

我收到以下错误:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.
12:test (default-test) on project junitcategorizer.instrument: There are test failures.
[ERROR]
[ERROR] Please refer to D:\Masters\thesis related papers and tools\junitcategorizer\junitcategorizer.instrument\target\surefire-reports for the individual test results.
[ERROR] -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.12:test (default-test) on project junitcategorizer.instrument: There are test failures.

Please refer to D:\Masters\thesis related papers and tools\junitcategorizer\junitcategorizer.instrument\target\surefire-reports for the individual test results.

    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:212)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:120)
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:347)
    at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:154)
    at org.apache.maven.cli.MavenCli.execute(MavenCli.java:582)
    at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:214)
    at org.apache.maven.cli.MavenCli.main(MavenCli.java:158)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:497)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
    Caused by: org.apache.maven.plugin.MojoFailureException: There are test failures.

    Please refer to D:\Masters\thesis related papers and tools\junitcategorizer\junitcategorizer.instrument\target\surefire-reports for the individual test results.

    at org.apache.maven.plugin.surefire.SurefireHelper.reportExecution(SurefireHelper.java:83)
    at org.apache.maven.plugin.surefire.SurefirePlugin.writeSummary(SurefirePlugin.java:673)
    at org.apache.maven.plugin.surefire.SurefirePlugin.handleSummary(SurefirePlugin.java:647)
    at org.apache.maven.plugin.surefire.AbstractSurefireMojo.executeAfterPreconditionsChecked(AbstractSurefireMojo.java:137)
    at org.apache.maven.plugin.surefire.AbstractSurefireMojo.execute(AbstractSurefireMojo.java:98)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:132)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
    ... 19 more
    [ERROR]
    [ERROR] Re-run Maven using the -X switch to enable full debug logging.

我尝试了以下但没有帮助:

  1. mvn dependency :: tree
  2. mvn clean install -U或右键单击“project”转到“Maven”&gt;&gt; “更新”
  3. 请帮助我!

31 个答案:

答案 0 :(得分:18)

加入你的pom:

 <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>2.19.1</version>
        </plugin>
  </plugins>

在您的错误代码中,他没有找到surefire plugin所以添加

答案 1 :(得分:7)

这就是解决问题的方法:

ac_heatflow

来自Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.10:test

答案 2 :(得分:6)

尝试一下即可!

<plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>3.0.0-M3</version>
                <configuration>
                <testFailureIgnore>true</testFailureIgnore>
                <shutdown>kill</shutdown> <!-- Use it if required-->
                </configuration>
            </plugin>

答案 3 :(得分:5)

当Maven在构建jar时尝试运行测试用例时,会发生这种情况。您只需在maven命令的末尾添加-DskipTests即可跳过运行测试用例。

例如:mvn clean install -DskipTests 要么 mvn clean package -DskipTests

答案 4 :(得分:4)

它对我来说适用于3.0.0-M1版本。

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>3.0.0-M1</version>
</plugin>

您可能需要使用sudo运行它。

答案 5 :(得分:4)

这是一种测试失败。 @SpringBootApplication 注释包含这些配置。

  

1)@Configuration

     

2)@ComponentScan

     

3)@EnableAutoConfiguration

@EnableAutoConfiguration 是导致此错误的原因。这将尝试根据pom.xml中的依赖项自动配置应用程序

作为一个例子,当你在pom中有spring-data-jpa依赖时,它会尝试通过查看application.properties文件来为数据源添加配置到应用程序。所以你需要添加数据源来解决这个问题。

对于MySQL:

spring.jpa.hibernate.ddl-auto=create
spring.datasource.url=jdbc:mysql://localhost/lahiru
spring.datasource.username=root
spring.datasource.password=

你可以通过跳过测试来隐藏它。

mvn install -DskipTests

了解更多details

答案 6 :(得分:2)

当测试失败时,我得到完全相同的堆栈跟踪。 更重要的是,您应该看到识别失败的测试类的消息。 或者转到

D:\Masters\thesis related papers and tools\junitcategorizer\junitcategorizer.instrument\target\surefire-reports

并查看失败报告。 修复问题,你的构建就可以了。

好消息:你的poms似乎没问题,Maven可以编译并执行测试。

答案 7 :(得分:1)

经过几天的思考,我的解决方案是我忘记在@BeforeEach之前使用@Test批注

答案 8 :(得分:1)

检查您的测试文件。您必须清除项目中的所有测试文件错误,然后尝试清理并构建。

答案 9 :(得分:1)

由于许多不同的原因导致此错误,因此每个人都有不同的解决方案。但是,您自己的Web应用程序应该可以解决问题。

您可以在

中查找它
  

/ module_with_failure / target / surefire-reports / *。txt

答案 10 :(得分:1)

多次遇到同一问题,我有2个解决方案:

解决方案1: 将surefire插件参考添加到pom.xml。注意,您拥有所有节点! 在我的IDE中,缺少自动导入版本!!!

<plugins>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>3.0.0-M3</version>
    </plugin>
</plugins>

解决方案2:我的IDE向文件开头添加了错误的导入。

添加了IDE

import org.junit.Test;

我不得不替换为

import org.junit.jupiter.api.Test;

答案 11 :(得分:1)

如果您正在使用ubantu,请尝试使用sudo运行MVN。 我也有同样的错误

function getinfo(lat,lng){
                $.ajax({
                  url:"map1.php?lat="+lat+"&lng="+lng,
                crossDomain:true,
                type:'POST',
                dataType:'application/json',
                data:"{}",
                  success:function(data){
                  var len = data.results.length;
                  for(var i=0;i<len;i++ ){
                      console.log(data.results[i]);
                  }
                }
                });
              };

但是

mvn -Dtest=PerfLatency#latencyTest test -X 

解决了我的问题

答案 12 :(得分:0)

我遇到了同样的问题,尝试了几乎所有这些建议和其他选项,但对我的情况没有任何作用。

所以我运行了 verbose command: (mvn install -X) 并看到了 Jacoco lib 的问题,最后找到了对我有用的 answer

更改我的 pom 文件中的 Jacoco lib 版本。

<groupId>org.jacoco</groupId>
     <artifactId>jacoco-maven-plugin</artifactId>
<version>0.8.4</version>

答案 13 :(得分:0)

我只是调整了黄瓜版本,因为与pom文件中的其他黄瓜版本相比,我的JUnit依赖关系版本较低。


<!-- https://mvnrepository.com/artifact/io.cucumber/cucumber-java -->
            <dependency>
                <groupId>io.cucumber</groupId>
                <artifactId>cucumber-java</artifactId>
                <version>6.9.0</version>
            </dependency>
    
            <!-- https://mvnrepository.com/artifact/io.cucumber/cucumber-picocontainer -->
            <dependency>
                <groupId>io.cucumber</groupId>
                <artifactId>cucumber-picocontainer</artifactId>
                <version>6.9.0</version>
                <scope>test</scope>
            </dependency>
    
            <!-- https://mvnrepository.com/artifact/io.cucumber/cucumber-junit -->
            <dependency>
                <groupId>io.cucumber</groupId>
                <artifactId>cucumber-junit</artifactId>
                <version>6.9.0</version>
                <scope>test</scope>
            </dependency>

答案 14 :(得分:0)

我遇到了同样的问题并尝试了上面提到的所有方法。然后我确定问题出在pom文件中。

所以如果你给了 测试NG文件 在你的 pom 文件中。那么,也许TestNG.xml文件的位置不正确。

通过编写上面的命令,它将搜索根目录中的文件。如果您的 TestNG.xml 文件存在于除根目录之外的其他位置,则提供该路径或从服务器复制 TestNG.xml 文件的整个路径并粘贴。

就我而言,我做了如下操作: /home/ubuntu/TestNG.xml

问题解决了。

答案 15 :(得分:0)

最好在父pom中设置surefire-plugin版本,否则将其包含为依赖项将覆盖可能继承的任何配置(包括文件模式等),例如从Spring Boots spring-boot-starter-test pom使用pluginManagement

<build>
    <pluginManagement>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.22.0</version>
            </plugin>
        </plugins>
    </pluginManagement>
</build>

答案 16 :(得分:0)

确保在包中创建的类的名称类似于somethingTest.java Maven只选择以测试符号结尾的Java文件。

我遇到了同样的错误,并通过在末尾添加“ Test”来解析所有类的名称,从而使其正常工作。

答案 17 :(得分:0)

这是解决此错误的最简单方法:

1)转到您的pom.xml文件路径

2)像这样编辑pom.xml:

<plugins>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>2.12</version>
    </plugin>
</plugins>

3)保存文件 就是这样。

答案 18 :(得分:0)

Karate 区分大小写,因此请确保您的文件和文件夹名称以及测试运行程序文件中的包引用。

答案 19 :(得分:0)

此问题可能与已经繁忙的端口有关。 Surefire在5005端口上运行。因此,您需要确保该端口是空闲的。如果不更改它或终止进程。这是在Intellij中发生的。

答案 20 :(得分:0)

已经3年了,但是同样的事情发生在我身上,我想为我的案子贡献力量。使用@nikk解决方案可以获得更好的结果,但是仍然出现其他错误,尽管可以,但我可以打包。

但是,我的任务是在服务器上实现一个同事的代码,而在他的测试环境中却没有发生,所以我决定进行更多研究,因为该代码是有效的并且不符合我碰任何东西。

最后,事实证明,他的应用程序将mysql表插入到一个不存在的数据库中。解决方案就像创建这样的数据库一样简单,错误消失了。

答案 21 :(得分:0)

将版本号更改为2.19.1对我有用:)

`<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.19.1</version>
    <configuration>
        <systemPropertyVariables>
            <xmlOutputDir>${project.build.directory}/surefire</xmlOutputDir>
        </systemPropertyVariables>
    </configuration>
</plugin>`

答案 22 :(得分:0)

我遇到了同样的问题,如何解决,请参见以下步骤或图片:

  1. 单击Eclipse的Windows菜单项
  2. 点击了首选项
  3. 选择已安装的JRE
  4. 添加已安装的jdk的路径(JRE主页:C:\ Program Files \ Java \ jdk1.8.0_201 \ jre`)
  5. 添加JRE名称:jdk1.8.0_201
  6. 点击完成
  7. 应用更改并关闭

enter image description here

答案 23 :(得分:0)

我遇到了同样的问题,您依赖于Selenium,TestNG和Junit的版本号应该与您在项目中使用的版本号相同。例如,在您的项目中,您正在使用Selenium版本3.8。该版本号应在依赖项中提及。

 <dependency>
    <groupId>org.testng</groupId>
    <artifactId>testng</artifactId>
    <version>7.0.0-beta1</version>
    <scope>test</scope>
</dependency>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>org.seleniumhq.selenium</groupId>
      <artifactId>selenium-java</artifactId>
      <version>3.8.1</version>
    </dependency>       
    <dependency>                
      <groupId>org.testng</groupId>                             
      <artifactId>testng</artifactId>                               
      <version>6.8</version>                                
      <scope>test</scope>                                       
    </dependency>   
  </dependencies>

答案 24 :(得分:-1)

问题不在于您的依赖关系...。 您应该在此路径上打开明细错误

  

请参阅D:\ Masters \ thesis相关论文和   工具\ junitcategorizer \ junitcategorizer.instrument \ target \ surefire报告   对于单个测试结果。

详细错误在那里,可能是您的服务类或serviceImpl类,或诸如@anotation之类的东西丢失了,否则... 我和你有同样的错误,...你应该尝试

答案 25 :(得分:-1)

surefire插件版本可能是原因之一。对于我来说,以下依赖有效。请尝试:

    <!-- https://mvnrepository.com/artifact/org.apache.maven.plugins/maven-surefire-plugin -->
<dependency>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.19.1</version>
</dependency>

答案 26 :(得分:-1)

只需在<modelversion>标记顶部的pom.xml文件中的行下方添加以下内容:

<repositories>
  <repository>
    <id>central</id>
    <name>Central Repository</name>
    <url>http://repo.maven.apache.org/maven2</url>
    <layout>default</layout>
    <snapshots>
      <enabled>false</enabled>
    </snapshots>
  </repository>
</repositories>

答案 27 :(得分:-1)

HI您可以尝试在POM中添加以下内容然后使用 mvn clean compile然后mvn install

<!-- https://mvnrepository.com/artifact/junit/junit -->
<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.12</version>
    <scope>test</scope>
</dependency>

答案 28 :(得分:-1)

这对我有用,

右键点击项目 - &gt; “作为Maven测试运行”。这将自动下载缺少的插件,而不是右键单击项目 - &gt;“更新Maven项目”它将删除错误。

答案 29 :(得分:-2)

尝试使用cmd:mvn clean install -Dskiptests=true

这将跳过所有单元测试。它可能会对你有用。

答案 30 :(得分:-5)

如果有测试失败,请跳过

mvn install -DskipTests

但我强烈建议先修复你的测试。