2012-10-26 30 views
6

का उपयोग कर मैं एंटर का उपयोग कर RHEL6 मशीन पर सोनार जावा कोड विश्लेषण चला रहा हूं। एकीकरण परीक्षण विश्लेषण के लिए मैं सोनार के लिए JaCoCo प्लगइन का उपयोग कर रहा हूँ। मेरे पास लाइब्रेरी क्लास पथ में प्लगइन है। जब मैं अपने सेलेनियम परीक्षण चलाता हूं, तो एक "jacoco.exec" फ़ाइल उत्पन्न होती है (10 परीक्षणों के लिए लगभग 1 एमबी)। मैं फिर अपने सोनार चींटी लक्ष्य में जैकोको प्लगइन को सक्रिय करता हूं और इसे सोनार में आयात करता हूं। सोनार विश्लेषण लॉग का कहना है कि जैकोको फ़ाइल का विश्लेषण किया गया है (लगभग 5000ms लिया गया)। हालांकि, मेरा सोनार आईटी विजेट 0% कोड कवरेज प्रदर्शित करता है। मुझे कोबर्टुरा का उपयोग करके यूनिट टेस्ट कोड कवरेज सफलतापूर्वक मिला है।सोनार आईटी जैकोको givess 0% कोड कवरेज

मेरा परीक्षण लक्ष्य:

<taskdef uri="antlib:org.jacoco.ant" resource="org/jacoco/ant/antlib.xml"> 
     <classpath path="${buildHome}/libs/jacocoant.jar"/> 
    </taskdef> 

    <jacoco:coverage xmlns:jacoco="antlib:org.jacoco.ant"> 
     <junit fork="yes" failureproperty="true" forkmode="once" maxmemory="1024m"> 
      <formatter type="xml" /> 
      <classpath refid="buildClasspath" /> 

      <test name="${testName}" todir="${testLogs}" if="testcase" /> 
      <batchtest haltonerror="false" todir="${testLogs}"> 
       <fileset dir="${SeleniumScripts"> 
        <include name="**/*.java" /> 
       </fileset> 
      </batchtest> 
     </junit> 
    </jacoco:coverage> 

मेरे सोनार चींटी लक्ष्य:

... 
<property name="sonar.sources" value="${srcCode" /> 

    <property name="sonar.tests" value="${testCode}" /> 

    <property name="sonar.binaries" value="${srcAndTestBinaries}" /> 

    <property name="sonar.dynamicAnalysis" value="reuseReports"/> 
    <property name="sonar.surefire.reportsPath" value="${reportsPath}" /> 
    <property name="sonar.core.codeCoveragePlugin" value="jacoco" /> 
    <property name="sonar.jacoco.itReportPath" value="${jacocoCoveragePath}/jacoco.exec" /> 

    <!-- Add the Sonar task --> 
    <taskdef uri="antlib:org.sonar.ant" resource="org/sonar/ant/antlib.xml"> 
     <classpath path="${antLibPath}/sonar-ant-task-1.4.jar" /> 
    </taskdef> 

    <sonar:sonar key="projectKey" version="1.0" xmlns:sonar="antlib:org.sonar.ant"/> 

मैं केवल "प्रासंगिक" सामान शामिल करने के लिए कोशिश की है। मुझे यकीन नहीं है कि "जैकोको: कवरेज" तत्व सेलेनियम परीक्षणों के लिए कोरेंट है, लेकिन निष्पादन लॉग में यह "एजेंट" का उल्लेख करता है, इसलिए मुझे लगता है कि जावा वीएम पर भी प्रॉक्सी के रूप में एजेंट का उपयोग किया जाता है।

मैं अटक कर रहा हूँ, कृपया मदद :)

अपडेट किया गया यहाँ सोनार उत्पादन का हिस्सा है:

[sonar:sonar] 08:36:15.619 INFO p.PhasesTimeProfiler - Sensor JaCoCoItSensor... 
[sonar:sonar] 08:36:15.623 INFO o.s.p.j.JaCoCoPlugin - Analysing [file path omitted]\jacoco.exec 
[sonar:sonar] 08:36:17.272 INFO p.PhasesTimeProfiler - Sensor JaCoCoItSensor done:  1653 ms 

उत्तर

0

मैं इसे गायब हो सकता है, लेकिन मैं नहीं दिख रहा है जहां परिणाम कहां स्टोर करने के लिए एजेंट को बता रहे हैं।

मेरी चींटी स्क्रिप्ट में, मैं इस मिल गया है:

<jacoco:coverage enabled="${my.coverage.enabled}" destfile="${test.log.dir}/jacoco.exec"> 

लपेटकर JUnit कार्य। destfile="${jacocoCoveragePath}/jacoco.exec" को परिभाषित करने का प्रयास करें और देखें कि क्या यह ठीक करता है या नहीं।

+0

गंतव्य उस फ़ोल्डर में प्रतीत होता है जहां चींटी निष्पादित की जाती है। Jacoco.exec फ़ाइल केवल ठीक है, लगभग 1 एमबी आकार में उत्पन्न होता है। – user1340582

+0

फ़ाइल जेनरेट की जा सकती है, लेकिन क्या यह उस स्थान पर उत्पन्न किया जा रहा है जहां सोनार इसकी तलाश में है? आप सोनार को jacoco.exec फ़ाइल को $ {jacocoCoveragePath} में देखने के लिए कह रहे हैं (संपत्ति sonar.jacoco.itReportPath देखें)। क्या वह फाइल वास्तव में स्थित है? –

+0

यह सही है क्योंकि मैंने सत्यापित किया है कि मेरी cobertura.xml फ़ाइल भी जेनरेट की गई है, और मैं इसे उस स्थान से भी लाता हूं। कोबर्टुरा रिपोर्ट ठीक आयात की जाती है। – user1340582

0

हाय मैं जैकोको का उपयोग करके स्वीकृति परीक्षण के लिए कोड कवरेज उत्पन्न करने की प्रक्रिया में भी हूं। यूनिट टेस्ट के लिए मैं कोबर्टुरा का उपयोग कर रहा हूं और मैं सोनार डैशबोर्ड पर कोड कवरेज और यूनिट टेस्ट रिपोर्ट देख सकता हूं।

अब स्वीकृति परीक्षण के लिए कोड कवरगा प्राप्त करने के लिए आ रहा है। हम सेलेनियम का उपयोग कर स्वीकृति परीक्षण चलाते हैं। मैं सोच रहा हूं कि जेकोको स्वीकृति परीक्षण के लिए कोड कवरेज कैसे उत्पन्न करता है जो सेलेनियम का उपयोग करके चलाया जाता है।

मेरे अनुमान से मुझे लगता है कि आपको jacocoant.jar के बजाय jacocoagent.jar के लिए पथ का उल्लेख करना चाहिए। मैं भी गलत हो सकता था। यदि आपको सेलेनियम पर चलने वाले परीक्षण के लिए कोड कवरेज उत्पन्न करने का कोई तरीका मिला है, तो आप समाधान