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

Using binary in python test in bazel

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

您可以将二进制文件添加为数据依赖项。有关详细信息,请参阅 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...
)