You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Maven控制台运行JUnit测试?解决AOP测试无输出问题

问题分析

你遇到的核心原因是22-aop模块的pom.xml中,Maven Surefire插件配置直接排除了你在STS中运行的所有测试类:

<configuration>
    <excludes>
        <exclude>**/RewardNetworkTests.java</exclude>
        <exclude>**/DBExceptionHandlingAspectTests.java</exclude>
        <exclude>**/LoggingAspectTests.java</exclude>
        <exclude>**/RepositoryPerformanceLogTest.java</exclude>
    </excludes>
</configuration>

STS是直接通过JUnit Runner运行单个测试类,不受Maven Surefire的排除规则限制,所以能正常执行并输出日志;而mvn test命令严格遵循该配置,跳过了所有指定测试,因此没有输出。

控制台运行测试的解决方案

以下是几种无需依赖IDE的运行方式:

1. 直接指定单个测试类运行

使用-Dtest参数覆盖排除规则,指定要运行的测试类:

./mvnw -pl 22-aop test -Dtest=RewardNetworkTests

替换RewardNetworkTests为你需要执行的测试类名即可。

2. 运行多个测试类

用逗号分隔多个测试类名称:

./mvnw -pl 22-aop test -Dtest=RewardNetworkTests,LoggingAspectTests

3. 临时修改pom.xml(不推荐长期使用)

注释掉22-aop/pom.xml中Surefire插件的excludes配置块:

<!-- <excludes>
    <exclude>**/RewardNetworkTests.java</exclude>
    <exclude>**/DBExceptionHandlingAspectTests.java</exclude>
    <exclude>**/LoggingAspectTests.java</exclude>
    <exclude>**/RepositoryPerformanceLogTest.java</exclude>
</excludes> -->

之后直接执行命令即可运行所有测试:

./mvnw -pl 22-aop test

注意:课程设计中排除这些测试是因为未完成实验时测试会失败,完成实验后记得恢复该配置,避免后续误执行未通过的测试。

内容的提问来源于stack exchange,提问作者floriank

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 17:45:53