You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Bazel查询依赖指定文件的所有*_test规则?

用Bazel查询依赖指定文件的测试规则

可以通过bazel query的反向依赖查询结合规则过滤来实现,具体操作如下:

核心命令

假设目标文件的Bazel完整标签为//path/to/your:target_file(比如//src/main:utils.h),执行以下命令即可获取所有依赖该文件的*_test规则:

bazel query "kind('.*_test', rdeps(//..., //path/to/your:target_file))"

命令拆解

  • rdeps(//..., //path/to/your:target_file):查询整个工作空间(//...)中所有直接或间接依赖指定文件的目标
  • kind('.*_test', ...):过滤出所有类型名称以_test结尾的规则(覆盖cc_test、java_test、py_test等所有测试规则类型)

进阶用法

  1. 仅查直接依赖的测试规则:添加--direct参数,排除间接依赖的结果
    bazel query "kind('.*_test', rdeps(//..., //path/to/your:target_file))" --direct
    
  2. 缩小查询范围:将//...替换为特定包路径,比如只查//tests目录下的测试规则
    bazel query "kind('.*_test', rdeps(//tests/..., //path/to/your:target_file))"
    

注意事项

  • 必须使用文件的完整Bazel标签,如果不确定标签,可先用bazel query //path/to/directory:*查看该目录下所有文件的标签
  • 如果文件未被任何Bazel目标引用,查询结果会为空

内容的提问来源于stack exchange,提问作者Vogelsgesang

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 01:07:13