2013-08-19 11 views
8

मैं एंड्रॉइड स्टूडियो के साथ रोबोलेक्ट्रिक काम करना चाहता हूं और इस [प्रश्न] [2] के उत्तरों की समीक्षा करने के बाद [gradle-android-test-plugin] [1] का उपयोग करने का प्रयास कर रहा हूं [2] , लेकिन कोई भाग्य नहीं है।ग्रेडल-एंड्रॉइड-टेस्ट-प्लगइन का उपयोग कैसे करें

  1. मैं एक नया एंड्रॉयड प्रोजेक्ट बनाया है और यह MyApp नाम दिया है।
  2. मैंने रीडमे के "उपयोग" खंड में सभी निर्देशों का पालन किया।
  3. मैं अभी तक अपने नए प्रोजेक्ट में परीक्षण करने के लिए किसी भी कोड नहीं था, इसलिए मैं
gradle-android-test-plugin/example/src/test/java/com/example 

से (`RobolectricGradleTestRunner` सहित) कक्षाओं की नकल की और

gradle-android-test-plugin/example/src/main/java/com/example 

मेरे नए MyApp प्रोजेक्ट में संबंधित फ़ाइल पथों में निर्देशिकाएं।

मैंने कभी एंड्रॉइड के लिए यूनिट परीक्षण लागू नहीं किया है और मुझे नहीं पता कि आगे क्या करना है। प्लगइन की मूल निर्देशिका में मैंने ./gradlew install सफलतापूर्वक भाग लिया, लेकिन मेरी नई परियोजना की मूल निर्देशिका में ऐसा करने से कुछ भी नहीं हुआ। यह इस शिकायत फेंकता है:

Task 'install' is ambiguous in root project 'MyApp'. Candidates are: 'installDebug', 'installTest'. 

मैं Gradle से परिचित, Gradle पर ही एक पाठ्यपुस्तक पढ़ने का इतना कम नहीं कर रहा हूँ, मैं कैसे इस समस्या को हल करने के लिए यकीन नहीं है।

Could not determine the dependencies of task ':MyApp:testDebug'. 

एंड्रॉयड स्टूडियो मेरी खोजने कोई समस्या आती जा करने के लिए प्रतीत नहीं होता:

अगर मैं AndroidManifest.xml युक्त MyApp निर्देशिका दर्ज करें और निर्माण और परीक्षण चलाने के लिए ../gradlew clean check कोशिश, मैं इस त्रुटि मिलती है निर्भरता। क्या कोई मुझे मेरे परीक्षण चलाने की दिशा में इंगित कर सकता है, कृपया? मुझे लगता है कि यह एक साधारण टर्मिनल कमांड या प्लगइन के रीडमे में उल्लेख नहीं किया गया था। चीयर्स!

संपादित करें:

यहाँ मेरी build.gradle है। मुझे पता है कि यह प्लगइन के साथ शामिल उदाहरण प्रोजेक्ट की संरचनात्मक रूप से समान नहीं है, लेकिन उस संरचना ने मुझे समान त्रुटियां दीं।

buildscript { 
    repositories { 
     mavenCentral() 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:0.5.+' 
     classpath 'com.squareup.gradle:gradle-android-test-plugin:0.9.+' 
    } 
} 

apply plugin: 'android' 
apply plugin: 'android-test' 

repositories { 
    mavenCentral() 
} 

android { 
    compileSdkVersion 18 
    buildToolsVersion "18.0.1" 

    defaultConfig { 
     minSdkVersion 11 
     targetSdkVersion 18 
    } 
} 

dependencies { 
    compile 'com.android.support:support-v4:18.0.0' 

    testCompile 'junit:junit:4.11' 
    testCompile 'org.robolectric:robolectric:2.1.+' 
    testCompile 'com.squareup:fest-android:1.0.+' 
} 

EDIT2: तथ्य यह है कि मैं गलत आदेश (के रूप में रवींद्र के जवाब में संकेत दिया) जारी करने गया था, मैं भी महसूस करने के लिए Gradle की मेरी संस्करण भी नया था (के रूप में जेक की टिप्पणी बताते हैं) में विफल रहा है इसके अलावा।

+7

उत्तर: कार्य की निर्भरता निर्धारित नहीं कर सका ': MyApp: testDebug'। Gradle 1.7 अभी तक समर्थित नहीं है। –

+1

... और इस प्रकार आप रैपर का उपयोग 1.6 बनाते हैं: http://www.gradle.org/docs/current/userguide/gradle_wrapper.html, फिर रनल ग्रेपर रैपर (NOT ./gradlew wrapper) – CjS

+0

यह समस्या है [github पर ट्रैक किया गया] (https://github.com/JakeWharton/gradle-android-test-plugin/issues/3) और एक फिक्स बहुत जल्द बाहर जा रहा है। जब तक आप इसे पढ़ रहे हों, यह शायद पहले से ही उपलब्ध है। MyApp:: ' 'कार्य की निर्भरता निर्धारित नहीं कर सका: testDebug'.' अगर मैं' कोशिश Gradle tests', तो यह है – gMale

उत्तर

2

कोई इंस्टॉल कार्य नहीं है लेकिन इंस्टॉल के साथ प्रीफ़िक्स किए गए दो कार्य हैं। आपको पूरा कार्य नाम या कम से कम पर्याप्त रूप से पर्याप्त जानकारी प्रदान करना है ताकि आप यह पता लगा सकें कि आप किसके बारे में बात कर रहे हैं (उदा।, Installd, आईडी, या पूर्ण बात installDebug काम करेंगे)

https://github.com/square/gradle-android-test-plugin/issues/6#issuecomment-22881923

+3

क्या मेरा 'build.gradle' तब पूरा नहीं हुआ है? आपकी मदद के लिए धन्यवाद, अब मैं समझता हूं कि './gradlew इंस्टॉल' प्लगइन की मूल निर्देशिका में' build.gradle' को संदर्भित करता है, लेकिन "installDebug" कहां से आता है? जब मैं 'ग्रेडल टेस्ट डिबग' की कोशिश करता हूं, तो मुझे अभी भी परिचित 'कार्य की निर्भरता निर्धारित नहीं कर सका': MyApp: testDebug '। – artburkart

2
उपलब्ध कार्यों की सूची के लिए

परीक्षण

gradle tests 
+1

अगर मैं कोशिश 'Gradle tasks' या' Gradle test', तो मैं निम्नलिखित मिल मुझे क्या मिलता है: 'कार्य' परीक्षण 'परियोजना में नहीं मिला': MyApp '। कुछ उम्मीदवार हैं: 'कार्य', 'test'.' – artburkart

+0

आपके build.gradle का उपयोग करने का प्रयास किया, Gradle 1.6 पर ठीक काम करता है। – robotoaster

0

प्लगइन के कोड से के लिए मुख्य प्रोजेक्ट फ़ोल्डर

gradle tasks 

से चलाने के लिए, ऐसा लगता है जैसे आप ./gradlew test आदेश चलाना चाहिए परीक्षण

निष्पादित करने के लिए के लिए
+0

हाँ, मैंने प्लगइन के रीडमे में भी इसका उल्लेख देखा। लेकिन रूट निर्देशिका से ** '/। Gradlew test' ** या' Android/anifest.xml' युक्त निर्देशिका से ** '// gradlew test' ** परिणाम: 'कार्य की निर्भरता निर्धारित नहीं कर सका' : MyApp: testDebug''' – artburkart

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