【问题标题】:Querying the Bazel cache?查询 Bazel 缓存?
【发布时间】:2018-06-13 17:13:29
【问题描述】:

我想使用 Bazel 运行 e2e 测试。

每个 Bazel e2e 测试规则都需要一组独特的外部服务。例如,一些 e2e 测试可能需要 postgresql,其他可能需要 kafka 等。

我不想在每次测试运行之前都支持所有这些服务。相反,我想查询 Bazel 缓存。如果测试已经通过并且缓存的结果仍然有效,我会跳过外部服务设置。

如何查询 Bazel 缓存以查看我的哪些测试已经通过并且不会重新运行?

【问题讨论】:

标签: bazel


【解决方案1】:

如果您保持 Bazel 服务器运行,并且不更改任何依赖项(测试文件、源文件、Bazel 目标配置),Bazel 会自动缓存通过的测试。

换句话说,如果我运行:

bazel test //foo:bar

第一次,bazel 构建并执行测试。如果我让 Bazel 服务器启动并重新运行

bazel test //foo:bar

...bazel 很快返回,并指出您遇到了缓存命中:

//foo:bar(缓存)在 0.1 秒内通过

如果我误解了您的问题,请告诉我。

【讨论】:

  • 感谢您的回复——我正在寻找一种方法来查询 Bazel 缓存本身。按照你的例子,我怎么知道bazel test //foo:bar是否会说...(cached) PASSED...?无需运行bazel test 命令。
  • 我认为这不可能。我还要说一些我们不希望用户依赖的东西。这是一个实现细节。
  • 我会将此答案标记为正确...在bazel test 失败时,我可以为失败的测试准备资源,然后重试bazel test。不理想但足够好。
  • @hlopko 查询缓存会很好。是什么让您说这是一个实现细节?我认为缓存是 Bazel 核心价值的一部分?
猜你喜欢
  • 2022-08-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-25
  • 2010-09-07
  • 2011-09-01
  • 2016-03-22
相关资源
最近更新 更多