JaCoCo с многомодульным проектом Maven - только запись покрытия тестами, принадлежащими модулю - PullRequest
0 голосов
/ 30 января 2019

У нас есть большой проект Maven с около 50 модулями.Сегодня у нас есть хорошая установка, где мы получаем комбинированное покрытие JaCoCo для всего проекта.Мы также используем последний двоичный файл, сгенерированный JaCoCo для пользовательской логики покрытия.

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

Например.Модуль A зависит от модуля B. A имеет код, который использует код в B. Когда выполняются тесты в A, мы не хотим, чтобы было записано покрытие из любого класса в B.

Возможна ли эта настройка?Пробуясь, я обнаружил, что у JaCoCo есть много вариантов фильтрации при создании окончательного отчета, но я хотел бы сделать это на первом этапе, когда покрытие будет собрано.

В конце концов, я бы хотел получить исполняемый файл JaCoCo в целевом каталоге каждого модуля, в котором есть классы, записанные только из его собственного модуля.Было бы прекрасно, если бы нам пришлось выполнять некоторую настройку для каждого модуля, например, иметь явное выражение пакета для включения.

1 Ответ

0 голосов
/ 30 января 2019

Попробовав, я обнаружил, что у JaCoCo есть много вариантов фильтрации при генерации окончательного отчета, но я хотел бы сделать это на первом шаге, когда покрытие будет собрано.

Есть также опции для фильтрации во время сбора - см. includes и excludes опции JaCoCo Java Agent и соответствующие опции prepare-agent в jacoco-maven-plugin.

Сборка JaCoCo сама использует их именно для этого.

...