【问题标题】:Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.12:test (default-test) on project.无法在项目上执行目标 org.apache.maven.plugins:maven-surefire-plugin:2.12:test (default-test)。
【发布时间】:2016-07-25 11:35:35
【问题描述】:

我这几天一直在尝试解决以下错误,但我无法解决它:(

我的模块的 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 依赖::tree
  2. mvn clean install -U 或右键单击“项目”转到“Maven”>>“更新”

请帮帮我!

【问题讨论】:

  • 我也有类似的问题,我的回答在这里:stackoverflow.com/a/41666587/2230045
  • 检查冲突的依赖关系并删除它们。当我删除 JPA 依赖项时,它对我有用。由于 Spring boot 内置了 JPA,因此我删除了我拥有的外部依赖项。希望它有效! :)
  • 确保没有测试用例失败
  • OP 使用的是 2.12 版本,当时已经 4 年了。从那时起,Maven Surefire 插件有了更多更新的版本。 mvnrepository.com/artifact/org.apache.maven.plugins/…

标签: maven maven-2


【解决方案1】:

这解决了我的问题。 在我的 POM 中是 2.10,刚刚更新到 2.19.1 并刷新 POM

添加到您的 pom 中:

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

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

【讨论】:

  • 感谢您的回复!但这对我没有帮助,因为这个 pom 文件是模块的,而父 pom 文件确实有那个插件。
  • 这不是问题!
  • org.apache.maven.pluginsmaven-surefire-plugin2.19.1true
  • 这太棒了,救了我的命
  • 在我的情况下,我不得不从 2.22.2 回到 2.22.1(我仍然不明白为什么,但它可以工作:S)
【解决方案2】:

这就是解决问题的方法:

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

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

【讨论】:

  • 这是为我做的!谢谢。
【解决方案3】:

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

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

【讨论】:

  • 在某些情况下这是一个很好的解决方案,但是当我们需要进行单元测试时,我们似乎需要一个不同的答案。我能得到一些建议吗?
  • 完整的 java 新手想知道在我运行 mvn clean package -DskipTests 之后(并且我假设的 jar 现在已经构建)是否有另一个命令我可以跟进运行构建后的测试?跨度>
【解决方案4】:

多次面临同样的问题,我有 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;

【讨论】:

  • 升级 maven-surefire-plugin 后,这对我来说非常有效。
【解决方案5】:

它适用于我的版本 3.0.0-M1。

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

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

【讨论】:

    【解决方案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>
    

    【讨论】:

    • true 将此设置为 true 只是忽略失败,而不是帮助停止失败
    【解决方案7】:

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

    1) @配置

    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

    【讨论】:

      【解决方案8】:

      当测试失败时,我得到完全相同的堆栈跟踪。 在顶部,您应该会看到标识失败的测试类的消息。 或者去

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

      并查看故障报告。 解决问题,您的构建就可以了。

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

      【讨论】:

        【解决方案9】:

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

        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) 保存文件 就是这样。

        【讨论】:

          【解决方案10】:

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

          所以我运行了详细命令:(mvn install -X) 并看到了 Jacoco lib 的问题,最后找到了适合我的 answer

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

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

          【讨论】:

            【解决方案11】:

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

            【讨论】:

            • 测试的重点不在于它们会阻碍您构建项目...
            【解决方案12】:

            如果您使用的是 ubantu,请尝试使用 sudo 运行 MVN。 我遇到了同样的错误

            mvn -Dtest=PerfLatency#latencyTest test -X 
            

            但是

            sudo mvn -Dtest=PerfLatency#latencyTest test -X 
            

            解决了我的问题

            【讨论】:

              【解决方案13】:

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

              我遇到了同样的错误,并通过在末尾添加“测试”来解析我所有类的名称。

              【讨论】:

                【解决方案14】:

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

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

                enter image description here

                【讨论】:

                  【解决方案15】:

                  将版本号更改为 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>`
                  

                  【讨论】:

                    【解决方案16】:

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

                    【讨论】:

                      【解决方案17】:

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

                      所以如果你给了 测试NG.xml 在你的 pom 文件中。那么,可能是TestNG.xml文件的位置不对。

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

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

                      问题解决了。

                      【讨论】:

                        【解决方案18】:

                        我遇到了同样的问题,您在 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>
                        

                        【讨论】:

                          【解决方案19】:

                          已经 3 年了,但同样的事情也发生在我身上,我想为我的案子做出贡献。使用@nikk 解决方案我得到了更好的结果,但仍然出现了其他错误,虽然是的,我被允许打包。

                          但是,我的任务是在服务器上实现同事的代码,而在他的测试环境中并没有发生在他身上,所以我决定再调查一下,因为代码是功能性的并且不对应我碰任何东西。

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

                          【讨论】:

                            【解决方案20】:

                            这个问题可能与已经很忙的端口有关。 Surefire 在 5005 端口上运行。所以你需要确保这个端口是空闲的。如果不更改它或终止该进程。这在 Intellij 中会发生一段时间。

                            【讨论】:

                              【解决方案21】:

                              这个错误有很多不同的原因,所以每个人都有不同的解决方案。但是,您自己的 web 应用程序应该为它提供答案。

                              你可以去看看

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

                              【讨论】:

                                【解决方案22】:

                                在父 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>
                                

                                【讨论】:

                                  【解决方案23】:

                                  我只是调整了 cucumber 版本,因为我的 pom 文件中与其他版本的 cucumber 相比,我的 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>
                                  

                                  【讨论】:

                                    【解决方案24】:

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

                                    【讨论】:

                                      【解决方案25】:

                                      大家好,您可以尝试在您的 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>
                                      

                                      【讨论】:

                                        【解决方案26】:

                                        只需在 &lt;modelversion&gt; 标签顶部的 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】:

                                          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>
                                          

                                          【讨论】:

                                            【解决方案28】:

                                            问题不在于您的依赖项.... 您应该在此路径上打开详细错误

                                            请参考D:\Masters\thesis相关论文和 工具\junitcategorizer\junitcategorizer.instrument\target\surefire-reports 个人测试结果。

                                            那里有详细错误,可能是您的服务类或 serviceImpl 类或缺少的东西,例如@annotation 或其他... 我和你有同样的错误,...你应该试试

                                            【讨论】:

                                              【解决方案29】:

                                              这对我有用,

                                              右键单击项目->“作为 Maven 测试运行”。这将自动下载缺少的插件,然后右键单击项目->“更新 Maven 项目”它会删除错误。

                                              【讨论】:

                                                【解决方案30】:

                                                如果有测试失败,用

                                                跳过它们
                                                mvn install -DskipTests
                                                

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

                                                【讨论】:

                                                  猜你喜欢
                                                  • 1970-01-01
                                                  • 1970-01-01
                                                  • 2013-05-16
                                                  • 2021-06-28
                                                  • 2017-01-23
                                                  • 2020-03-30
                                                  • 2013-10-17
                                                  • 1970-01-01
                                                  • 2019-08-05
                                                  相关资源
                                                  最近更新 更多