10

में विशिष्ट कक्षाओं के लिए रिपोर्ट पीढ़ी को अनदेखा करना मैं रिपोर्ट पीढ़ी और वाद्ययंत्र (निश्चित रूप से) के लिए कोबर्टूरा प्लगइन का उपयोग कर रहा हूं। यहां समस्या का सामना करना पड़ रहा है:कोबर्टुरा मेवेन प्लगइन

मैं प्लगइन को मेरी परियोजना में विशिष्ट कक्षाओं के लिए रिपोर्ट पीढ़ी को अनदेखा करने में असमर्थ हूं। pom.xml से संबंधित अंश नीचे

पीएफ, मैं टैग की अनदेखी को शामिल किया है, लेकिन वह सिर्फ नजरअंदाज कर दिया कक्षाओं के लिए उपकरण पर ध्यान नहीं देता।

मैं चाहता हूं कि विशिष्ट परियोजनाओं के लिए रिपोर्ट बिल्कुल उत्पन्न न हो।

सबसे पहले, मेवेन और कॉन्बर्टर दोनों के सीमित ज्ञान के कारण, मैं जानना चाहता हूं कि यह संभव है, और यदि हां, तो मुझे pom.xml में किए जाने वाले परिवर्तनों में क्या परिवर्तन हैं।

pom.xml

<report> 
    <!-- other plugins exist but are not important to be listed here I guess --> 
    <plugin> 
     <artifactId>maven-surefire-plugin</artifactId> 
     <configuration> 
      <skipTests>false</skipTests> 
      <systemProperties> 
       <property> 
       <name>net.sourceforge.cobertura.datafile</name> 
       <value>target/cobertura/cobertura.ser</value> 
       </property> 
      </systemProperties> 
     </configuration> 
    </plugin> 
    <!-- The following is the plugin for cobertura, which takes care of integration and report generation--> 
    <plugin> 
     <groupId>org.codehaus.mojo</groupId> 
     <artifactId>cobertura-maven-plugin</artifactId> 
     <configuration> 
      <check> 
       <branchRate>50</branchRate> 
       <lineRate>50</lineRate> 
       <haltOnFailure>true</haltOnFailure> 
       <totalBranchRate>50</totalBranchRate> 
       <totalLineRate>50</totalLineRate> 
       <packageLineRate>50</packageLineRate> 
       <packageBranchRate>50</packageBranchRate> 
      </check> 
      <instrumentation> 
       <ignores> 
        <ignore>deshaw.dportal.alert.*</ignore> 
        <ignore>deshaw.dportal.atc.*</ignore> 
        <ignore>deshaw.dportal.basket.*</ignore> 
        <ignore>deshaw.dportal.fcs.*</ignore> 
        <ignore>deshaw.dportal.event.*</ignore> 
        <ignore>deshaw.dportal.filings.*</ignore> 
        <ignore>deshaw.dportal.glg.*</ignore> 
        <ignore>deshaw.dportal.icp.*</ignore> 
       </ignores> 
      </instrumentation> 
     </configuration> 
    </plugin> 
</report> 

संपादित करें:

यह मेरा निर्देशिका संरचना:

module 
| 
|-apps 
| |-alert 
| | |-src 
| | |-target 
| | |-pom.xml 
| |------------------- 
| |-company 
| | |-src 
| | |-target 
| | |-pom.xml 
|----------------------- 
|-jobs 
| |-job1 
| | |-src 
| | |-target 
| | |-pom.xml 
| |-job2 
| | |-src 
| | |-target 
| | |-pom.xml 

मैं मॉड्यूल/pom.xml में निम्नलिखित की कोशिश की

<instrumentation> 
    <excludes> 
     <exclude>**/apps/*.*</exclude> 
    </excludes> 
</instrumentation> 

मुझे अभी भी अलर्ट और कंपनी निर्देशिका दोनों में उत्पन्न होने वाली रिपोर्ट मिलती है।

शायद रीगेक्स को बाहर करना सही नहीं है?

उत्तर

4

Cobertura Maven प्लगइन बहिष्कार और रिपोर्ट generation.It के लिए अनदेखी सम्मान नहीं करता है उपकरण के लिए ऐसा नहीं करता है हालांकि।

ज्ञात बग रिपोर्ट पर: http://jira.codehaus.org/browse/MCOBERTURA-52

+0

मैं खुद इस मुद्दे को देख रहा हूं। और यह बेहद परेशान है क्योंकि मुझे बहुत सारे कवरेज मिलते हैं जिन्हें अनदेखा नहीं किया जाता है। किसी भी कामकाजी कामकाज? –

+1

अब तक एकमात्र संभावित कामकाज है, जिसमें बच्चे पीओएम में प्लगइन शामिल है, बच्चों के लिए आप रिपोर्ट तैयार करना चाहते हैं। इसके अलावा, ऐसा करने के लिए कोई अन्य व्यवहार्य तरीका AFAIK नहीं है। – Neeraj

+1

यह बग अब हाल ही में कोबर्टुरा मेवेन प्लगइन के संस्करण 2.5.2 में तय किया गया है – Ben

1

उपयोग बहिष्कृत i.o. ध्यान नहीं देता।
यह मैं कैसे Cobertura से विशिष्ट वर्गों को बाहर है:

<plugin> 
<groupId>org.codehaus.mojo</groupId> 
<artifactId>cobertura-maven-plugin</artifactId> 
<version>2.4</version> 
<configuration> 
    <instrumentation> 
     <excludes> 
      <exclude>com/bnpp/ecom/**/*Test.class</exclude> 
      <exclude>com/lrc/web/WicketApplication.class</exclude> 
      <exclude>com/lrc/service/HeartBeatWebServiceMock.class</exclude> 
     </excludes> 
    </instrumentation> 
</configuration> 

greetz,
टिजिन

+0

की कोशिश की है कि too.It बाहर करने के लिए प्रतीत नहीं होता बिल्कुल भी। मेरे द्वारा किए गए परिवर्तनों को शामिल करने के लिए मेरी पोस्ट को अपडेट करना। – Neeraj

+0

क्या आपने प्लगइन के संस्करण को निर्दिष्ट करने का प्रयास किया था? –

+0

नहीं। क्या इससे कोई फर्क पड़ता है? – Neeraj

4

आप कर सकते हैं अपने pom.xml में अपने <build> ब्लॉक करने के लिए <reporting> ब्लॉक से <plugin> ब्लॉक ले जाकर अपने Cobertura रिपोर्ट से exclude कक्षाएं।

3

मैं एक ऐसी ही समस्या थी और एक बहुत ही उपयोगी ट्यूटोरियल पाया: http://www.java-tutorial.ch/software-testing/maven-cobertura

समाधान बहुत जवाब यह है कि पोस्ट rdvdijk के करीब है। प्लगइन जानकारी निर्माण खंड में और रिपोर्टिंग अनुभाग में होना चाहिए। लेकिन जानकारी को बाहर निकालना पोम के निर्माण खंड में रखा जाना चाहिए।

+0

कृपया बाहरी लिंक में पोस्ट की जा रही किसी भी चीज़ के बारे में विस्तृत जानकारी दें। –

0

मैं कोबर्टुरा-मेवेन-प्लगइन संस्करण को 2.6 से 2.4 तक बदलने के बाद परियोजना से * टेस्ट फाइलों को अनदेखा करके उपरोक्त टिप्पणियों में Stjin geukens द्वारा उल्लिखित परियोजना को अनदेखा करके सफलतापूर्वक एक कोबर्टूरा कवरेज रिपोर्ट उत्पन्न कर सकता हूं।

  <plugin> 
       <groupId>org.codehaus.mojo</groupId> 
       <artifactId>cobertura-maven-plugin</artifactId> 
       <version>2.4</version> 
       <configuration> 
        <instrumentation> 
         <excludes> 
          <exclude>com/services/impl/*Test.class</exclude> 
          <exclude>com/exceptions/*Test.class</exclude> 
          <exclude>com/services/*Test.class</exclude> 
          <exclude>com/utils/*Test.class</exclude> 
         </excludes> 
        </instrumentation> 
       </configuration> 
       <executions> 
        <execution> 
         <phase>package</phase> 
         <goals> 
          <goal>cobertura</goal> 
         </goals> 
        </execution> 
       </executions> 
      </plugin> 

पुनश्च::

कृपया नीचे पूरा Maven प्लगइन विवरण मिल मुझे यकीन है कि प्लगइन का 2.6 संस्करण के साथ मुद्दा है क्या नहीं कर रहा हूँ

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