2013-05-19 4 views
24

मैं अपने परीक्षण के लिए और Gradle Dependency Management Basics पढ़ने के बाद मैं हालांकि मैं सिर्फ testCompile कॉल मेरी निर्भरता घोषणाओं को इस तरह जोड़ सकते हैं निर्भरता निर्दिष्ट करना चाहते हैं:निर्दिष्ट परीक्षण निर्भरता

dependencies { 
    compile group: 'com.squareup.dagger', name: 'dagger', version: '1.0.0' 


    testCompile group: 'junit', name: 'junit', version: '4.11' 
    testCompile group: 'com.squareup', name: 'fest-android', version: '1.0.1' 
} 

लेकिन यह , इस त्रुटि संदेश में विफल रहता है:

> Could not find method testCompile() for arguments [{group=junit, name=junit, version=4.11}] on project ':simstatus'. 

क्या मुझे यहां कुछ याद आ रही है?

(Full gradle build file for reference)

उत्तर

37

Android बिल्ड सिस्टम मानक Gradle जावा प्लगइन का उपयोग नहीं करता है।

Its documentation का कहना है:

जैसा कि पहले उल्लेख, मुख्य sourceSet के बगल में androidTest sourceSet, src में डिफ़ॉल्ट रूप से स्थित है/androidTest/

साथ ही, sourceSet अपने स्वयं के लिए विन्यस्त किया जा सकता निर्भरता। डिफ़ॉल्ट, आवेदन और अपने स्वयं के निर्भरता द्वारा परीक्षण ऐप classpath में जुड़ जाते हैं, लेकिन इस

dependencies { 
    androidTestCompile 'com.google.guava:guava:11.0.2' 
} 
साथ बढ़ाया जा सकता है
+9

यह सही है। हम स्थानीय जुनीट परीक्षणों के लिए "परीक्षण" (स्रोत सेट या निर्भरता स्कोप के रूप में) रख रहे हैं (उदाहरण के लिए रोबोलेक्ट्रिक के साथ) –

+0

@Xav: एंड्रॉइड के लिए ग्रैडल उपयोग स्काइरकेट धन्यवाद लगता है। इसके लिए धन्यवाद (मैं ग्रेडल द्वारा ग्रहण करने के लिए मेवेन का इंतजार नहीं कर सकता), और एंड्रॉइड एसडीके टेक लीड को स्टैक ओवरव्लो पर सवालों के जवाब देने के लिए अच्छा लगा! –

+0

मुझे इस भाग को दस्तावेज में याद आया। बहुत बहुत धन्यवाद, @ जेबीनिज़ेट। – passy

2

बस इस सवाल पूरी तरह से जवाब बनाने के लिए यह है कि क्या इस मुद्दे को हल करने की जरूरत है है । के बाद से JUnit स्थानीय परीक्षण और अमरूद के लिए तलाश है androidTest के लिए एंड्रॉयड डीएसएल इस को शामिल करना चाहिए चाहता था हो सकता है:

android { 
    : 
    sourceSets { 
     main { 
      manifest.srcFile 'AndroidManifest.xml' 
      java.srcDirs = ['src/main/java'] 
      res.srcDirs = ['res'] 
      assets.srcDirs = ['assets'] 
       : 
     } 
     test { 
      java.srcDirs = ['src/test/java'] 
      resources.srcDirs = ['src/test/resources'] 
       : 
     } 
     androidTest.setRoot('tests') 
    } 
    : 
} 

: अन्य बयान है कि आप की जरूरत का मतलब है। कृपया यह भी ध्यान दें कि फ़ोल्डर्स उपरोक्त लोगों की तुलना में अन्य हो सकते हैं।

+0

अन्य टिप्पणियां पढ़ने से ये डिफ़ॉल्ट हैं, हालांकि वे नहीं हैं? – RichieHH

+0

हां, या कम से कम वे होना चाहिए। परीक्षण के लिए निर्भरता जोड़ना इनके बिना संभव है। कम से कम मेरे लिए। और यही सवाल था। – javabeangrinder

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