我想编写一些我的C ++二进制文件的端到端测试,它将提供一些输入文件和stdout的读取输出,并断言它是正确的。我写了一个简单的python测试,它工作正常,现在我尝试使它与bazel一起工作。我将py_test
添加到bazel并构建,但我无法在该目标的代码中指定cc_binary
(bazel抱怨)。如果我不单独运行cc_binary
的构建命令,则python测试不会在bazel-bin
中看到二进制文件。如何在运行cc_binary
之前强制构建我的py_test
?
答案 0 :(得分:7)
您可以将二进制文件添加为数据依赖项。有关详细信息,请参阅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...
)