ИСПРАВЛЕНО - Разобрался! Оказывается, когда вы добавляете объявления пакетов в свой файл, вы не должны добавлять полный путь (т.е. src/main/java/com/company/app). Вместо этого вы должны просто упаковать любые каталоги, которые у вас есть, например, в приложении. Таким образом, в каталоге util вы можете буквально использовать его как пакет util. Затем Jacoco правильно прочитал исходные файлы и рассчитал покрытие
У меня были проблемы с использованием Jacoco для создания хороших отчетов о покрытии кода для небольшого проекта, который я написал.
В основном следуя примеру, я прочитал здесь https://www.baeldung.com/jacoco - Я настроил свой pom так, чтобы он имел цель подготовки агента и цель отчета. Кажется, все это работает в том смысле, что я создаю каталог site/jacoco с файлами html для разных классов и так далее.
Однако, когда я создаю отчет и смотрю на index.html в jacoco, я получаю сообщение об ошибке source file x was not found during generation of report. Это для всех моих файлов.
Интересно, что когда я попытался добавить файл с именем Foo.java на корневой уровень моего проекта (com/philsfakecompany/chessapp) без каких-либо объявлений или управления пакетами, а затем запустил отчет — Jacoco правильно скомпоновал его, сгенерировал исходный файл и рассчитал покрытие кода. Это заставляет меня подозревать, что я делаю что-то не так с моей структурой упаковки/структурой каталогов.
В файлах GameManager.java я дал ему пакет com.philsfakecompany.chessapp, который просто отражает структуру каталогов проекта, и я вижу, что та же самая структура поддерживается в сгенерированных двоичных файлах в целевой папке. В jacoco это выглядит как несколько файлов внутриsite/jacoco/com.philsfakecompany.chessapp.
Кто-нибудь знает, что я делаю неправильно здесь? Я предположил, что вы должны были добавить объявления пакетов ко всем файлам и что они по существу отражают структуру каталогов. Я мог бы обойти эту проблему, удалив любую структуру пакета и поместив все свои файлы в корень, но это ужасно.
Я просмотрел другие сообщения о переполнении стека, и наиболее важным из них, который я нашел, был JaCoCo не создает отчеты о покрытии на основе исходного файла — имена методов не кликабельны. Однако это не решает мою проблему. У меня есть номера строк на сгенерированных страницах, поэтому я знаю, что это не проблема с классами, которые не компилируются с отладочной информацией. Я подозреваю, что это может быть проблема с пакетами, но я думаю, что следую примеру, который они показали в этом посте.
Я также добавлю свой POM ниже на случай, если оттуда появятся какие-либо ошибки.
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.8.6</version>
<executions>
<execution>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
<!-- attached to Maven test phase -->
<execution>
<id>report</id>
<phase>test</phase>
<goals>
<goal>report</goal>
</goals>
</execution>
</executions>
<configuration>
</configuration>
</plugin>
Если у кого есть идеи, буду очень благодарен!
app. Таким образом, в каталоге util вы можете буквально использовать его как пакет util. - person ConfusedDev1234325   schedule 21.04.2021"when you're adding package declarations to your file"и"you should just package by whatever directories you have within app"?? Какую конфигурацию вы использовали для решения проблемы? - person Mr-IDE   schedule 24.05.2021