我们正考虑从Make迁移到Bazel。为了使转换更容易,我希望bazel test
(没有标志/选项)运行当前目录的测试(如果有的话)。
因此,代替bazel test my_tests
bazel test
会找到当前目录的BUILD
文件,找到所有*_test
规则并运行这些规则。
答案 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而不是