0

私は maven 3 でソナー 2.6 を
使用しています。プロジェクトのコード カバレッジにデフォルトの corbetura プラグインを使用していますが、junit-4.9b2.jar を使用して junit テスト ケースを作成しましたが、常に 0% のカバレッジが表示されます。

これは私の pom.xml ファイルです:

<project xmlns="http://maven.apache.org/POM/4.0.0"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

  <modelVersion>4.0.0</modelVersion>
  <groupId>com.niit.karan</groupId>
  <artifactId>DataBlast</artifactId>
  <name>DataBlast</name>
  <version>1.0</version>

  <build>

<sourceDirectory>src</sourceDirectory> 
<outputDirectory>bin</outputDirectory> 

    <plugins>     
<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-compiler-plugin</artifactId>
    <version>2.3.2</version>
     <configuration> 
        <source>1.6</source> 
        <target>1.6</target> 
        <excludes> 
            <exclude>**/*.*</exclude> 
        </excludes> 
    </configuration> 
</plugin>

    <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>cobertura-maven-plugin</artifactId>
        <version>2.3</version>
        <configuration>

        <forkMode>once</forkMode>

          <instrumentation>
            <ignores>
              <ignore>com.example.boringcode.*</ignore>
              </ignores>
            <excludes>
              <exclude>com/example/dullcode/**/*.class</exclude>
              <exclude>com/example/**/*Test.class</exclude>
            </excludes>

          </instrumentation>
        </configuration>

    <executions>
          <execution>
            <goals>
              <goal>clean</goal>
            </goals>
          </execution>
        </executions>
      </plugin>


  <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>sonar-maven-plugin</artifactId>
      <version>2.0-beta-2</version>
          <configuration>
              <timeout>3600000</timeout> 
          </configuration>
       </plugin>
    </plugins>
  </build>
  <properties>
    <sonar.dynamicAnalysis>true</sonar.dynamicAnalysis>
  </properties>
</project>

そして、これはプラグインをチェックするためだけに書いたテストケースです:

package test;

import junit.framework.TestCase;

public class TestCalc extends TestCase{

    Calc calc = new Calc();
    public void testSum(){
        assertTrue(3 == calc.sum(1, 2));
        assertTrue(4 == calc.sum(2, 2));
    }
}

私がソナーの非常に新しいユーザーであることを考慮して、誰か助けてください..よろしくお願いします

4

2 に答える 2

2

maven-compiler-plugin は、テストを含むすべてのソース コードをスキップするように構成されていました。Maven が適切に機能し、ソース コードとテストをコンパイルするために、プラグイン構成の <excludes> セッションを削除します。

于 2011-07-05T12:29:21.807 に答える
1

以前に同じ問題に遭遇しました。私の場合、Surefire プラグイン プロパティの設定が間違っているためです。

Maven プロジェクトは、ビルド ライフサイクルのテスト段階で常に Surefire プラグインを使用して単体テストを実行します。Surefire のテスト構成がある場合は、pom.xml を確認してください。and を「false」に設定します。それらが「true」に設定されている場合、Sonar は単体テスト ケースをコンパイルおよび実行しません。その場合、常に 0% のカバレッジがあります。

<plugin>                    
<groupId>org.apache.maven.plugins</groupId>             
<artifactId>maven-surefire-plugin</artifactId>              
<version>2.9</version>              
<configuration>             
    <includes>              
        <include>**/*Test*.java</include>       
    </includes>         
    <parallel>methods</parallel>            
    <threadCount>10</threadCount>           
    <testFailureIgnore>true</testFailureIgnore> 
    <skipTests>false</skipTests>        
    <skip>false</skip>          
</configuration>                
</plugin>

それがあなたを助けることを願っています。

于 2012-04-18T11:24:17.637 に答える