0

我配置了2个项目,使用最后一个jacoco版本0.7.8和最后一个Arquillian jacoco扩展(1.0.09Alpha),它的工作原理类似于一个魅力(用于jenkins和sonar 6.2)!但是我有一个更大的项目,当我只启动Arquillian IT测试时,我的战争归档被创建并拥有所有类,因此测试可以,当我运行与IT代码覆盖率相同的测试时,arquillian归档中不包含任何类,并拥有此错误:Arquillian + jacoco IT覆盖范围

org.jboss.shrinkwrap.api.exporter.ArchiveExportException:无法将资产写入输出:/ WEB-INF/... 引起:java.lang.RuntimeException:无法工具资产org.jboss .shrinkwrap.api.asset.ClassLoaderAsset

相同的配置,其他项目BOM的Arquillian 1.1.12Final的Arquillian套件1.1.2容器2.0.2 TestNG的.....

任何帮助吗?

+0

你试图缩小包被仪器? –

+0

是的,我尝试使包括,排除在arquillian.xml和pom.xml中,错误是奇怪的,因为在shrinkwrap类中,它尝试复制资产,但资产上的getOpenStream指向org.jboss.shrinkwrap.api.asset .ClassLoaderAsset实例...,另外在ArchiveDeploymentClass的getArchive上打印的档案包含所有类 – cyril

回答

1

终于它是lib错误确实库asm-debug-all版本被省略,因为其他库(apache-tika-parsers)已经导入了旧版本(在pom.xml中)...在pom.xml中进行排除解决这个问题,我们可以检查eclipse中的依赖关系层次结构。

jacoco-的Arquillian扩展使用ASM仪器代码...

<dependency> 
     <groupId>org.apache.tika</groupId> 
     <artifactId>tika-parsers</artifactId> 
     <version>1.9</version> 
     <scope>${defaultScope}</scope> 
     <exclusions> 
      <exclusion> 
       <groupId>org.bouncycastle</groupId> 
       <artifactId>bcprov-jdk15</artifactId> 
      </exclusion> 
      <exclusion> 
       <groupId>org.bouncycastle</groupId> 
       <artifactId>bcmail-jdk15</artifactId> 
      </exclusion> 
      <exclusion> 
       <groupId>org.ow2.asm</groupId> 
       <artifactId>asm-debug-all</artifactId> 
      </exclusion> 
     </exclusions> 
    </dependency>