1

私はいくつかのArquillianテスト(Drone/Grapheneテストが含まれています)を持つmavenプロジェクトを持っています。Jacoco Code CoverageとIncompatibleClassChangeErrorがありません

私はこれは魔法が

<build> 
    <finalName>browser</finalName> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>3.2</version> 
      <configuration> 
       <source>1.7</source> 
       <target>1.7</target> 
      </configuration> 
     </plugin> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-release-plugin</artifactId> 
      <version>2.5.3</version> 
      <configuration> 
       <tagBase>...</tagBase> 
       <useReleaseProfile>false</useReleaseProfile> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 
<profiles> 
    <profile> 
     <id>jacoco</id> 
     <dependencies> 
      <dependency> 
       <groupId>org.jacoco</groupId> 
       <artifactId>org.jacoco.core</artifactId> 
       <scope>test</scope> 
      </dependency> 
     </dependencies> 
     <build> 
      <plugins> 
       <plugin> 
        <groupId>org.jacoco</groupId> 
        <artifactId>jacoco-maven-plugin</artifactId> 
        <version>${jacoco}</version> 
        <executions> 
         <execution> 
          <goals> 
           <goal>prepare-agent</goal> 
          </goals> 
         </execution> 
         <execution> 
          <id>report</id> 
          <phase>prepare-package</phase> 
          <goals> 
           <goal>report</goal> 
          </goals> 
         </execution> 
        </executions> 
       </plugin> 
      </plugins> 
     </build> 
    </profile> 
    <profile> 
     <id>arq-wildfly</id> 
     <build> 
      <plugins> 
       <plugin> 
        <groupId>org.apache.maven.plugins</groupId> 
        <artifactId>maven-surefire-plugin</artifactId> 
        <version>${maven.surefire}</version> 
        <configuration> 
         <skipTests>false</skipTests> 
         <systemPropertyVariables> 
          <arquillian.launch>wildfly-remote</arquillian.launch> 
         </systemPropertyVariables> 
        </configuration> 
       </plugin> 
      </plugins> 
     </build> 
    </profile> 
    <profile> 
     <id>default</id> 
     <activation> 
      <activeByDefault>true</activeByDefault> 
     </activation> 
     <build> 
      <plugins> 
       <plugin> 
        <artifactId>maven-surefire-plugin</artifactId> 
        <version>${maven.surefire}</version> 
        <configuration> 
         <skipTests>true</skipTests> 
        </configuration> 
       </plugin> 
       <plugin> 
        <groupId>org.wildfly.plugins</groupId> 
        <artifactId>wildfly-maven-plugin</artifactId> 
        <version>${wildfly.maven-plugin}</version> 
       </plugin> 
      </plugins> 
     </build> 
    </profile> 
</profiles> 

を起こるはずの場所であるグラフェンとドローンやワープを使用するすべての私のArquillianテストは、以下の例外

Running de.mmo.arq.model.diverses.stammdaten.geldinstitut.GeldinstitutBlzTest 
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 4.862 sec <<< FAILURE! - in de.mmo.arq.model.diverses.stammdaten.geldinstitut.GeldinstitutBlzTest 
de.mmo.arq.model.diverses.stammdaten.geldinstitut.GeldinstitutBlzTest Time elapsed: 4.862 sec <<< ERROR! 
org.jboss.shrinkwrap.api.exporter.ArchiveExportException: Failed to write asset to output: /WEB-INF/classes/de/mmo/base/dao/CrudService.class 
Caused by: java.lang.IncompatibleClassChangeError: class org.jacoco.core.internal.flow.ClassProbesVisitor has interface org.objectweb.asm.ClassVisitor as super class 

で失敗しますMavenを使って自分のプロジェクトをビルドします私はこの目標で私のプロジェクトを構築するのにmvnを使用していますクリーンパッケージ-faeこのプロファイルではjacoc o arq-wildfly

ビルドに失敗し、jacoco.execファイルがターゲットディレクトリに作成されます。私は目標を削除した場合

プロファイルを持つjacocoプロファイルに-剤を調製し、同じMVNコマンドを実行します(クリーンパッケージ-faejacocoのARQ-wildflyすべての私のテストが成功し終えるが、作成することなく、 jacoco.execファイル。

私は間違っていますか?誰かがコードカバレッジのためにDrone/GrapheneテストとJacocoでArquillianを使用している実例を持っていますか?私の環境の詳細については

  • Wildfly 10
  • Arquillianコア1.1.11.Final
  • Arquillianドローン1.3.1.Final
  • Arquillianグラフェン2.1.0.Beta1
  • アルキリアンヤココ1.0.0.Alpha8
  • ヤココ0.7.6.201602180812

答えて

5

クラスパスに複数のasmバージョンがあります.Jacocoには最新のものが必要です。 ASMとorg.ow2.asm:ASM-デバッグ - すべてのあなたの依存関係で ASMバージョンを見つけるため

使用mvn dependency:treeは、私はあなたがASMを持っていると思います。

は、古いバージョン(ASM:ASM)を除外

<dependency> 
    <groupId>org.jboss.arquillian.graphene</groupId> 
    <artifactId>graphene-webdriver</artifactId> 
    <type>pom</type> 
    <scope>test</scope> 
    <exclusions> 
     <exclusion> 
      <artifactId>asm</artifactId> 
      <groupId>asm</groupId> 
     </exclusion> 
    </exclusions> 
</dependency> 
:ドローンについては

<dependency> 
    <groupId>...</groupId> 
    <artifactId>...</artifactId> 
    <exclusions> 
     <exclusion> 
      <artifactId>asm</artifactId> 
      <groupId>asm</groupId> 
     </exclusion> 
    </exclusions> 
</dependency> 

それはこのようなものになるだろうとし、ASMが必要との依存関係のために、以下の

関連する問題