Поддерживает ли bazel порядок выполнения тестов?

#integration-testing #bazel

#интеграционное тестирование #базел

Вопрос:

У меня есть определенное количество сквозных интеграционных тестов, которые я хотел бы выполнить до запуска других более глубоких сквозных тестов. До тех пор, пока я не использую --keep_going флаг, первый сбой теста должен завершать bazel test //... сеанс. Я бы хотел, чтобы более мелкие сквозные тесты выполнялись перед более глубокими тестами, есть ли способ управлять порядком выполнения тестов из bazel?

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

Ответ №1:

В Bazel нет прямой поддержки для этого, AFAIK.

Вы можете установить пользовательские теги, а затем использовать --test_tag_filter флаг для пакетного запуска тестов. Т.е. у вас могут быть shallow deep теги and , а затем сначала запускать тесты с shallow тегом, затем тесты без какого-либо тега, а затем тесты с deep тегом.

Комментарии:

1. ага, так что я бы сказал что-то вроде bazel test --test_tag_filter=" shallow,-deep" //foo/...; bazel test --test_tag_filter="-shallow,-deep" //foo/...; bazel test --test_tag_filter="-shallow, deep" //foo/...

2. Именно это я и собирался предложить. Обратите внимание, что для последнего вызова вы можете удалить тестовый фильтр: кэш bazel будет задействован, и, удалив фильтр, вы гарантируете, что все тесты будут выполнены (например, тот, который имеет оба тега).