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

如何从单个Bazel cc_test目标中移除--feature=ABC参数

解决单个Bazel cc_test目标禁用全局feature的方法

无需修改全局CI脚本,可通过以下几种方式实现单个目标排除指定特性:

方法1:直接在cc_test目标中覆盖features属性

Bazel会优先使用目标自身的features配置,覆盖全局通过--feature=ABC传递的参数。只需在目标配置里显式排除ABC特性即可:

cc_test(
    name = "your_test_target",
    srcs = ["your_test.cc"],
    # 用"-特性名"的格式排除指定特性,不影响其他全局特性
    features = ["-ABC"],
    # 其他必要配置(如deps、copts等)...
)

方法2:结合config_setting实现条件化排除

如果需要仅在特定环境(比如CI)下排除特性,可通过config_setting和select做条件控制:

# 定义匹配全局--feature=ABC的配置
config_setting(
    name = "abc_feature_enabled",
    features = ["ABC"],
)

cc_test(
    name = "your_test_target",
    srcs = ["your_test.cc"],
    features = select({
        ":abc_feature_enabled": ["-ABC"],
        "//conditions:default": [],
    }),
    # 其他必要配置...
)

方法3:针对单个目标追加命令行参数

如果不想修改BUILD文件,可在CI的测试命令中给该目标单独追加--features=-ABC参数,仅对当前目标生效:

bazel test //path/to:your_test_target --features=-ABC

以上三种方案都能精准控制单个cc_test目标禁用全局的ABC特性,无需大范围调整CI脚本。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 14:23:10