在 bazel 的 python 测试中使用二进制文件

Posted

技术标签:

【中文标题】在 bazel 的 python 测试中使用二进制文件【英文标题】:Using binary in python test in bazel 【发布时间】:2016-08-19 15:22:19 【问题描述】:

我想为我的 C++ 二进制文件编写一些端到端测试,这将提供一些输入文件并从标准输出读取输出并断言它是正确的。我写了一个简单的 python 测试,它工作正常,现在我尝试让它与 bazel 一起工作。我将 py_test 添加到 bazel 并构建,但我无法指定 cc_binary 依赖于该目标(bazel 抱怨)。如果我不单独运行cc_binary 的构建命令,python 测试将看不到bazel-bin 中的二进制文件。如何在运行 py_test 之前强制构建我的 cc_binary

【问题讨论】:

【参考方案1】:

您可以将二进制文件添加为数据依赖项。有关详细信息,请参阅the encyclopedia,但它基本上看起来像:

cc_binary(
    name = "my-bin",
    srcs = ["bin.cc"],
)

py_test(
    name = "my-test",
    srcs = ["my_test.py"],
    data = [":my-bin"],
    # any other attributes you need...
)

【讨论】:

以上是关于在 bazel 的 python 测试中使用二进制文件的主要内容,如果未能解决你的问题,请参考以下文章

如何使用vscode python调试器来调试用bazel构建的项目?

在 Intellij 的 bazel 项目中运行测试?

Bazel - 如何处理外部 .so 库的传递依赖关系?

让 Bazel 使用 python 3

Bazel 在python上的应用

当所有单独的测试都通过时,为啥我的 Bazel 测试报告失败?