Как исправить ошибку при создании отчета (jacoco) - PullRequest
0 голосов
/ 24 декабря 2018

Я получаю сообщение об ошибке при выполнении моего тестового кода черного ящика.Я использую последние jaroco jar 0.8.2, но выдает следующие ошибки:

    BUILD FAILED
    C:\project\build-continous-integration.xml:71: The following error occurred while executing this line:
    C:\project\build-continous-integration.xml:94: The following error occurred while executing this line:
    C:\project\build-continous-integration.xml:152: Error while creating report
            at org.jacoco.ant.ReportTask.execute(ReportTask.java:501)
            at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292)
            at jdk.internal.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
            at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
            at java.base/java.lang.reflect.Method.invoke(Method.java:566)
            at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:99)
            at org.apache.tools.ant.Task.perform(Task.java:350)
            at org.apache.tools.ant.Target.execute(Target.java:449)
            at org.apache.tools.ant.Target.performTasks(Target.java:470)
            at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1388)
            at org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(SingleCheckExecutor.java:36)
            at org.apache.tools.ant.Project.executeTargets(Project.java:1251)
            at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:437)
            at org.apache.tools.ant.taskdefs.CallTarget.execute(CallTarget.java:105)
            at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292)
            at jdk.internal.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
            at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
            at java.base/java.lang.reflect.Method.invoke(Method.java:566)
            at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:99)
            at org.apache.tools.ant.Task.perform(Task.java:350)
            at org.apache.tools.ant.Target.execute(Target.java:449)
            at org.apache.tools.ant.Target.performTasks(Target.java:470)
            at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1388)
            at org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(SingleCheckExecutor.java:36)
            at org.apache.tools.ant.Project.executeTargets(Project.java:1251)
            at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:437)
            at org.apache.tools.ant.taskdefs.CallTarget.execute(CallTarget.java:105)
            at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292)
            at jdk.internal.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
            at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
            at java.base/java.lang.reflect.Method.invoke(Method.java:566)
            at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:99)
            at org.apache.tools.ant.Task.perform(Task.java:350)
            at org.apache.tools.ant.Target.execute(Target.java:449)
            at org.apache.tools.ant.Target.performTasks(Target.java:470)
            at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1388)
            at org.apache.tools.ant.Project.executeTarget(Project.java:1361)
            at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
            at org.apache.tools.ant.Project.executeTargets(Project.java:1251)
            at org.apache.tools.ant.Main.runBuild(Main.java:834)
            at org.apache.tools.ant.Main.startAnt(Main.java:223)
            at org.apache.tools.ant.launch.Launcher.run(Launcher.java:284)
            at org.apache.tools.ant.launch.Launcher.main(Launcher.java:101)
    Caused by: java.io.IOException: Error while analyzing 
  project\bc\infra\commands\AbstractCommand.class.
            at org.jacoco.core.analysis.Analyzer.analyzerError(Analyzer.java:170)
            at org.jacoco.core.analysis.Analyzer.analyzeClass(Analyzer.java:142)
            at org.jacoco.core.analysis.Analyzer.analyzeClass(Analyzer.java:165)
            at org.jacoco.core.analysis.Analyzer.analyzeAll(Analyzer.java:201)
            at org.jacoco.ant.ReportTask.createBundle(ReportTask.java:570)
            at org.jacoco.ant.ReportTask.createReport(ReportTask.java:542)
            at org.jacoco.ant.ReportTask.execute(ReportTask.java:495)
            ... 42 more
    Caused by: java.lang.IllegalArgumentException
            at org.objectweb.asm.ClassReader.<init>(Unknown Source)
            at org.objectweb.asm.ClassReader.<init>(Unknown Source)
            at org.jacoco.core.analysis.Analyzer.analyzeClass(Analyzer.java:118)
            at org.jacoco.core.analysis.Analyzer.analyzeClass(Analyzer.java:140)
            ... 47 more

Я проверил множество тем, но большинство вопросов касаются инструментированного класса, но здесь я не вижу этой ошибки.У кого-нибудь есть идеи как это исправить?Если вам нужна дополнительная информация, пожалуйста, дайте мне знать.

Заранее спасибо.

1 Ответ

0 голосов
/ 24 декабря 2018
Caused by: java.lang.IllegalArgumentException
        at org.objectweb.asm.ClassReader.<init>(Unknown Source)

Единственный известный мне случай Unknown Source в трассировках стека из библиотеки ASM - это использование его JAR-файлов, которые не содержат отладочной информации и которые были удалены в версии 6.0 ASM.Таким образом, вы, вероятно, используете версию ASM <6.0. </p>

Однако в зависимости от наличия имен модулей в трассировке стека

        at java.base/java.lang.reflect.Method.invoke(Method.java:566)

вы используете Java> = 9.

версии ASM <6.0 не могут обрабатывать классы Java> = 9 и в этом случае выдают ровно IllegalArgumentException в org.objectweb.asm.ClassReader.<init>.

Кроме того JaCoCo 0.8.2 требует использования ASM 6.2.1 и зависит именно от этой версии.


    at org.jacoco.ant.ReportTask.execute(ReportTask.java:501)

для Ant вы должны использовать lib/jacocoant.jar, а не lib/org.jacoco.ant-0.8.2.201808211720.jar из дистрибутива JaCoCo, потому что первый содержит все необходимые зависимости , а последняя - нет.Согласно https://www.jacoco.org/jacoco/trunk/doc/repo.html он соответствует артефакту из центрального хранилища Maven, чье groupId равно org.jacoco, artifactId равно org.jacoco.ant и, что наиболее важно classifier равно nodeps.

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