我正试图通过jenkins和jacoco插件获得代码覆盖。
我在执行测试的机器上有一个加考剂jar。然后,我检索转储并尝试获取jenkins上的代码覆盖率。
不管怎么说,我总是犯以下错误,
[JaCoCo plugin] Collecting JaCoCo coverage data...
[JaCoCo plugin] \**/coverage/jacoco.exec;\**/coverage/classes-cov;\**/application/; locations are configured
[JaCoCo plugin] Number of found exec files for pattern \**/coverage/jacoco.exec: 1
[JaCoCo plugin] Saving matched execfiles: /home/ec2-user/slave/workspace/Automation_Code_Coverage_POMS/coverage/jacoco.exec
[JaCoCo plugin] Saving matched class directories for class-pattern: \**/coverage/classes-cov: /home/ec2-user/slave/workspace/Automation_Code_Coverage_POMS/coverage/classes-cov
[JaCoCo plugin] Saving matched source directories for source-pattern: \**/application/:
[JaCoCo plugin] Loading inclusions files..
[JaCoCo plugin] inclusions: [\**/com/test/poms/\**]
[JaCoCo plugin] exclusions: [\**/poms/convertors/\**:\**/poms/scheduler/\**]
ERROR: Publisher 'Record JaCoCo coverage report' aborted due to exception:
java.io.IOException: Error while analyzing class /home/ec2-user/.jenkins/jobs/Automation_Code_Coverage_POMS/builds/43/jacoco/classes/com/test/poms/convertors/DtoToSroConverter.83f57acb46d004b5.class.
at org.jacoco.core.analysis.Analyzer.analyzerError(Analyzer.java:150)
at org.jacoco.core.analysis.Analyzer.analyzeClass(Analyzer.java:144)
at org.jacoco.core.analysis.Analyzer.analyzeAll(Analyzer.java:175)
at org.jacoco.core.analysis.Analyzer.analyzeAll(Analyzer.java:208)
at hudson.plugins.jacoco.ExecutionFileLoader.analyzeStructure(ExecutionFileLoader.java:126)
at hudson.plugins.jacoco.ExecutionFileLoader.loadBundleCoverage(ExecutionFileLoader.java:133)
at hudson.plugins.jacoco.JacocoReportDir.parse(JacocoReportDir.java:102)
at hudson.plugins.jacoco.JacocoBuildAction.loadRatios(JacocoBuildAction.java:291)
at hudson.plugins.jacoco.JacocoBuildAction.load(JacocoBuildAction.java:273)
at hudson.plugins.jacoco.JacocoPublisher.perform(JacocoPublisher.java:371)
at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)
at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:779)
at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:726)
at hudson.model.Build$BuildExecution.post2(Build.java:185)
at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:671)
at hudson.model.Run.execute(Run.java:1769)
at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
at hudson.model.ResourceController.execute(ResourceController.java:98)
at hudson.model.Executor.run(Executor.java:374)
Caused by: java.lang.IllegalStateException: Can't add different class with same name: com/test/poms/convertors/DtoToSroConverter
at org.jacoco.core.analysis.CoverageBuilder.visitCoverage(CoverageBuilder.java:106)
at org.jacoco.core.analysis.Analyzer$1.visitEnd(Analyzer.java:92)
at org.objectweb.asm.ClassVisitor.visitEnd(ClassVisitor.java:317)
at org.jacoco.core.internal.flow.ClassProbesAdapter.visitEnd(ClassProbesAdapter.java:98)
at org.objectweb.asm.ClassReader.accept(ClassReader.java:697)
at org.objectweb.asm.ClassReader.accept(ClassReader.java:506)
at org.jacoco.core.analysis.Analyzer.analyzeClass(Analyzer.java:107)
at org.jacoco.core.analysis.Analyzer.analyzeClass(Analyzer.java:142)
... 17 more
Notifying upstream projects of job completionJaCoCo Can't add different class with same name: org/hamcrest/BaseDescription上面的链接建议排除这些文件,但是如果您查看上面的日志,它们已经被排除了,但是我仍然看到了这个问题。
发布于 2015-08-07 17:01:36
在我的例子中,请参阅: Jenkins中的12:35:12 [JaCoCo plugin] exclusions: [**/*koba*.class]日志,Jenkins插件执行分析。与你所得到的相比没有反斜杠。
其次,您所得到的错误是由以下两个原因之一造成的:
检查一下,项目中有多少名以: DtoToSroConverter开头的文件。
然后,确保在Jenkins的Jacoco插件中提到的值如下所示。注意:源代码不应包含任何测试(单元/非单元测试源)文件夹。

在我的例子中,我是说,处理所有的.exec文件(在构建/测试/jacoco进程完成后,在我的项目工作区中的任何地方),即*..exec*
然后,类目录的路径应该总是只提到主源类文件(而不是单元/非单元类型的测试类),即我只使用"build/classes/main“,因为这些类是根据我的源代码(src/ MAIN /java或src/java)生成的。此值是仅包含主源代码类的文件夹。
“源目录路径”字段应该始终包含实际主源代码存在的文件夹(而不是包含任何测试源代码),即我使用了"src/java“。我可以使用"src/ main /java“,这是主源代码的Gradle/Maven标准文件夹结构。在我的例子中,我的主要源代码在src/java文件夹中。
检查是否正确设置了源目录路径字段和类目录路径?如果是,是否有多个文件名为:DtoToSroConverter
https://stackoverflow.com/questions/31695176
复制相似问题