2011-06-24 2 views
0

コードカバレッジ解析にCoberturaを使用しています。 Jenkinsでビルドを実行すると、generatedのクラスがカバレッジ結果に含まれますが、カバレッジは0%になります。私がワークスペース(Eclipse)でコードカバレッジを実行すると、カバレッジははるかに高くなります。パッケージcom.my.packageのカバレッジはOKです。私はいくつかの構成が欠けていますか?Coberturaコードカバレッジ結果が完全ではない

私のプロジェクト構造は以下の通りです:POMファイルで

 
- com 
+- com.my 
+-- com.my.package 
+--- class1.java 
+--- class2.java 
- generated 
+- classX.java 
+- classY.java 

マイCoberturaの構成:

 <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>cobertura-maven-plugin</artifactId> 
      <version>2.4</version> 
      <configuration> 
       <formats> 
        <format>xml</format> 
       </formats> 
       <check> 
        <branchRate>0</branchRate> 
        <lineRate>0</lineRate> 
        <haltOnFailure>false</haltOnFailure> 
        <totalBranchRate>0</totalBranchRate> 
        <totalLineRate>0</totalLineRate> 
        <packageLineRate>0</packageLineRate> 
        <packageBranchRate>0</packageBranchRate> 
       </check> 
       <instrumentation> 
        <excludes> 
         <exclude>**/*Test.class</exclude> 
        </excludes> 
       </instrumentation> 
      </configuration> 
      <executions> 
       <execution> 
        <phase>test</phase> 
        <goals> 
         <goal>cobertura</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 
+0

を生成されたコードの答え。私は、次の[解決策]をまとめることができた(http://stackoverflow.com/questions/11159656/cobertura-code-coverage-for-freemarker-auto-generated-code) – amaidment

答えて

1

生成されたコードをテストするべきではなく、コード・カバレッジ・メトリクスでは使用しないでください。理由は、コードを生成しているライブラリをテストするべきではないということです。

私はCoberturaの自分自身を使用したことがありませんが、あなたがこのような何かを追加する必要があることと思われる:私は同様の問題があったが、「上のコードカバレッジをしないと満足していなかった

  <instrumentation> 
       <excludes> 
        <exclude>**/*Test.class</exclude> 
        <exclude>generated/*.class</exclude> 
       </excludes> 
      </instrumentation> 
+0

確かに、あなたは正しい:それを除外するそれらははるかに良いです。 – Kai

関連する問題