Prechádzať zdrojové kódy

chore: 将中文术语'夹具'替换为'子进程程序',doc.md 补 fixture 溯源注释

yangyi 1 týždeň pred
rodič
commit
9c881baf86

+ 4 - 2
doc.md

@@ -13,7 +13,7 @@ java -cp "target/classes:$(mvn -q dependency:build-classpath -Dmdep.outputFile=/
 
 各示例声明了 `static Logger`(slf4j),手工执行时 classpath 必须带上 logback/slf4j 依赖,
 否则报 `NoClassDefFoundError: org/slf4j/LoggerFactory`。
-示例的行为由 JUnit 5 测试守护:`mvn test` 直接驱动夹具子进程做端到端校验。
+示例的行为由 JUnit 5 测试守护:`mvn test` 直接驱动子进程程序做端到端校验。
 
 ---
 
@@ -35,6 +35,8 @@ java -cp "target/classes:$(mvn -q dependency:build-classpath -Dmdep.outputFile=/
 
 > 子进程程序固定放在 `src/main/resources/code/<主题>/Main.java`,示例先编译再运行,
 > 公共类 `Jdk`(`javac()`/`java()` 绝对路径、`compileFixture()`)负责这两件事。
+> 这类预先写好的、供示例与测试反复使用的子进程程序,英文习惯称 fixture(测试夹具),
+> 本教程统一使用"子进程程序"这一叫法。
 
 ---
 
@@ -468,7 +470,7 @@ destroy() 已发起: true
 ## 常见踩坑小结
 
 1. 编译/运行子进程的 `javac`、`java` 用 `java.home` 的**绝对路径**,不要裸写命令名。
-2. `user.dir` 相对的工作目录要跟 `src/main/resources/code/` 下的夹具目录保持一致,否则 `error=2`。
+2. `user.dir` 相对的工作目录要跟 `src/main/resources/code/` 下的子进程程序目录保持一致,否则 `error=2`。
 3. 同步 `lines().forEach(...)` 读子进程输出会阻塞到子进程退出,限时 `waitFor` 前要在后台线程读取。
 4. `waitFor(timeout, unit)` 返回 boolean;超时后取退出码要 `destroy() + waitFor()` 再 `exitValue()`。
 5. `ProcessBuilder` 不经 shell:参数数组每一项就是一个参数,引号/`$VAR`/通配符/`|` 都不生效,需要时用 `sh -c "..."`。

+ 1 - 1
src/main/java/space/anyi/process/Jdk.java

@@ -56,7 +56,7 @@ final class Jdk {
         drain.start();
         int exit = process.waitFor();
         if (exit != 0) {
-            throw new IllegalStateException("fixture 编译失败, exit=" + exit);
+            throw new IllegalStateException("子进程程序编译失败, exit=" + exit);
         }
     }
 

+ 1 - 1
src/main/java/space/anyi/process/ProcessHandleExample.java

@@ -38,7 +38,7 @@ public class ProcessHandleExample {
         terminateViaHandle();
     }
 
-    /** 启动一个 processHandle 夹具子进程(睡眠 30 秒,等待父进程检查/销毁) */
+    /** 启动一个 processHandle 子进程程序(睡眠 30 秒,等待父进程检查/销毁) */
     private static Process startChild() throws IOException {
         return new ProcessBuilder(Jdk.java(), "-Dfile.encoding=UTF-8", "Main")
                 .directory(WORK_DIR)

+ 1 - 1
src/test/java/space/anyi/process/ProcessMechanicsTest.java

@@ -25,7 +25,7 @@ import org.junit.jupiter.api.Test;
 
 /**
  * 基于 JUnit 5 的 Process 行为测试。
- * 与示例一样驱动 src/main/resources/code/ 下的夹具子进程做端到端验证,
+ * 与示例一样驱动 src/main/resources/code/ 下的子进程程序做端到端验证,
  * 同样依赖 user.dir 定位工作目录,因此需要在工程根目录执行 mvn test。
  */
 class ProcessMechanicsTest {