gpt4 book ai didi

python - Bazel:如何在测试前运行 py_binary 以生成输入文件

转载 作者:行者123 更新时间:2023-11-28 01:18:59 26 4
gpt4 key购买 nike

我有一个像这样的 py_binary 规则:

py_binary(
name = "testInputs",
srcs = ["testInputs.py"],
)

和这样的 cc_test:

cc_test(
name = "test",
src = ["test.cc"],
data = [":testInputs"],
)

test.cc 旁边需要一个由 testInputs.py 生成的输入文件(比如 input.txt)。我想让 testInputs 运行并将输入文件提供给 test

如前所述here ,我试图依赖 data 部分中的 testInputs。但是测试没有在附近找到输入文件。tree bazel-out | 的结果grep -F input.txt 显示甚至 testInput 规则根本没有运行 - 因为 input.txt 文件根本不存在。

最佳答案

cc_test 上的

data = [":testInputs"] 将使 py_binary 本身可用于 cc_testpy_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"],
)

关于python - Bazel:如何在测试前运行 py_binary 以生成输入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57497270/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com