如何指定"默认"运行bazel测试时的目标标签

时间:2018-03-29 14:46:06

标签: bazel

我们正考虑从Make迁移到Bazel。为了使转换更容易,我希望bazel test(没有标志/选项)运行当前目录的测试(如果有的话)。

因此,代替bazel test my_tests bazel test会找到当前目录的BUILD文件,找到所有*_test规则并运行这些规则。

3 个答案:

答案 0 :(得分:1)

您可以使用all目标模式来匹配当前包中的所有目标:bazel test :all

您可以在此处详细了解:https://docs.bazel.build/versions/master/user-manual.html#target-patterns

但请注意,如果当前包中没有测试目标,则bazel会给出错误:“错误:未找到测试目标,但请求进行测试。”。在这种情况下,bazel将提供退出代码4:https://docs.bazel.build/versions/master/user-manual.html#what-exit-code-will-i-get

答案 1 :(得分:1)

我建议为bazel-test创建一个名为bazel test :all的别名。

答案 2 :(得分:1)

如果你想完全按照你的说法做,那么你可以使用自己的脚本。 当您运行“bazel”时,它实际上会查看当前工作空间的tools目录下是否有名为“bazel”的脚本。因此,如果你在“$ workspace / tools / bazel”下有一个可执行文件,那么bazel会运行它而不是bazel二进制文件本身。 这意味着您可以编写一个脚本来检查唯一的参数是否为“test”,如果是,则调用“bazel-real test:all” 它还可以检查退出代码以查看是否没有测试(这是一个特定的错误代码)并返回0而不是