loadText 读它,NiceEval 会把文件内容算进这条评估用例的 fingerprint:
文件改一字节,下次运行这条评估用例自动重跑,其它评估用例照常复用缓存。
用 fs.readFile 自己读拿到的内容一样,但 NiceEval 不知道这次读取发生过——
改了测试文件,缓存照常命中,你看到的是拿旧测试判出来的旧结论。
步骤
-
判据文件与评估用例一起放进仓库:
-
在
.eval.ts的模块顶层读入:路径写项目根相对的字符串也可以:loadText("evals/fixtures/react-datepicker/pr-6058/tests/run-tests.sh")。loadText直接收URL对象,不需要 importnode:url。 -
在
test(t)里写进 Sandbox 并执行:
datepicker_test.test.tsx 再跑同一条命令,只有这条评估用例重跑,验证生效。
注意
loadText必须写在模块顶层。 缓存判断发生在运行之前,写进test(t)里运行期才读就来不及了, NiceEval 会直接报错并提示挪到顶层。- 读 Agent 的产物用
t.sandbox,不用loadText。 Sandbox 里 Agent 跑出来的文件是本次运行的证据, 每次都不同,不属于 fingerprint。用t.sandbox.file(...)一类断言去读。 - 判据是结构化数据(case 对照表)时用
loadYaml/loadJson, 见数据驱动测试。