Challenge Engineer Life !

エンジニア人生を楽しみたい!仕事や趣味で学んだ技術的なことを書いていくブログです。

CoberturaでVerifyErrorにてカバレッジが取得できない現象

ハリーポッターのエマワトソンが好きなのでEMMAと迷ったのですが、テストのカバレッジツールはCobertunaを利用することにしました(^^;

で、mavenのpom.xmlに以下を追加。

<!-- テストカバレッジのために追加 -->
<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>cobertura-maven-plugin</artifactId>
    <version>2.5.2</version>
    <configuration>
        <formats>
            <format>html</format>
            <format>xml</format>
        </formats>
    </configuration>
</plugin>

ビルドして必要なものがダウンロードされた後、プロジェクトを右クリックすると
NetBeansでは以下のようにメニューが追加されています。便利だ(^^)

f:id:kikutaro777:20130218222125j:plain

で、早速「すべてのテストの実行」ボタンを押してみたところ…。

f:id:kikutaro777:20130218222200j:plain

まっかっか!!!なんで(-_-;

テスト実行するとオールグリーンなのに…。

エラーをみると

java.lang.VerifyError: Expecting a stackmap frame at branch target 125 in method~

と出ています。全然わかりません…。

というわけでググった所、いつも通りStackoveflowにありました。

Testng, Emma, Cobertura, coverage and JDK 7 result in ClassFormatError and VerifyError

細かく読み切ってないのですが、JDK7による現象なのっぽい??

とりあえず、maven-surefire-pluginは記述しているので、回答にあったように以下argLineタグを追加してみました。

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.13</version>
    <configuration>
        <!-- 以下がないとcobertunaが集計できない -->
        <argLine>-XX:-UseSplitVerifier</argLine>
        <skip>false</skip>
    </configuration>
</plugin>

で、もう一度挑戦!

f:id:kikutaro777:20130218222303j:plain

おー動いた。

上段いくつかの0%は、インタフェースなんですが…これらは除外するのかなぁ。そういう設定があるんだろうか。この辺りも調べていかねば(^^;

にほんブログ村 IT技術ブログへ
にほんブログ村 にほんブログ村 IT技術ブログ Javaへ
にほんブログ村