【发布时间】:2021-01-30 07:54:45
【问题描述】:
我将 Bazel 用于 Python 项目。
我使用bazel test //... --profile=/tmp/profile.gz 分析了一个微不足道的测试,它应该在 1 秒内运行。但是,bazel test 命令占用了 5s。
分析如下所示
它表明大部分时间都花在操作action 'Testing //tests/unit/io:test_ds_presto' 上,如关键路径行所示。然后我通过bazel aquery 了解有关此操作的更多详细信息,
action 'Testing //tests/unit/io:test_ds_presto'
Mnemonic: TestRunner
Target: //tests/unit/io:test_ds_presto
Configuration: darwin-fastbuild
ActionKey: 2123d47ebdd54b927b3377c77ce293144693c4e16117fe9d0fdc7b8b7213b392
Inputs: [bazel-out/darwin-fastbuild/internal/_middlemen/tests_Sunit_Sio_Stest_Uds_Upresto-runfiles, external/bazel_tools/tools/test/generate-xml.sh, external/bazel_tools/tools/test/test-setup.sh]
Outputs: [bazel-out/darwin-fastbuild/testlogs/tests/unit/io/test_ds_presto/test.cache_status, bazel-out/darwin-fastbuild/testlogs/tests/unit/io/test_ds_presto/test.log]
Command Line: (exec external/bazel_tools/tools/test/test-setup.sh \
tests/unit/io/test_ds_presto)
所以操作正在运行命令
exec external/bazel_tools/tools/test/test-setup.sh tests/unit/io/test_ds_presto
谁能提供一些关于脚本tools/test/test-setup.sh 打算做什么以及为什么可能需要这么长时间的见解?
我假设 test-setup.sh 脚本是来自 bazel repo 的 https://github.com/bazelbuild/bazel/blob/master/tools/test/test-setup.sh
更新
--spawn_strategy=local 的个人资料,但不清楚时间都花在了哪里。
【问题讨论】: