Тесты Bazel: есть ли тесты для CppCompileAction.java? - PullRequest
0 голосов
/ 13 июня 2018

Я некоторое время изучал и использовал Базель в своей работе.По какой-то причине я сделал некоторые разработки для src / main / java / com / google / devtools / build / lib / rules / cpp / CppCompileAction.java.После этого я планирую добавить пару тестов для новых изменений.Именно тогда я понимаю, что в соответствующем пакете (src / test / java / com / google / devtools / build / lib / rules / cpp /) нет никакого выполнения какого-либо действия.Я ожидал что-то вроде следующего

CppCompileAction action = ... CppCompileActionBuilder.build(...);
ActionResult result = action.execute(someActionExecutionContext);

Есть ли какая-то причина?Есть ли совет, если я хочу создать такой тест?Спасибо!

1 Ответ

0 голосов
/ 13 июня 2018

Java-тесты Базеля на самом деле не выполняют действия - они имитируют сборку и проверяют содержимое зарегистрированных действий, но на самом деле не выполняют эти действия.

Одна из причин этого заключается в том, что, если java-тест выполнит действия по компиляции C ++, набор тестов будет зависеть от инструментария C ++.

В качестве альтернативы у нас есть различные тесты оболочки (.sh)комплекты, которые тестируют Bazel от начала до конца, включая выполнение действий.

Здесь - пример набора тестов Java, проверяющего действия компиляции.

.. и Здесь является примером теста оболочки, который полностью тестирует сборку C ++, с выполнением действий.

Надеюсь, это поможет!

...