Bazel 测试输出
内容提要
本文讨论了从Bazel测试中转储中间测试输出的方法。Bazel测试中有两个可写的私有目录:TEST_TMPDIR和TEST_UNDECLARED_OUTPUTS_DIR。TEST_UNDECLARED_OUTPUTS_DIR用于保存中间测试输出,TEST_TMPDIR用于保存临时文件。远程执行Bazel测试时,可以使用Bazel启动选项下载outputs.zip文件和bazel-testlogs目录。
关键要点
-
开发人员希望在单元测试失败时检查中间测试输出以理解失败原因。
-
Bazel测试中有两个可写的私有目录:TEST_TMPDIR和TEST_UNDECLARED_OUTPUTS_DIR。
-
TEST_UNDECLARED_OUTPUTS_DIR用于保存未声明的测试输出,文件会被压缩并添加到outputs.zip文件中。
-
TEST_TMPDIR是一个声明的目录,Bazel可以在测试执行期间访问和清理它。
-
在远程执行Bazel测试时,可以使用启动选项下载outputs.zip文件和bazel-testlogs目录。
-
使用TEST_UNDECLARED_OUTPUTS_DIR保存开发人员希望在测试执行后检查的中间测试输出。
-
使用TEST_TMPDIR保存不打算在测试执行后检查的临时文件。
延伸问答
Bazel测试中如何保存中间测试输出?
可以使用TEST_UNDECLARED_OUTPUTS_DIR保存中间测试输出,文件会被压缩并添加到outputs.zip文件中。
TEST_TMPDIR和TEST_UNDECLARED_OUTPUTS_DIR有什么区别?
TEST_TMPDIR是声明的目录,Bazel可以在测试执行期间访问和清理;而TEST_UNDECLARED_OUTPUTS_DIR用于保存未声明的测试输出,Bazel不会直接操作它。
如何下载Bazel测试的输出文件?
可以使用Bazel启动选项,如--remote_download_outputs=all,下载outputs.zip文件和bazel-testlogs目录。
在Bazel测试中,TEST_TMPDIR的用途是什么?
TEST_TMPDIR用于保存不打算在测试执行后检查的临时文件,Bazel会在测试执行前清理该目录。
为什么开发人员需要检查中间测试输出?
开发人员希望在单元测试失败时检查中间测试输出,以理解失败原因。
Bazel测试中如何处理未声明的输出?
未声明的输出会被写入TEST_UNDECLARED_OUTPUTS_DIR,并在测试结束时被压缩到outputs.zip文件中。