URL(s)存在问题:
官方TF测试文档页面:https://www.tensorflow.org/community/contribute/tests
问题描述(需要改变的内容):
完全不清楚如何运行单元测试。实际上,有些单元测试非常难以单独执行。
例如,我一直在处理一个需要对//tensorflow/core/lib/io
库进行一些测试的PR,我花了半个小时才弄明白如何运行单元测试zlib_buffers_test.cc
。
这是探索的过程:zlib_buffers_test.cc
包含在名为legacy_lib_io_all_tests
的filegroup
中。这反过来又包含在//tensorflow/core:low_level_library_tests
中。
然而,这组测试是使用tf_cc_tests
(注意这里的最后一个“s”),其行为在//tensorflow/tensorflow.bzl
中声明,基本上允许我在legacy_lib_io_all_tests
下像这样运行测试:
bazel test //tensorflow/core:__tensorflow_core_lib_io_legacy_lib_io_all_tests
至少对我来说,这并不直观。而且我仍然不明白如何有效地仅测试zlib_buffers_test.cc
单元测试,如果不是通过添加标志--test_filter=<filter>
来实现的话。
我在网上找不到任何资源,也在这里的任何问题中没有提到单元测试的行为或如何使用bazel
结构和测试它们的指南。
然而,我找到了a guy with my same issue,所以至少我知道我不是唯一一个😅
清晰的描述
例如,为什么有人应该使用这种方法?它有什么用处?
每当有人想要改进一个单元测试时,它都应该相对容易地执行,并且关于这个过程的工作的相关文档可以真正加快开发和对现有项目部分的贡献。
提交拉取请求?
我非常乐意提供帮助!如果已经存在关于单元测试过程的文档,我会很高兴参考那个。如果不存在,但测试过程以某种方式已知,我会很高兴在现有页面中添加一段文档,说明如何通常运行单元测试。
1条答案
按热度按时间lf3rwulv1#
你好,
在任何复杂的系统中,都需要进行一些考古学研究来弄清楚发生了什么。如果不至少学习Bazel的基本知识,我们将无法解决这个问题。挣扎是我们学习的方式。
如果我们想为有这类问题的人提供更好的文档,那么这里可能是添加它们的地方:
https://github.com/tensorflow/docs/blob/master/site/en/community/contribute/tests.md
听起来你想要的是一个“查找并运行测试”的部分。这听起来是一个合理的补充。如果我们能使内容足够清晰和通用,以便在一般情况下有所帮助。