Плагин Jacoco maven забивает консоль с помощью Exceptions-java.lang.IllegalStateException: класс уже инструментирован

Deepak S

Я работаю над покрытием кода сонара с помощью плагина Jacoco и использую комбинацию power mock mockito для написания тестовых примеров JUnit, в то время как все идет хорошо со сборкой, когда я запускаю mvn clean install, но консоль показывает очень очень длинную цепочку трассировки стека, которая продолжает поступать для много-много классов, используемых в проекте, и это довольно раздражает. Трассировка исключения похожа на приведенную ниже.

java.lang.instrument.IllegalClassFormatException: Error while instrumenting class..
Caused by: java.io.IOException: Error while instrumenting class.
Caused by: java.lang.IllegalStateException: Class <class-name> is already instrumented.

Я прошел по ссылке ниже для решения, но не смог найти выхода: -

https://github.com/jacoco/jacoco/issues/32

В ссылке говорится: "Ошибка указывает на то, что для одного процесса настроены два агента JaCoCo. Похоже, активация плагина surefire-report-plugin приводит к дублированию агента, что не исключительный случай, а ошибка в конфигурации JVM для тестов. "В моем случае это даже не удвоенный агент, я полагаю, поскольку мой argLine настроен только на одного агента jacoco.

В моем случае для argLine установлено значение ниже -

javaagent:C:\\Users\\user\\.m2\\repository\\org\\jacoco\\org.jacoco.agent\\0.7.6.201602180812\\org.jacoco.agent-0.7.6.201602180812-runtime.jar=destfile=C:Users\\user\\git\\package\\target\\jacoco.exec

Моя запись pom.xml для конфигурации jacoco-sonar выглядит следующим образом:

<properties>
        <sonar.sources>src/main/java</sonar.sources>
        <sonar.tests>src/test/java</sonar.tests>
        <sonar.java.coveragePlugin>jacoco</sonar.java.coveragePlugin>
        <sonar.jacoco.reportPaths>${project.basedir}/target/jacoco.exec</sonar.jacoco.reportPaths>
        <sonar.language>java</sonar.language>
        <sonar.binaries>${project.basedir}/target/classes</sonar.binaries>
        <sonar.inclusions>
            **/com/abc/service/impl/ABCServiceImpl.java,
            **/com/abc/dao/impl/ABCDAOImpl.java
        </sonar.inclusions>
    </properties>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.20</version>
                <configuration>
                    <skipTests>false</skipTests>
                    <argLine>-Xmx1024m -XX:MaxPermSize=256m ${argLine}</argLine>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.jacoco</groupId>
                <artifactId>jacoco-maven-plugin</artifactId>
                <version>0.7.6.201602180812</version>
                <executions>
                 <execution>
                        <id>default-prepare-agent</id>
                        <goals>
                            <goal>prepare-agent</goal>
                        </goals>
                </execution> 
                <execution>
                    <id>default-instrument</id>
                    <goals>
                        <goal>instrument</goal>
                    </goals>
                </execution>
                <execution>
                    <id>default-restore-instrumented-classes</id>
                    <goals>
                        <goal>restore-instrumented-classes</goal>
                    </goals>
                </execution>
                    <execution>
                        <id>default-report</id>
                        <phase>prepare-package</phase>
                        <goals>
                            <goal>report</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

Примечание.Если я удалю элемент выполнения для 'default-instrument' и 'default-restore-Instrumented-classes', тогда трассировка исключения не появится, но я получаю покрытие = 0,0% на панели сонара, использование этих двух элементов выполнения дает мне правильный покрытие кода, но с длинной трассировкой стека на консоли. Любая помощь приветствуется.

Stuti verma

Согласно моему пониманию этого исследования: с Java-агентом JaCoCo можно также использовать классы с автономной настройкой. В этом случае конфигурация берется из опций агента. Агент должен быть настроен таким образом, чтобы исключить предварительно оснащенные классы, например, с помощью " excludes = * ". В противном случае это приведет к сообщениям об ошибках на консоли, если агент снова использует такие классы в вашем случае.

Агент jacocoagent.jar является частью дистрибутива JaCoCo и включает все необходимые зависимости. Агент Java можно активировать с помощью следующей опции JVM:

-javaagent: [yourpath /] jacocoagent.jar = [option1] = [value1], [option2] = [value2]

Для вариантов агента JaCoCo рассмотрите следующую ссылку: http://www.jacoco.org/jacoco/trunk/doc/agent.html

Эта статья взята из Интернета, укажите источник при перепечатке.

Если есть какие-либо нарушения, пожалуйста, свяжитесь с[email protected] Удалить.

Отредактировано в
0

я говорю два предложения

0обзор
Войти в системуУчаствуйте в комментариях

Статьи по теме

TOP список

  1. 1

    Распределение Рэлея Curve_fit на Python

  2. 2

    How to click an array of links in puppeteer?

  3. 3

    В типе Observable <unknown> отсутствуют следующие свойства из типа Promise <any>.

  4. 4

    Как добавить Swagger в веб-API с поддержкой OData, работающий на ASP.NET Core 3.1

  5. 5

    Нарисуйте диаграмму с помощью highchart.js

  6. 6

    无法通过Vue在传单中加载pixiOverlay

  7. 7

    Отчеты Fabric Debug Craslytic: регистрация, отсутствует идентификатор сборки, применить плагин: io.fabric

  8. 8

    Статус HTTP 403 - ожидаемый токен CSRF не найден

  9. 9

    TypeError: store.getState não é uma função. (Em 'store.getState ()', 'store.getState' é indefinido, como posso resolver esse problema?

  10. 10

    ContentDialog.showAsync в универсальном оконном приложении Win 10

  11. 11

    В UICollectionView порядок меняется автоматически

  12. 12

    Merging legends in plotly subplot

  13. 13

    Elasticsearch - Нечеткий поиск не дает предложения

  14. 14

    Bogue étrange datetime.utcnow()

  15. 15

    Объединение таблиц в листе Google - полное соединение

  16. 16

    Single legend for Plotly subplot for line plots created from two data frames in R

  17. 17

    как я могу удалить vue cli 2?

  18. 18

    ViewPager2 мигает / перезагружается при смахивании

  19. 19

    Компилятор не знает о предоставленных методах Trait

  20. 20

    JDBI - В чем разница между @define и @bind в JDBI?

  21. 21

    проблемы с AVG и LIMIT SQL

популярныйтег

файл