Как запустить все тесты JUnit с Bazel - PullRequest
1 голос
/ 01 апреля 2020

Я пытался запустить все тесты JUnit в каталоге с Bazel. Насколько я знаю, правило java_test может запускать только указанный класс c. Однако я ищу поведение, похожее на mvn test, которое запускает все тесты JUnit в проекте. Как я могу выполнить sh это?

1 Ответ

3 голосов
/ 02 апреля 2020

Типичный способ организовать это - иметь правило java_test на Java тестовый класс или на группу связанных Java тестовых классов. Затем java_test s можно сгруппировать, используя test_suite, если это то, что вы хотите сделать.

Вы можете запустить все тесты в пакете с помощью:

bazel test //some/package:all

или в пакете и его подпакетах:

bazel test //some/package/...

или во всем рабочем пространстве:

bazel test //...

Подробнее о целевых шаблонах: https://docs.bazel.build/versions/master/guide.html#target -patterns

Если вы просто хотите java_test, который запускает все тесты в каталоге, вы можете сделать что-то вроде

java_test(
    name = "tests",
    srcs = glob(["*Test.java"]),
    deps = [ ..... ],
)

, но это может или не может быть правильным решением , В частности, если вы хотите просто запустить один тест или один метод тестирования (например, используя --test_filter), bazel по-прежнему будет строить все зависимости java_test. Также обратите внимание, что glob s только внутри пакета сборки и не переходит в другие пакеты.

...