TensorFlow单文件单元测试未执行请求排查(TF1.15+Bazel0.26.1)
解决TensorFlow 1.15中Bazel测试未执行的问题
针对你遇到的bazel run/test都显示0测试运行的情况,结合TF 1.15和Bazel 0.26.1的环境,给你几个排查和解决的方向:
1. 清理Bazel缓存后重新尝试
有时候旧的构建缓存会导致异常,先彻底清理:
bazel clean --expunge
然后重新运行测试命令,加上--test_output=all参数来查看更详细的日志,方便定位问题:
bazel test -c opt --test_output=all //tensorflow/core/kernels:unique_op_test
2. 检查测试目标是否被标签过滤
TensorFlow的部分测试会被标记为manual或者其他特殊标签,默认不会自动运行。可以先查询测试目标的标签信息:
bazel query --output=build //tensorflow/core/kernels:unique_op_test
如果输出里包含tags = ["manual"]之类的内容,需要在测试命令中添加标签过滤参数:
bazel test -c opt --test_tag_filters=-manual //tensorflow/core/kernels:unique_op_test
3. 直接运行编译后的测试二进制
跳过Bazel的测试封装,直接构建并运行测试文件,确认测试本身是否正常:
- 先构建测试二进制:
bazel build -c opt //tensorflow/core/kernels:unique_op_test
- 找到生成的二进制文件(通常在
bazel-bin目录下),直接执行:
./bazel-bin/tensorflow/core/kernels/unique_op_test
如果这个命令能正常执行测试并输出结果,说明问题出在Bazel的测试调度环节;如果还是没测试运行,可能是测试目标的定义有问题(但你没改源码的话,大概率是环境配置问题)。
4. 确认环境配置是否匹配TF 1.15要求
虽然你用的Bazel版本是兼容的,但TF 1.15对系统环境有一些要求:
- 确保你用的Python版本是2.7或3.5-3.7(TF 1.15不支持更高版本的Python)
- 如果是GPU环境,确认CUDA和cuDNN版本符合TF 1.15的要求(CUDA 10.0,cuDNN 7.4+),并且测试命令添加
--config=cuda参数:
bazel test -c opt --config=cuda //tensorflow/core/kernels:unique_op_test
内容的提问来源于stack exchange,提问作者Ascii Tome
相关产品推荐
相关产品推荐

