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

如何测试Bazel自定义test规则在预期场景下的执行阶段失败?

Bazel测试执行阶段预期失败的方法缺失问题

我找到了测试预期分析阶段错误的官方文档,但无论怎么搜索,都找不到关于测试预期执行阶段失败的方法。

需求场景

我想要测试示例中的line_length_test规则:当传入包含超长行的文件时,该规则运行后应产生失败结果。

换句话说,我需要一个测试来发现这类错误实现:

def _bad_test_impl(ctx):
  # 空实现,无论输入什么都不会失败

  executable = ctx.actions.declare_file(ctx.label.name + ".sh")
  ctx.actions.write(output=executable, content="")
  return [DefaultInfo(executable=executable)]

bad_test = rule(
  implementation=_bad_test_impl,
  test=True,
)

临时粗糙方案

目前我想到的最优方案非常简陋:

BUILD 文件

# 预期失败的测试
bad_test(
  name = "bad_test_fail_test",
  tags = ["manual"],
)

native.sh_test(
  name = "bad_test_failure_test",
  srcs = [":not.sh"],
  args = ["$(location :bad_test_fail_test)"],
  data = [":bad_test_fail_test"],
)

not.sh 文件

! $*

这显然不是理想方案,毕竟这类功能应该有完善的官方支持。

后续进展

我已自行开发了一个实现,但仍希望官方能提供正式的支持方案。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 12:05:16