运行 bazel 测试时如何指定 "default" 目标标签
How to specify "default" target labels when running bazel test
我们正在考虑从 Make 迁移到 Bazel。为了使转换更容易,我希望 bazel test
(无标志/选项)运行 当前目录的测试(如果有)。
因此,bazel test
将查找当前目录的 BUILD
文件,而不是 bazel test my_tests
,查找任何 *_test
规则和 运行 规则。
您可以使用 all
目标模式来匹配当前包中的所有目标:bazel test :all
您可以在此处阅读更多相关信息:https://docs.bazel.build/versions/master/user-manual.html#target-patterns
但是请注意,如果当前包中没有测试目标,bazel 会报错:"ERROR: No test targets were found, yet testing was requested."。在这种情况下,bazel 将给出退出代码 4:https://docs.bazel.build/versions/master/user-manual.html#what-exit-code-will-i-get
我建议为 bazel test :all
创建一个名为 bazel-test
的别名。
如果你想完全按照你说的去做,那么你可以使用你自己的脚本。
当你 运行 “bazel”时,它实际上会查看当前工作区的工具目录下是否有名为“bazel”的脚本。因此,如果您在“$workspace/tools/bazel”下有一个可执行文件,bazel 将 运行 而不是 bazel 二进制文件本身。
这意味着您可以编写一个脚本来检查唯一的参数是否为“test”,如果是则调用“bazel-real test :all”
它还可以检查退出代码以查看是否没有测试(这是一个特定的错误代码)和 return 0 而不是
我们正在考虑从 Make 迁移到 Bazel。为了使转换更容易,我希望 bazel test
(无标志/选项)运行 当前目录的测试(如果有)。
因此,bazel test
将查找当前目录的 BUILD
文件,而不是 bazel test my_tests
,查找任何 *_test
规则和 运行 规则。
您可以使用 all
目标模式来匹配当前包中的所有目标:bazel test :all
您可以在此处阅读更多相关信息:https://docs.bazel.build/versions/master/user-manual.html#target-patterns
但是请注意,如果当前包中没有测试目标,bazel 会报错:"ERROR: No test targets were found, yet testing was requested."。在这种情况下,bazel 将给出退出代码 4:https://docs.bazel.build/versions/master/user-manual.html#what-exit-code-will-i-get
我建议为 bazel test :all
创建一个名为 bazel-test
的别名。
如果你想完全按照你说的去做,那么你可以使用你自己的脚本。 当你 运行 “bazel”时,它实际上会查看当前工作区的工具目录下是否有名为“bazel”的脚本。因此,如果您在“$workspace/tools/bazel”下有一个可执行文件,bazel 将 运行 而不是 bazel 二进制文件本身。 这意味着您可以编写一个脚本来检查唯一的参数是否为“test”,如果是则调用“bazel-real test :all” 它还可以检查退出代码以查看是否没有测试(这是一个特定的错误代码)和 return 0 而不是