У меня есть проект bazel, назовите его foo, с Catch C ++ модульными тестами, которые читают файлы по относительному пути.
Модульные тесты работают нормально в проекте foo.
Я использую foo в качестве внешней зависимости для другого проекта, назовите его bar.Я хочу, чтобы модульные тесты работали в баре, но в баре они не могут найти файлы.
Чего я не понимаю, так это как найти файлы независимо от проекта.В проекте foo файлы помещаются в:
~/.cache/<blah>/<blah>/<testname.runfiles>/__main__/source/
Но в панели проекта файлы помещаются в
~/.cache/<blah>/<blah>/<testname.runfiles>/__main__/external/bars_archive_name/source
Переменная среды TEST_SRCDIR, предоставляемая bazel, указывает на каталог,но это не помогает из-за двух разных структур каталогов.
Модульный тест не может знать имя архива бара (потому что это указано в файле WORKSPACE foo), поэтому он не может найти файлы.Модульный тест также не знает, должен ли он добавлять внешние или нет.
Кажется, что это должно быть что-то простое, поэтому я надеюсь, что мне не хватает чего-то очевидного.