Объясните причину перезапуска теста в Базеле - PullRequest
0 голосов
/ 18 октября 2019

У меня есть тест, который перезапускается каждый раз без каких-либо изменений в коде. Я использую

bazel test --explain ~/bazel-explain.log --verbose_explanations <test-target-name>

для запуска теста.

Build options: <truncated>
Executing action 'BazelWorkspaceStatusAction stable-status.txt': unconditional execution is requested.
Executing action 'FileWrite build-info-volatile.h': unconditional execution is requested.
Executing action 'Testing <test-name>': One of the files has changed.

Так что единственная полезная информация здесь - «Один из файлов изменился».

  1. Как понять, какой файл конкретно изменился?
  2. Что означает "файл изменен" в bazel? Сравнивает ли Базель хеш файла (или каталога)? Меняется ли файл в терминах базеля, если изменяются только атрибуты файла (например, время редактирования)?

1 Ответ

0 голосов
/ 21 октября 2019

Я нашел причину. Я использую ноутбук Zeppelin как внешнюю зависимость. Когда Zeppelin запускается, он изменяет файлы внутри своего каталога: он добавляет журналы и изменяет interpreters.json config. Каждый следующий запуск теста каталог zeppelin отличается от предыдущего снимка. Вот почему bazel перезапускает тест каждый раз.

Когда я удаляю логи и возвращаю изменения в файле interpreters.json, bazel не перезапускает тест. Теперь я попытаюсь выяснить, как настроить Zeppelin для использования другого каталога для файлов, изменяющихся во время выполнения.

К сожалению, я не нашел инструментов или опций Bazel, которые помогли бы мне найти причинувопрос. Мне пришлось вручную различать снимки каталога zeppelin.

...