【发布时间】:2020-11-23 16:25:29
【问题描述】:
我有一个 bazel 项目,称之为 foo,带有从相对路径读取文件的 Catch C++ 单元测试。
单元测试在 foo 项目中运行良好。
我正在使用 foo 作为另一个项目的外部依赖项,称之为 bar。我希望单元测试在 bar 中工作,但在 bar 中他们找不到文件。
我不明白如何以独立于项目的方式查找文件。在项目 foo 中,文件放置在:
~/.cache/<blah>/<blah>/<testname.runfiles>/__main__/source/
但在项目栏中,文件被放置在
~/.cache/<blah>/<blah>/<testname.runfiles>/__main__/external/bars_archive_name/source
bazel 提供的 TEST_SRCDIR 环境变量指向该目录,但这无济于事,因为两种不同的目录结构。
单元测试无法知道 bar 的存档名称(因为这是在 foo 的 WORKSPACE 文件中指定的),因此它无法找到文件。单元测试也不知道它是否应该附加到外部。
这看起来应该很简单,所以我希望我遗漏了一些明显的东西。
【问题讨论】:
标签: unit-testing bazel