SuperAPI AI 工具集

backend-unit-test

测试与质量

查看项目

更新于 10-16 05:06

技能介绍

用途:该技能面向后端单元测试场景,当用户要求运行或创建单元测试、验证数据、用 Maven 运行测试,或出现 test、maven test、junit、springboot test、单元测试、测试验证等关键词时触发。核心原则是不修改 pom.xml,使用 reactor 模式运行。

主要能力:支持按模块编译与运行测试,支持指定测试类名及通配符匹配,支持运行单个、多个或全部测试,并可通过 @Transactional 让测试数据自动回滚。

使用方式(两步): 步骤1 编译测试类:cd sfm_back && mvn compiler:testCompile -pl <module> -am 步骤2 运行测试:cd sfm_back && mvn surefire:test -pl <module> -am -Dtest="测试类名" 参数:-pl <module> 指定模块(如 med-ams、med-bpm-biz);-am 连带构建依赖模块(reactor 模式),不经过 install;-Dtest="xxx" 指定测试类,支持通配符 。 示例:mvn surefire:test -pl med-ams -am -Dtest="AmsPropertyReadService";运行全部测试用 -Dtest="*Test"。

测试文件位置:<module>/src/test/java/com/jp/med/<module>/modules/<功能>/<ServiceTest>.java,以及 src/test/resources/application.yml。测试类使用 @SpringBootTest、@ActiveProfiles("unit-test")、@Transactional,并通过 @Autowired(required = false) 注入目标服务。application.yml 中可设置 spring.main.lazy-initialization: true 与 banner-mode: off。

数据库:本地为 jdbc:postgresql://localhost:5432/jp_db_20260305;测试使用 Nacos 配置的实际数据库连接;@Transactional 确保测试数据自动回滚。

限制与注意事项:不要修改任何 pom.xml;不要执行 mvn install;避免 mvn clean(会触发资源过滤问题);始终使用 -am 确保依赖正确构建;先编译再运行。常见问题:No tests executed 多为测试类未编译,需先 compiler:testCompile;编译失败检查包路径与目录是否匹配;med-common 依赖错误避免 clean;Test run: 0 检查类名或使用通配符。工作流程为查看现有测试、按需创建测试文件、编译、运行、验证 Tests run 结果。