重放失败

Forge 支持通过将最后一次测试运行的失败持久化到磁盘上,逐步重放这些失败。

重新运行失败

可以使用 --rerun 选项来省略成功的测试,仅重放记录的失败:

forge test --rerun

失败的测试会写入 ~/.foundry/cache/test-failures 文件。每次执行 forge test 时,该文件都会更新,因此它反映了上次运行的失败。

模糊测试失败

Forge 保存所有模糊测试的反例,并在开始新的测试活动之前重放它们(这样做是为了确保没有引入回归)。 在多次运行中遇到的模糊测试失败默认保存在 ~/.foundry/cache/fuzz/failures 文件中。该文件的内容不会被后续的测试运行替换,而是将新记录添加到现有条目中。

用于持久化和重新运行模糊测试失败的默认文件可以在 foundry.toml 中更改:

[fuzz]
failure_persist_file="/tests/failures.txt"

或通过使用内联配置

/// forge-config: default.fuzz.failure-persist-file = /tests/failures.txt

不变性测试失败

不变性测试的失败会被保存并在开始新的测试活动之前重放,类似于模糊测试。不同之处在于,失败的序列会保存在单独的文件中,具体路径为 ~/.foundry/cache/invariant/failures/{TEST_SUITE_NAME}/{INVARIANT_NAME}。该文件的内容仅在找到不同的反例时才会被替换。

用于持久化不变性测试失败的默认目录可以在 foundry.toml 中更改:

[invariant]
failure_persist_dir="/tests/dir"

或通过使用内联配置

/// forge-config: default.invariant.failure-persist-dir = /tests/dir

移除持久化失败

要忽略已保存的失败并开始一个干净的测试活动,只需删除持久化的文件或运行 forge clean(删除所有构建工件和缓存目录)。