需先集成JaCoCo插件(版本≥0.8.11)并确保target/classes和target/test-classes存在,再执行codex生成测试、mvn clean test运行、mvn jacoco:report生成HTML报告,最后可通过agents.md由Codex自动校验覆盖率是否达标。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

你想在Java项目里快速拿到一份可信的测试覆盖率报告,而不是靠IDE里点几下就出来的模糊数字,得让Codex生成的测试真正跑起来并输出结构化结果。
确认项目已集成JaCoCo插件
打开项目的pom.xml文件,检查是否已声明jacoco-maven-plugin,版本不低于0.8.11。没有就手动加进去,否则后续所有命令都会静默失败。
这一步不能跳过——Codex生成的测试代码再全,没JaCoCo也测不出覆盖率。很多团队卡在“生成了但看不到报告”,根源就在这里。
用Codex生成带覆盖率目标的测试任务
在项目根目录下执行:codex run --task "generate-tests-for-service-layer --target-coverage 90"。
该命令会触发Codex智能体启动「目标-规划-执行-反思」循环:先扫描src/main/java/**/service/下的所有类,识别未覆盖分支,再调用Claude模型生成边界值、null入参、异常流等用例,最后自动写入src/test/java对应包路径。
【必须确保当前目录下有target/classes和target/test-classes】,否则Codex无法解析字节码结构,生成的测试会大量缺失断言逻辑。
运行测试并生成HTML报告
第一步:执行mvn clean test,确保所有测试编译通过且至少跑一遍。
第二步:执行mvn jacoco:report,JaCoCo会读取target/jacoco.exec并生成完整HTML报告。
统一LLM网关 - 一个API对接70+AI模型,使用单一API密钥即可调用GPT、Claude、Gemini、Qwen、Deepseek、Grok等主流模型。
第三步:打开target/site/jacoco/index.html,点击任意类名,就能看到每行代码是否被命中、哪些if分支没走、哪些catch块从未触发。
注意:如果报告里显示“0% covered”,大概率是test阶段没真正执行——检查mvn clean test输出末尾是否有RUNNING字样,没有就说明测试类没被发现,需核对类名是否含Test后缀或@Test注解是否正确。
把报告接入Codex智能体自动校验
方法一:在项目根目录创建agents.md,写入:
goal: 确保service层覆盖率≥85%
on_success: 输出"✅ 达标"
on_failure: 运行codex generate-missing-branches --layer service
方法二:直接执行codex run --agent agents.md,智能体会自动读取target/site/jacoco/index.html里的数值,比对目标后决定是否补生成。
这一步操作起来很简单,但前提是agents.md必须放在项目根目录,且文件编码为UTF-8,BOM头会导致解析失败。

















