у нас есть многомодульный Maven-проект Eclipse Plugins.
Создание отчета о покрытии кода с использованием JaCoCo работает, но статистика кажется ложной.
Рассчитывается покрытие самих тестовых классов И добавляется к общему проценту покрытия кода.
Пример:
- Плагин org.myplugin имеет покрытие 50% и 100 строк кода.
- Тестовый плагин org.myplugin.tests покрывает 100% и 100 строк кода.
- Общий процент покрытия кода составляет 75% или 150 строк кода.
Это, конечно, не совсем правильно, потому что важно то, что охват в действительности составляет всего 50% от нормального кода.
Это нормальное поведение? Что я могу сделать, чтобы исключить покрытие для тестовых классов?
РЕДАКТИРОВАТЬ: Вот соответствующие части нескольких наших файлов POM:
Проект POM:
<groupId>de.tool</groupId>
<artifactId>toolname</artifactId>
<version>2.0</version>
<packaging>pom</packaging>
<properties>
<tycho-version>0.13.0</tycho-version>
<junit-version>4.8.2</junit-version>
<project.build.sourceEncoding>Cp1252</project.build.sourceEncoding>
<jacoco-maven-version>0.5.6.201201232323</jacoco-maven-version>
<sonar.core.codeCoveragePlugin>jacoco</sonar.core.codeCoveragePlugin>
<sonar.dynamicAnalysis>reuseReports</sonar.dynamicAnalysis>
<sonar.jacoco.reportPath>${project.basedir}/../../target/jacoco.exec</sonar.jacoco.reportPath>
<!-- <sonar.surefire.reportsPath>../${project.artifactId}.tests/target/surefire-reports/</sonar.surefire.reportsPath> -->
</properties>
<modules>
<module>de.tool.plugin</module>
<module>de.tool.plugin.tests</module>
</modules>
<build>
<plugins>
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-maven-plugin</artifactId>
<version>${tycho-version}</version>
<extensions>true</extensions>
</plugin>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>${jacoco-maven-version}</version>
<configuration>
<destFile>${project.basedir}/../../target/jacoco.exec</destFile>
</configuration>
<executions>
<execution>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
Плагин POM:
<parent>
<groupId>de.tool</groupId>
<artifactId>toolname</artifactId>
<version>2.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>de.tool.plugin</groupId>
<artifactId>de.tool.plugin</artifactId>
<version>1.0.1-SNAPSHOT</version>
<packaging>eclipse-plugin</packaging>
Тестовый плагин POM:
<parent>
<groupId>de.tool</groupId>
<artifactId>toolname</artifactId>
<version>2.0</version>
<relativePath>../../plugins</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>de.tool.plugin</groupId>
<artifactId>de.tool.plugin.tests</artifactId>
<version>1.0.0-SNAPSHOT</version>
<packaging>eclipse-test-plugin</packaging>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit-version}</version>
</dependency>
</dependencies>