Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.17:test (default-test) on pr

问题所在:配置的参数、路径与实际项目里面的code不一样导致启动maven失败;仔细检查一下远程仓库代码与配置中的名字。

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.17:test (default-test) on project AutomationBasePDF: Execution default-test of goal org.apache.maven.plugins:maven-surefire-plugin:2.17:test failed: There was an error in the forked process
[ERROR] org.apache.maven.surefire.testset.TestSetFailedException: Suite file
D:\Jenkins\**\**\mokeTest.xml is not a valid file
[ERROR] at org.apache.maven.surefire.testng.TestNGXmlTestSuite.locateTestSets(TestNGXmlTestSuite.java:116)
[ERROR] at org.apache.maven.surefire.testng.TestNGProvider.invoke(TestNGProvider.java:84)
[ERROR] at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:200)
[ERROR] at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:153)
[ERROR] at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103)
[ERROR] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginExecutionException

不知道小伙伴本有没有遇到过类似的错误。
经过这几天的调试Jenkins跑Maven工程,发现只要出现这类的错误基本上都是Jenkins上面配置时的参数、路径错误,导致了run Maven时启动失败。 

解决方法:

再详细查看的Jenkins各项配置参数,以及查看报错日志的指向的具体原因。

我遇到最多的是:
1、由于准备调用xml 的Suit名字与实际代码中的名字不一致;

2、配置时,命令行的参数错误,导致运行不了Maven;

3、文件路径有误;
总之就是配置的参数、路径与实际项目的code不一样导致启动maven失败。

 

最后:

来说下插件maven-surefire-plugin的作用你就明白了。

  • Maven通过Maven Surefire Plugin插件执行单元测试。(通过Maven Failsafe Plugin插件执行集成测试
  • 在pom.xml中配置JUnit,TestNG测试框架的依赖,即可自动识别和运行src/test目录下利用该框架编写的测试用例(配置时参数、路径错误那就之别不了咯,肯定报错)
  • surefire也能识别和执行符合一定命名约定的普通类中的测试方法(POJO测试)。
  • 生命周期中test阶段默认绑定的插件目标就是surefire中的test目标,无需额外配置,直接运行mvn test就可以。
### Maven Surefire Plugin 3.5.3 测试失败解决方案 在使用 Maven Surefire Plugin 执行测试时,如果出现错误 `Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:3.5.3:test`,可以尝试以下方法解决: #### 方法一:跳过测试 可以通过配置 `pom.xml` 文件中的插件部分,设置 `skipTests` 参数为 `true`,以跳过测试阶段。以下是具体的配置示例[^1]: ```xml <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>3.5.3</version> <configuration> <skipTests>true</skipTests> </configuration> </plugin> </plugins> </build> ``` #### 方法二:命令行参数跳过测试 除了修改 `pom.xml` 文件外,还可以通过命令行参数 `maven.test.skip=true` 来跳过测试阶段。例如: ```bash mvn install -Dmaven.test.skip=true ``` 这种方式不会修改项目配置文件,适合临时跳过测试[^2]。 #### 方法三:检查依赖冲突 如果问题是由依赖冲突引起的,可以使用 Maven 的 `dependency:tree` 命令分析项目的依赖树,找出可能的冲突并解决。例如: ```bash mvn dependency:tree ``` 确保 `maven-surefire-plugin` 的版本与其他依赖项兼容。如果发现冲突,可以通过 `exclusion` 标签排除不必要的依赖[^3]。 #### 方法四:更新 Maven 仓库配置 如果错误是由于无法下载 `maven-surefire-plugin` 的 JAR 包导致的,可以检查本地 Maven 仓库的配置。可以在 `settings.xml` 文件中添加阿里云私服镜像,以提高依赖下载的成功率。例如: ```xml <mirror> <id>alimaven</id> <mirrorOf>*</mirrorOf> <url>https://maven.aliyun.com/repository/central</url> </mirror> ``` 然后强制更新依赖: ```bash mvn clean install -U ``` 这将重新下载所有依赖项[^3]。 #### 方法五:降级插件版本 如果 `maven-surefire-plugin` 的最新版本(如 3.5.3)存在兼容性问题,可以尝试降级到稳定版本(如 2.22.2)。例如: ```xml <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.22.2</version> </plugin> </plugins> </build> ``` 这种方法适用于某些特定场景下的兼容性问题[^4]。 ### 注意事项 - 确保 Maven 版本与 `maven-surefire-plugin` 版本兼容。 - 如果问题仍然存在,可以查看完整的错误日志,定位具体原因并针对性解决。 ```python # 示例代码:验证 Maven 配置是否正确 import subprocess def check_maven_configuration(): try: result = subprocess.run(['mvn', '-v'], capture_output=True, text=True) print("Maven Version:", result.stdout.strip()) except Exception as e: print("Error:", str(e)) check_maven_configuration() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

软测小生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值