tf_cc_test 对比 cc_test 在 tensorflow/core/BUILD

tf_cc_test vs cc_test in the tensorflow/core/BUILD

我这里主要关心tf_cc_test和cc_test的区别。(因为tensorflow我是bazel的新手)

我使用以下命令:

bazel build -c dbg //tensorflow/core:lib_random_weighted_picker_test

建造lib_random_weighted_picker_test,一切顺利。

而我使用

bazel build -c dbg //tensorflow/core:higher_level_tests

获取tensorflow/core/graph/graph_partition_test.cc中关于graph_partition_test的测试实例,报如下错误:

ERROR: no such target '//tensorflow/core:higher_level_tests': target 'higher_level_tests' not declared in package 'tensorflow/core' defined by /home/pzz/workspace/tensorflow/tensorflow/core/BUILD. INFO: Elapsed time: 0.151s

最后我发现我可以使用bazel build -c dbg //tensorflow/core:graph_graph_partition_test来获取graph_partition_test.cc下的测试实例。 higher_level_test中的所有测试都可以通过上述方式得到。

higher_level_test来自tensorflow/core/BUILD#1705,

1704 tf_cc_tests(
1705     name = "higher_level_tests",
1706     size = "small",
1707     srcs = [
1708         "common_runtime/device_set_test.cc",
1709         "common_runtime/optimization_registry_test.cc",
1710         "common_runtime/pending_counts_test.cc",
1711         "common_runtime/session_test.cc",
1712         "common_runtime/simple_placer_test.cc",
1713         "example/feature_util_test.cc",
1714         "framework/allocator_test.cc",
1715         "framework/attr_value_util_test.cc",
1716         "framework/bfloat16_test.cc",
1717         "framework/cancellation_test.cc",
1718         "framework/common_shape_fns_test.cc",
1719         "framework/function_test.cc",
1720         "framework/graph_def_util_test.cc",
1721         "framework/kernel_def_builder_test.cc",
1722         "framework/memory_types_test.cc",
1723         "framework/node_def_builder_test.cc",
1724         "framework/node_def_util_test.cc",
1725         "framework/op_compatibility_test.cc",

问题: 但是我仍然无法理解 BUILD 中 tf_cc_test 和 cc_test 的区别!! 如果我想写一些测试,我应该在BUILD文件中采取什么方式?

任何建议都会很好,谢谢。

答案可以在 file 中找到。

tf_cc_test 是一个宏,只是 cc_test 的包装器,正如 Zhenzhong Pan 指出的那样。

具体位置:https://github.com/tensorflow/tensorflow/blob/r1.0/tensorflow/tensorflow.bzl#L321-L332

您可以在此处阅读有关构建规则宏的信息:https://bazel.build/versions/master/docs/skylark/macros.html