मेरे पास एक build.gradle फ़ाइल है जो सफलतापूर्वक यूनिट और एकीकरण परीक्षण को अलग से या एक साथ चला सकती है (जैसे कमांड परीक्षण एकीकरण के साथ टेस्ट एक साथ)। दोनों जूनिट का उपयोग करते हैं, मैं ग्रैडल 3 का उपयोग कर रहा हूं, और यह एक एंड्रॉइड प्रोजेक्ट नहीं है। सफलता के बारे में एक रिपोर्ट अलग-अलग निर्देशिकाओं में प्रत्येक के लिए बनाई जाती है। मैं इकाई परीक्षण कवरेज ग्रेडल परीक्षण jacoco के साथ परीक्षण कवरेज सफलतापूर्वक जेकोको रिपोर्ट भी उत्पन्न कर सकता हूं। मैं ग्रेडिंग एकीकरण का उपयोग करके अन्यथा-काम कर रहे एकीकरण परीक्षणों के लिए कवरेज रिपोर्ट प्राप्त करने में असमर्थ हूं। टेस्ट जैकोको, हालांकि परीक्षण सफलतापूर्वक चलाया जाता है और एकीकरण Test.exec फ़ाइल उत्पन्न होती है।जैकोको प्लगइन के साथ build.gradle एकीकरण परीक्षणों के लिए कवरेज रिपोर्ट उत्पन्न नहीं करता है
अधिक स्पष्ट होने के लिए, मुझे बिल्ड/रिपोर्ट/index.html में इकाई परीक्षण कवरेज रिपोर्ट मिलती है, और निर्माण/रिपोर्ट/परीक्षण/index.html में जूनिट रिपोर्ट और बिल्ड/रिपोर्ट/एकीकरण टेस्ट/index.html। एक बिल्ड/रिपोर्ट/जैकोको निर्देशिका बनाई गई है लेकिन इसमें केवल एक खाली "परीक्षण" निर्देशिका है। बिल्ड/इसमें एक जैकोको/निर्देशिका भी शामिल है, जिसमें .exec फ़ाइलें और क्लासपाथडंप दोनों शामिल हैं।
यहाँ मेरी संक्षिप्त build.gradle
apply plugin: 'java'
apply plugin: 'application'
apply plugin: 'jacoco'
repositories {
mavenCentral()
}
sourceSets {
main {
java {
srcDirs = ['src/java']
}
test {
java {
srcDirs = ['test/java']
}
}
resources {
srcDirs = ['src/java', 'conf', 'resource']
}
}
integrationTest {
java {
compileClasspath += main.output + test.output
runtimeClasspath += main.output + test.output
srcDir file('integration_test/java')
}
}
}
test {
jacoco {
append = false
destinationFile = file("$buildDir/jacoco/jacocoTest.exec")
classDumpFile = file("$buildDir/jacoco/classpathdumps")
}
}
configurations {
integrationTestCompile.extendsFrom testCompile
integrationTestRuntime.extendsFrom testRuntime
}
/* SNIP */
task integrationTest(type: Test) {
dependsOn startserver
testClassesDir = sourceSets.integrationTest.output.classesDir
classpath = sourceSets.integrationTest.runtimeClasspath
}
integrationTest.finalizedBy stopserver
check.dependsOn integrationTest
integrationTest.mustRunAfter test
tasks.withType(Test) {
reports.html.destination = file("${reporting.baseDir}/${name}")
}
jacoco {
toolVersion = "0.7.6.201602180812"
}
jacocoTestReport {
reports {
xml.enabled false
csv.enabled false
html.destination "$buildDir/reports"
}
}
मैं मौजूदा, दो रिपोर्टों विलय JUnit एकीकरण परीक्षण रिपोर्ट मैं पहले से ही है पैदा करने, और Maven और चींटी के बारे में इसी तरह की लेकिन अंततः बेकार सवाल के बारे में सवाल देखा है है। मुझे मिली सबसे नज़दीकी चीज this थी, लेकिन इससे कुछ भी मैंने अपनाने की कोशिश नहीं की है। ऐसा लगता है कि similar question है, लेकिन उनके निर्माण के कम से कम .gradle के साथ, और एकमात्र उत्तर 0-अप-वोट है, पिछले लिंक में प्रश्न के लेखक द्वारा स्वीकार्य प्रतिक्रिया नहीं है।
के बाद से यह पहले से ही बहुत लंबा है, मैं भी एक से अधिक यहाँ है ज्यादा प्रदान करने के लिए नहीं करना चाहता था, लेकिन मैं और अधिक प्रदान करने के लिए अगर कुछ भी स्पष्ट नहीं है खुश हूँ।
मैं सत्यापित किया है कि के रूप में एकीकरण परीक्षणों अधिलेखन इकाई परीक्षण के परिणाम के रूप में हो रहा है मूर्ख कुछ भी नहीं - नियमित रूप से परीक्षण के बिना एकीकरण परीक्षण और jacoco चल भी अनुरूप फ़ाइलों का उत्पादन नहीं करता।
क्या एकीकरण परीक्षण कवरेज प्राप्त करने के लिए मैं कुछ भी कर सकता हूं?
[प्रथम संपादित करें] मैं एक छोटे से Github रेपो कि सब कुछ इस समस्या को पुन: पेश करने की जरूरत है बना लिया है: https://github.com/micseydel-tile/gradle-jacoco-integration-test