我主要关注的是tf_cc_test和cc_test的区别 . (由于张量流,我是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的测试实例,它报告了以下错误:
错误:没有这样的目标'// tensorflow / core:higher_level_tests':目标'higher_level_tests'未在/ home / pzz / workspace / tensorflow / tensorflow / core / BUILD定义的包'tensorflow / core'中声明 . 信息:经过的时间:0.151秒
最后我发现我可以使用bazel build -c dbg // tensorflow / core:graph_graph_partition_test来获取graph_partition_test.cc下的测试实例 . 并且high_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",
Question: 但是我仍然无法理解BUILD中tf_cc_test和cc_test的区别!!如果我想编写一些测试,我应该在BUILD文件中使用哪种方式?
任何建议都会很好,谢谢 .
2 回答
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
答案可以在file得到 .