Обновление jacoco до отчета prodcue xml с агрегатом отчетов - PullRequest
0 голосов
/ 13 апреля 2020

Мы поддерживаем древний проект, который начнется с 2010 года или около того. Наша компания только что обновила версию sonarqube до версии, которая не поддерживает использование sonar.jacoco.itReportPath и sonar.jacoco.reportPath. Поэтому нам нужно обновить конфигурацию jacoco проекта, чтобы получить отчет xml. Но текущий конфиг действительно странный, и все старые парни ушли, поэтому мы не знаем, что означает конфиг и что нужно обновить. Вот структура проекта:

/root
   /.git
   /project-folder
      /module1
      /module2
      ...
      /selenium-test-module
          pom.xml //test-pom
      pom.xml
   pom.xml // root-pom

root pom:

<properties>
    <sonar.jacoco.itReportPath>target/jacoco.excec</sonar.jacoco.itReportPath>
    <sonar.jacoco.reportPath>target/jacoco.excec</sonar.jacoco.reportPath>
</properties>

<profiles>
    <profile>
        <id>sonar</id>
        <activation>
            <activeByDefault>false</activeByDefault>
        </activation>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.jacoco</groupId>
                    <artifactId>jacoco-maven-plugin</artifactId>
                    <version>0.8.5</version>
                    <configuration>
                        <append>true</append>
                    </configuration>
                    <executions>
                        <execution>
                            <id>agent</id>
                            <goals>
                                <goal>prepare-agent</goal>
                            </goals>
                            <configuration>
                                <destFile>${sonar.jacoco.reportPath}</destFile>
                            </configuration>
                        </execution>
                        <execution>
                            <id>agent-integration</id>
                            <goals>
                                <goal>prepare-agent-integration</goal>
                            </goals>
                            <configuration>
                                <destFile>${sonar.jacoco.itReportPath}</destFile>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </build>
    </profile>
</profiles>

test pom:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <!--version>2.3.2</version-->
    <version>3.3</version>
    <configuration>
        <source>1.7</source>
        <target>1.7</target>
    </configuration>
</plugin>

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-dependency-plugin</artifactId>
    <version>2.10</version>
    <executions>
        <execution>
            <id>unpack-classes</id>
            <phase>package</phase>
            <goals>
                <goal>unpack</goal>
            </goals>
            <configuration>
                <artifactItems>
                    <artifactItem>
                        <groupId>our.package.name</groupId>
                        <artifactId>module1</artifactId>
                        <version>${project.version}</version>
                        <type>jar</type>
                    </artifactItem>
                    <artifactItem>
                        <groupId>our.package.name</groupId>
                        <artifactId>module12</artifactId>
                        <version>${project.version}</version>
                        <type>jar</type>
                    </artifactItem>
                </artifactItems>
                <includes>**/*.class</includes>
                <outputDirectory>${project.build.directory}/classes</outputDirectory>
            </configuration>
        </execution>
        <execution>
            <id>unpack-sources</id>
            <phase>package</phase>
            <goals>
                <goal>unpack</goal>
            </goals>
            <configuration>
                <artifactItems>
                    <artifactItem>
                        <groupId>our.package.name</groupId>
                        <artifactId>module1</artifactId>
                        <version>${project.version}</version>
                        <type>jar</type>
                    </artifactItem>
                    <artifactItem>
                        <groupId>our.package.name</groupId>
                        <artifactId>module12</artifactId>
                        <version>${project.version}</version>
                        <type>jar</type>
                    </artifactItem>
                </artifactItems>
                <includes>**/*.java</includes>
                <outputDirectory>${project.build.directory}/generated-sources/project</outputDirectory>
            </configuration>
        </execution>
    </executions>
</plugin>

<plugin>
    <artifactId>maven-resources-plugin</artifactId>
    <version>2.7</version>
    <executions>
        <execution>
            <id>copy-resources</id>
            <phase>package</phase>
            <goals>
                <goal>copy-resources</goal>
            </goals>
            <configuration>
                <outputDirectory>${project.build.directory}/classes</outputDirectory>
                <resources>
                    <resource>
                        <directory>${project.build.directory}/web-module/WEB-INF/classes</directory>
                        <filtering>false</filtering>
                    </resource>
                </resources>
            </configuration>
        </execution>
    </executions>
</plugin>

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>build-helper-maven-plugin</artifactId>
    <version>1.7</version>
    <executions>
        <execution>
            <id>add-source</id>
            <phase>package</phase>
            <goals>
                <goal>add-source</goal>
            </goals>
            <configuration>
                <sources>
                    <source>${project.build.directory}/generated-sources/project</source>
                </sources>
            </configuration>
        </execution>
    </executions>
</plugin>

<plugin>
    <groupId>org.jacoco</groupId>
    <artifactId>jacoco-maven-plugin</artifactId>
    <version>0.7.1.201405082137</version>
    <configuration>
        <propertyName>jacoco.agent.argLine</propertyName>
        <address>192.168.224.222</address>
        <port>6300</port>
        <includes>
            <include>our/package/name/**</include>
        </includes>
        <classFolders>
            <classFolder>${basedir}/target/classes</classFolder>
            <classFolder>${basedir}/../module1/target/classes</classFolder>
            <classFolder>${basedir}/../module2/target/classes</classFolder>
        </classFolders>
        <sourceFolders>
            <sourceFolder>${basedir}/src/main/java</sourceFolder>
            <sourceFolder>${basedir}/../module1/src/main/java</sourceFolder>
            <sourceFolder>${basedir}/../module1/src/main/java</sourceFolder>
        </sourceFolders>
    </configuration>
    <executions>
        <execution>
            <id>report</id>
            <phase>verify</phase>
            <goals>
                <goal>report</goal>
            </goals>
        </execution>
    </executions>
</plugin>

Только тестовый модуль селена сделать тест на селен и не зависеть от других модулей в его pom. Как работает эта настройка? Когда я запускаю локальный тест, целевая папка была создана в папке root, содержит все jar-файлы всех модулей и jacoco.exe c, целевые папки другого модуля также имеют jacoco.exce c.

Как я могу обновить эту конфигурацию, чтобы создать xml отчет с агрегатом отчетов? Я пытаюсь изменить цель отчета в тестовой помпе на агрегат отчета, но он просто создает папку цели / сайта в каждом модуле с пустым jacoco. xml. Нужно ли добавлять зависимость к другому модулю в тестовом помпе?

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