#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 будет задействован, и, удалив фильтр, вы гарантируете, что все тесты будут выполнены (например, тот, который имеет оба тега).