एंड्रॉइड में जैकोको का उपयोग करने वाले एंड्रॉइड में मेरे रोबोलेक्ट्रिक परीक्षणों पर कोड कवरेज प्राप्त करने का प्रयास करना, लेकिन रिपोर्ट बनाने के दौरान यह मेरे रोबोलेक्ट्रिक परीक्षणों को स्वीकार करने से इंकार कर देता है।एंड्रॉइड - जैकोको कोड कवरेज रोबोलेक्ट्रिक परीक्षणों को अनदेखा करता है
मेरे jacoco.gradle फ़ाइल इस प्रकार है:
apply plugin: 'jacoco'
jacoco {
toolVersion = "0.7.6.201602180812"
}
project.afterEvaluate {
android.applicationVariants.all { variant ->
def name = variant.name
def testTaskName = "test${name.capitalize()}UnitTest"
tasks.create(name: "${testTaskName}Coverage", type: JacocoReport, dependsOn: "$testTaskName") {
group = "Reporting"
description = "Generate Jacoco coverage reports for the ${name.capitalize()} build."
classDirectories = fileTree(
dir: "${project.buildDir}/intermediates/classes/${name}",
excludes: ['**/R.class',
'**/R$*.class',
'**/*$ViewInjector*.*',
'**/*$ViewBinder*.*',
'**/BuildConfig.*',
'**/Manifest*.*']
)
sourceDirectories = files(['src/main/java'].plus(android.sourceSets[name].java.srcDirs))
executionData = files("${project.buildDir}/jacoco/${testTaskName}.exec")
reports {
xml.enabled = true
html.enabled = true
}
}
}
}
इस सेटअप मैं कवरेज रिपोर्ट प्राप्त कर सकते, लेकिन मैं "src/परीक्षण/जावा" में Robolectric परीक्षण होने के बावजूद 0% कवरेज के साथ
।
मैं उस फ़ाइल के लिए निम्न कोड में जोड़ देते हैं तो:
Error:No such property: includeNoLocationClasses for class: org.gradle.testing.jacoco.plugins.JacocoTaskExtension_Decorated
मुझे पता है कि मैं करने के लिए Gradle 2.13 की आवश्यकता है:
android {
testOptions {
unitTests.all {
jacoco {
includeNoLocationClasses = true
}
}
}
}
मैं निम्नलिखित त्रुटि मिलती है जब Gradle समन्वयन करने का प्रयास इसका उपयोग नॉनोकोकेशन क्लासेस वैल्यू में शामिल है ताकि गद्दे- wrapper.properties में मेरे पास निम्नलिखित हो:
#Wed Apr 10 15:27:10 PDT 2013
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions-snapshots/gradle-2.13-20160228000026+0000-all.zip
मैं बहुत कुछ मैं Gradle 2.13 चला रहा हूँ एंड्रॉयड प्लगइन संस्करण के साथ 1.5
मेरी क्षुधा में Gradle फ़ाइल मैं निम्नलिखित है हूँ:
//...
apply from: 'jacoco.gradle'
//..
testOptions {
unitTests.returnDefaultValues = true
}
//...
debug {
testCoverageEnabled true
}
और आदेश मैं कवरेज को चलाने के लिए उपयोग करते हैं:
./gradlew createDebugCoverageReport
तो मुझे आश्चर्य है कि मुझे सही ग्रैडल संस्करण का उपयोग करने के बावजूद शामिल नहीं होना चाहिए नोलोकेशन क्लासेस त्रुटि? और उसके बाहर शायद मैं कुछ गलत कर रहा हूं जहां जैकोको src/test.java में रोबोलेक्ट्रिक परीक्षण नहीं उठा रहा है?
मैं इस कोड है कि देखा उठाई आवरण Gradle को अब पदावनत किया गया है (Gradle-android-प्लगइन 3.x में): एंड्रॉयड { testOptions { unitTests.all { jacoco { includeNoLocationClasses = सच } } } } – Alix
डोनल, एक छोटे से मदद करते हैं। जबकि मैं कॉन्फ़िगर निष्पादित करने का प्रयास कर रहा हूं, मैंने उल्लेख किया है कि मुझे मिल रहा है। ** "त्रुटि: रूट प्रोजेक्ट 'MyProject' प्रकार org.gradle.api.Project के लिए अज्ञात संपत्ति 'एंड्रॉइड' नहीं मिल सका।" ** कोई विचार क्यों !! – CoDe
क्षमा करें @CoDe मुझे याद नहीं है, और जिस कोड के लिए मैं काम कर रहा था उसे ढंक दिया गया है। अगर मुझे याद है तो मैं आपको बता दूंगा। –