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
我这里主要关心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