我有一个py_binary
这样的规则:
py_binary(
name = "testInputs",
srcs = ["testInputs.py"],
)
和这样的cc_test
:
cc_test(
name = "test",
src = ["test.cc"],
data = [":testInputs"],
)
test.cc需要一个由input.txt
生成的输入文件(例如testInputs.py
)。
我希望testInputs
开始运行并将输入文件提供给test
。
如here所述,我试图依靠testInputs
部分中的data
。但是测试未在附近找到输入文件。
tree bazel-out | grep -F input.txt
的结果表明,甚至testInput
规则也根本没有运行-因为input.txt
文件根本不存在。
答案 0 :(得分:2)
data = [":testInputs"]
上的 cc_test
将使py_binary
本身可以使用cc_test
,而不是py_binary
运行时可能产生的任何东西。
您会想要这样的东西:
cc_test(
name = "test",
src = ["test.cc"],
data = [":test_input.txt"],
)
genrule(
name = "gen_test_inputs",
tools = [":test_input_generator"],
outs = ["test_input.txt"],
cmd = "$(location :test_input_generator) $@"
)
py_binary(
name = "test_input_generator",
srcs = ["test_input_generator.py"],
)