2014-12-04 6 views
19

मैं कोड कवरेज के लिए JaCoCo का उपयोग कर रहा हूं। यूनिट टेस्ट रिपोर्ट जूनिट के साथ बनाई गई हैं और उन्हें सही तरीके से आयात किया जाता है, ताकि इकाई परीक्षण जानकारी ठीक से दिखाया जा सके। समस्या है, मुझे त्रुटि संदेश मिलता है: प्रति परीक्षण कवरेज के बारे में कोई जानकारी नहीं। और कोड कवरेज यूनिट परीक्षण, एकीकरण परीक्षण और समग्र कवरेज के लिए मान 0% दिखाता है। मैं द्विआधारी, स्रोत, परीक्षण आदि जैसे sonar-project.properties में सभी आवश्यक जानकारी की जाँच कीJaCoCo - सोनारक्यूब - प्रति परीक्षण कवरेज के बारे में कोई जानकारी नहीं

मैं उपयोग कर रहा हूँ:
- SonarQube 4.5.1
- SonarRunner 2.4
- MySQL
- JUnit 4.1.1
- जैकोको 0.7.2

jacoco.exec प्रोजेक्ट बेस निर्देशिका में फ़ाइल/लक्ष्य में स्थित है।

आप सोनार-project.properties देख सकते हैं: मेरे दृष्टिकोण से सभी आवश्यक पथ ठीक से सेट हैं। (अर्थात द्विआधारी, स्रोत, परीक्षण)

Comma-separated paths to directories with sources (required) 
sonar.sources=src 

compiled code 
sonar.java.binaries=class 

source code of unit tests 
sonar.tests=test/src 

Comma-separated paths to files with third-party libraries (JAR files in the case of Java) 
sonar.java.libraries=jar 

Language 
sonar.language=java 

Encoding of the source files 
sonar.sourceEncoding=UTF-8 

Additional parameters 
sonar.my.property=value 

Set Project Base 
sonar.projectBaseDir=C:/snapshots/steffen_latest/software/java 

Tells SonarQube to reuse existing reports for unit tests execution and coverage reports 
sonar.dynamicAnalysis=reuseReports 

JUnit path 
sonar.surefire.reportsPath=test/report/junit 

Tells SonarQube where the unit tests execution reports are 
sonar.junit.reportsPath=test/report/junit 

Tells SonarQube that the code coverage tool by unit tests is JaCoCo 
sonar.java.coveragePlugin=jacoco 

Import JaCoCo code coverage report. 
Tells SonarQube where the unit tests code coverage report is 
Unit Tests Coverage 
sonar.jacoco.reportPath=target/jacoco.exec 

Tells SonarQube where the integration tests code coverage report is 
sonar.jacoco.itReportPath=target/it-jacoco.exec 

यह सोनार-धावक से प्रवेश फ़ाइल है:

13:56:05.883 INFO - Sensor SurefireSensor... 
13:56:05.883 INFO - parsing C:\work\snapshots\steffen_latest\software\java\test\report\junit 
13:56:06.149 INFO - Sensor SurefireSensor done: 266 ms 
13:56:06.149 INFO - Sensor JaCoCoItSensor... 
13:56:06.195 INFO - Analysing C:\work\snapshots\steffen_latest\software\java\target\it-jacoco.exec 
13:56:06.726 INFO - **No information about coverage per test**. 
13:56:06.726 INFO - Sensor JaCoCoItSensor done: 577 ms 
13:56:06.726 INFO - Sensor JaCoCoOverallSensor... 
13:56:06.851 INFO - Analysing C:\work\snapshots\steffen_latest\software\java\.sonar\jacoco-overall.exec 
13:56:07.178 INFO - **No information about coverage per test**. 
13:56:07.178 INFO - Sensor JaCoCoOverallSensor done: 452 ms 
13:56:07.178 INFO - Sensor JaCoCoSensor... 
13:56:07.209 INFO - Analysing C:\work\snapshots\steffen_latest\or_base\software\java\target\jacoco.exec 
13:56:07.521 INFO - **No information about coverage per test**. 
13:56:07.521 INFO - Sensor JaCoCoSensor done: 343 ms 
13:56:07.521 INFO - Sensor CPD Sensor (wrapped)... 
13:56:07.521 INFO - JavaCpdEngine is used for java 
13:56:07.521 INFO - Cross-project analysis disabled 
13:56:09.019 INFO - Sensor CPD Sensor (wrapped) done: 1498 ms 
13:56:09.144 INFO - Execute decorators... 
13:56:16.166 INFO - Store results in database 

किसी को भी मुझे एक सलाह क्या समस्या हो सकती है दे सकते हैं? चूंकि मुझे नहीं पता कि समस्या क्या है ... मैं कुछ दिनों से इस मुद्दे पर काम कर रहा हूं और मुझे नहीं पता कि क्या करना है ..

अग्रिम धन्यवाद।

+2

कवरेज प्रति कवरेज कवरेज के शीर्ष पर एक जानकारी है। प्रति परीक्षण कवरेज इस बारे में जानकारी है कि कौन सी परीक्षा में फाइल शामिल है। (जबकि कवरेज केवल आपको सूचित करता है कि परीक्षणों द्वारा कौन सी रेखाएं शामिल की गई हैं)। तो कृपया उस जानकारी के आधार पर अपने प्रश्न को स्पष्ट करें, 'प्रति परीक्षण कवरेज के बारे में कोई जानकारी नहीं।' संदेश केवल हमें सूचित करता है कि आपने प्रत्येक परीक्षण के बीच जैकोको सत्रों को डंप करने के लिए किसी भी श्रोता का उपयोग नहीं किया है। संकेत के लिए धन्यवाद – benzonico

+0

। समस्या यह थी कि हमने प्रत्येक टेस्ट के बीच जैकोको सत्रों को डंप करने के लिए किसी भी श्रोता का उपयोग नहीं किया था। – Stelos10

+1

पोस्ट करने पर कोई मौका आपने इसे कैसे कॉन्फ़िगर किया? मुझे एक ही समस्या है –

उत्तर

2

क्या आपने prepare-agent का उपयोग करने का प्रयास किया है?

mvn clean org.jacoco:jacoco-maven-plugin:prepare-agent install 

इसके अलावा, अगर अपने कवरेज 0% दिखा रहता है, आप this advice पालन करने की आवश्यकता हो सकती है: सुनिश्चित करें कि आपके परियोजना पहले से ही अचूक-Maven-प्लगइन कॉन्फ़िगर करने के लिए argLine का उपयोग करता है

, हो कि argLine बल्कि प्लगइन विन्यास के भाग के रूप से, एक संपत्ति के रूप में परिभाषित "

-3

दो अलग-अलग निर्माण चरणों के लिए निर्माण और विश्लेषण को विभाजित करना सुनिश्चित करें:।

mvn clean install 

mvn sonar:sonar 
0

नीचे दिए गए मेरे मामले में कमांड काम करता है। एक-दूसरे & के बाद> दो आदेशों ऊपर भागो आप SonarQube Client में कोड कवरेज देखेंगे - प्रारंभ SonarQube सर्वर:

mvn clean org.jacoco:jacoco-maven-plugin:0.7.3.201502191951:prepare-agent install 
mvn sonar:sonar 

कोड कवरेज की जाँच करें।

SonarQube Code Coverage

FYI करें : मेरे SonarQube संस्करण - 5.1.2।आप SonarQube Download

0

से नवीनतम संस्करण डाउनलोड कर सकते हैं मैं जुनीट का भी उपयोग करता हूं और मेरे मामले में यह मुद्दा मेरे pom.xml में टेस्टएनजी निर्भरता होने के कारण था। इस अनावश्यक निर्भरता को हटाने के बाद, सब कुछ अपेक्षित के रूप में काम करना शुरू कर दिया।

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