У меня есть существующий проект, который построен с Maven.Обычно он определяет несколько модулей.Я хочу перенести этот проект в Bazel.
В первой попытке я использую
└── project
├── moduleA
│ ├── BUILD
│ ├── pom.xml
│ └── src
│ ├── main
│ │ └── java
│ └── test
│ ├── data
│ └── java
├── moduleB
│ ├── BUILD
│ ├── pom.xml
│ └── src
│ ├── main
│ │ └── java
│ └── test
│ └── java
├── pom.xml
└── WORKSPACE
Создание проекта с помощью Bazel было не слишком сложным.Моя проблема в том, что тесты не могут найти свои тестовые данные.
Действительно, с Maven (или ant) рабочий каталог - это каталог, который содержит pom.xml
(или build.xml
).Таким образом, в этом случае для moduelA можно выполнить:
new File("src/test/data/foo.txt");
Однако, когда тест запускается в Bazel, рабочим каталогом является runfiles * в формате sanboxed, которые имеют корень как рабочее пространство, то естьТеперь тест должен открыться:
new File("projectA/src/test/data/foo.txt");
Все хорошо после миграции, но вы справляетесь с этой ситуацией во время миграции , т.е. как вы проходите тестирование как в Maven, так и в Bazel?
Есть ли какая-либо возможность, предлагаемая тестером Bazel для адаптации путей к унаследованному поведению?