Bazel中并不存在reuseForks选项,但可以使用run_under选项来达到同样的效果。具体实现如下所示:
在Workspace目录下的bazelrc或者用户目录下的.bazelrc中添加以下代码:
test --run_under="bash -c 'exec -a '$0' /usr/bin/env "$0" "$@"'"
这将强制每次运行测试时启动一个新的Shell进程,并且每次测试结束后都会关闭该进程,确保测试之间没有状态泄漏。
如果您想使用多线程运行测试,可以使用以下代码进行设置:
test --test_output=errors --local_test_jobs=8 --cache_test_results=no --run_under="bash -c 'echo $$ > /tmp/bazel_pid; trap "kill -9 $(cat /tmp/bazel_pid)" INT TERM EXIT; exec -a '$0' /usr/bin/env "$0" "$@"'"
这将并行运行测试,并使用缓存来避免重复测试,同时在测试完成或中止时杀死测试进程。
希望上述解决方案能够帮助到您。