SuperAPI AI 工具集

build-and-test

测试与质量

查看项目

更新于 10-15 21:35

技能介绍

用途:为 Dongting 项目提供构建与测试的命令和模式,涵盖 Maven 构建、单元测试、集成测试及 BugLog 处理规范。

主要能力与用法: 构建:mvn clean package -DskipUTs 执行完整构建(跳过单元测试);mvn clean compile test-compile 编译并处理 protobuf。 单元测试:mvn clean test -Dtick=3 运行全部单元测试(约 25 秒);单类用 mvn -pl module -am test -Dtest=ClassName -Dtick=3 -Dsurefire.failIfNoSpecifiedTests=false;单方法在 -Dtest 后加 #method。建议用 -Dtick=3 提高稳定性。 集成测试:mvn verify -DskipUTs -Dtick=3 运行全部(约 100 秒);单个用 mvn -pl it-test -am verify -DskipUTs=true -Dit.test=ClassName -Dtick=3。运行前必须先完成打包,修改代码后先执行 mvn clean package -DskipUTs。

编译说明:因构建流程复杂(pom.xml 多编译阶段、protobuf 编译),Java LSP 可能频繁报错。若可用 IntelliJ-IDEA MCP(推荐)则用它分析构建,否则直接用 Maven 命令。

BugLog 规范:项目用 BugLogExtension 在每个测试后检查 BugLog 状态,若被触发则测试失败并提示 BugLog count should be 0。要点:BugLog 状态是全局的,一个测试未重置会导致后续全部失败;多个失败时只修第一个;并非所有时间调整都会触发,仅导致 nanoTime 回退等错误条件才触发;应在触发代码后立即重置,不要用 try-finally 包裹整个测试。仅在故意触发错误条件的测试中重置,如调用 TestUtil.updateTimestamp() 模拟时间、故意创建无效状态、抛 mock 异常测重试。规则:触发后立即重置并加注释说明;不要在 @BeforeEach/@AfterEach/@BeforeAll/@AfterAll 或测试基类中重置;不要为重置而包裹整个测试方法。

构建要求:服务端 Java 11,客户端模块 Java 8;构建工具 Maven;多模块 Maven 项目,模块细节见 project-structure.md。