如何在Python项目根目录创建BUILD文件批量运行所有Bazel测试?
在Bazel根目录通过子目录测试标签批量运行所有测试的实现方法
完全可行,有两种常用方式可以实现你的需求:
方式一:在根目录BUILD中用test_suite聚合测试目标
在项目根目录创建BUILD文件,通过test_suite将子目录的测试目标统一聚合,还能按标签筛选测试:
# 根目录BUILD文件内容 test_suite( name = "all_tests", # 引用各子目录的所有测试目标(Bazel默认会把目录下所有测试聚合为`:all`) tests = [ "//test/topic_a:all", "//test/topic_b:all", ], ) # 如果只想运行带特定标签的测试,比如只跑标记为"unit"的测试 test_suite( name = "unit_tests", tests = [ "//test/topic_a:all", "//test/topic_b:all", ], tags = ["unit"], )
运行时只需执行:
- 所有测试:
bazel test //:all_tests - 指定标签的测试:
bazel test //:unit_tests
注意:子目录的BUILD文件需要设置合适的可见性,比如添加package(default_visibility = ["//visibility:public"]),确保根目录能引用这些测试目标。
方式二:直接用通配符命令运行所有测试
如果不想创建根目录BUILD文件,直接用Bazel的通配符语法就能递归运行所有测试:
bazel test //test/...
这条命令会自动遍历test目录下所有子目录的测试目标并运行,无需额外配置。
内容的提问来源于stack exchange,提问作者gph
相关产品推荐
相关产品推荐

