2013-09-25 13 views
6

क्या कोई भी जेवनॉक और पावरमॉक यूनिट परीक्षणों का यूनिट टेस्ट कवरेज प्राप्त करने में सक्षम है जो मेवेन बिल्ड से जैकोको में काम कर रहा है?पावरमॉक और जेमॉकिट यूनिट दोनों परीक्षणों के लिए टेस्ट कवरेज

मेरे पास पावरमॉक यूनिट परीक्षणों का एक मौजूदा परीक्षण सेट है, जो मैं धीरे-धीरे जेमॉकिट में माइग्रेट करना चाहता हूं। लेकिन मुझे एक रिपोर्ट में सभी यूनिट परीक्षणों का टेस्ट कवरेज देखने में सक्षम होना चाहिए, अधिमानतः सोनार में।

मैं ("ऑफ़लाइन" मोड में JaCoCo डाल अन्यथा मैं एक समस्या जहां एजेंटों में से एक परीक्षण के अंत में समाप्त नहीं किया जा रहा था और उसके बाद mvn था द्वारा JMockit और Powermock अचूक/JaCoCo के साथ एक साथ चल रहे परीक्षण प्राप्त किया स्वच्छ उत्पन्न लक्ष्य \ surefire \ surefirebooter2967126910681005991.jar अगले रन पर हटा नहीं सका)। लेकिन JMockit परीक्षणों के लिए कोई कवरेज उत्पन्न नहीं हुआ था।

यदि आपके पास यह काम है तो कृपया अपने पोम से कुछ अंश पोस्ट करें।

इस तरह (= ध्यान दें अचूक प्लगइन reuseForks साथ congigured है झूठी Powermock में PermGen स्मृति रिसाव वैकल्पिक हल के लिए, यह मुख्य कारण JMockit को विस्थापित करने के लिए में से एक है) मेरी पोम दिखता

 <profile> 
     <!-- use this profile to perform Sonar analysis --> 
     <id>sonar</id> 
     <properties> 
      <sonar.language>java</sonar.language> 
      <!-- Tells Sonar to use the generated test coverage report --> 
      <sonar.dynamicAnalysis>reuseReports</sonar.dynamicAnalysis> 
      <!-- Tells Sonar to use JaCoCo as the code coverage tool --> 
      <sonar.java.coveragePlugin>jacoco</sonar.java.coveragePlugin> 
      <sonar.java.codeCoveragePlugin>jacoco</sonar.java.codeCoveragePlugin> 
     </properties> 
     <build> 
      <plugins> 
       <!-- surefire (junit) plugin config with JaCoCo listener --> 
       <plugin> 
        <groupId>org.apache.maven.plugins</groupId> 
        <artifactId>maven-surefire-plugin</artifactId> 
        <version>2.16</version> 
        <configuration> 
         <!-- note: use single JVM to append to JaCoCo coverage file --> 
         <forkCount>1</forkCount> 
         <reuseForks>false</reuseForks> 
         <argLine>-XX:MaxPermSize=256m </argLine> 
         <systemPropertyVariables> 
          <jacoco-agent.destfile>target/jacoco.exec</jacoco-agent.destfile> 
         </systemPropertyVariables> 
        </configuration> 
       </plugin> 

       <!-- JaCoCo (Sonar) plugin config--> 
       <plugin> 
        <groupId>org.jacoco</groupId> 
        <artifactId>jacoco-maven-plugin</artifactId> 
        <version>0.6.3.201306030806</version> 
        <executions> 
         <execution> 
          <id>instrument</id> 
          <phase>process-classes</phase> 
          <goals> 
           <goal>instrument</goal> 
          </goals> 
         </execution> 
         <execution> 
          <id>restore</id> 
          <phase>site</phase> 
          <goals> 
           <goal>restore-instrumented-classes</goal> 
           <goal>report</goal> 
          </goals> 
         </execution> 
         <execution> 
          <id>check</id> 
          <goals> 
           <goal>check</goal> 
          </goals> 
          <configuration> 
           <rules> 
            <rule> 
             <element>BUNDLE</element> 
             <limits> 
              <limit> 
               <counter>COMPLEXITY</counter> 
               <value>COVEREDRATIO</value> 
               <minimum>0.0</minimum> 
              </limit> 
             </limits> 
            </rule> 
           </rules> 
          </configuration> 
         </execution> 
        </executions> 
        <configuration> 
         <append>true</append> 
        </configuration> 
       </plugin> 
      </plugins> 
     </build> 
    </profile> 

उत्तर

0

है क्लासपाथ या जैकोको एजेंट पर गैर-साधन वाले लोगों के बाद या तो वाद्ययंत्र कक्षाएं पारित की गई थीं। क्लास को टेस्ट क्लासपाथ में जोड़ा नहीं गया था।

दोनों posibilities जाँच जहां कक्षाएं instrumented है, -X ध्वज के साथ चलाने के mvn और परीक्षण निष्पादन के लिए classpath जाँच देखने (classpath तत्वों की और अगर jacoco एजेंट classpath पर है आदेश को देखने के लिए।)

संबंधित मुद्दे