2016-02-07 20 views
10

में प्रत्येक बिल्ड से पहले यूनिट परीक्षण चलाना मैं प्रत्येक डीबग या रिलीज बिल्ड से पहले अपने सभी यूनिट परीक्षण चलाने के लिए एक एंड्रॉइड प्रोजेक्ट में build.gradle कैसे कॉन्फ़िगर कर सकता हूं? मुझे पता है कि मैं dependsOn के साथ कार्य निर्भरता सेट कर सकता हूं, लेकिन मैं इकाई परीक्षण कार्य के लिए इसे कैसे निर्दिष्ट कर सकता हूं? मैं अपनी परियोजना के प्रत्येक (एंड्रॉइड और सादे जावा) मॉड्यूल के लिए ऐसा करना चाहता हूं, क्या यह संभव है?ग्रैडल

उत्तर

10

क्या आपके पास केवल यूनिट परीक्षण चलाने के लिए एक विशेष कार्य है? या आप इसे सरल test (या अधिक आम तौर पर testDebug और testRelease) के रूप में चलाने के लिए स्वतंत्र हैं? मान लीजिए, आप testDebug या testRelease चलाने के लिए हर बार assembleDebug या assembleRelease कार्य को कॉल करना चाहते हैं। फिर, जैसा कि आपने नोट किया है, आप dependsOn कार्य संपत्ति का उपयोग कर सकते हैं। उदाहरण के लिए इस तरह से:

assembleDebug.dependsOn testDebug 
assembleRelease.dependsOn testRelease 

यह विन्यास, जहां इसकी जरूरत (परियोजना के हर मॉड्यूल में) हर build.gradle स्क्रिप्ट में जोड़ा जाना चाहिए। आप परीक्षण tasksm की एक संख्या है, तो आप कार्य निर्भरता इस तरह से सेट कर सकते हैं:

tasks.assembleRelease.dependsOn { 
    project.tasks.findAll { task -> 
     task.name.startsWith('testRelease') 
    } 
} 

ज़रूर, तो आप इस जड़ जड़ build.gradle लिपि में निर्भरता, स्थापित करने के लिए allprojects या subprojects का उपयोग करके की कोशिश कर सकते हैं (आप कर सकते हैं इसके बारे में here पढ़ें), लेकिन आपको रूट स्क्रिप्ट में android प्लगइन भी लागू करना होगा, अन्यथा कार्य नहीं मिलेगा।

+2

मैं दोनों Android और सादे जावा मॉड्यूल के साथ एक परियोजना है। मेरे पास अभी केवल सरल जुनीट परीक्षण हैं। मेरे सादे जावा मॉड्यूल में सबकुछ ठीक से काम करता है, जो कि ग्रिड फ़ाइल के अंत में 'jar.dependsOn test' के साथ ठीक काम करता है (यदि कोई परीक्षण विफल रहता है, तो निर्माण बंद हो जाता है)। मेरे एंड्रॉइड मॉड्यूल में, 'assembleDebug.dependsOn testDebug' के साथ, मुझे BuildType_Decorated' पर त्रुटि 'प्रॉपर्टी नहीं मिली' testDebug 'त्रुटि मिलती है। मुझे यह लाइन कहां रखना चाहिए? धन्यवाद! – manfcas

1

रन/डीबग कॉन्फ़िगरेशन पर जाएं, और अपनी एप्लिकेशन कॉन्फ़िगरेशन का चयन करें। दाएं पैनल के निचले हिस्से में, लॉन्च से पहले: + बटन पर क्लिक करें, और दूसरा कॉन्फ़िगरेशन चलाएं चुनें। वहां, अपने परीक्षण चलाने के लिए कॉन्फ़िगरेशन का चयन करें।

लॉन्च से पहले अपने परीक्षण केस कमांड को चलाने के लिए सेट करें। enter image description here

enter image description here

बाकी

पूर्व Gradle कार्य के लिए उल्लेख here

+0

धन्यवाद, मुझे इस विकल्प के बारे में पता नहीं था! इस तरह, हालांकि, कॉन्फ़िगरेशन 'build.gradle' फ़ाइलों में शामिल नहीं है, और इसलिए VCS के माध्यम से साझा नहीं किया जाता है। मैं इसे अपनी सभी टीमों के साथ साझा करना चाहता हूं। – manfcas

+0

आप अपने README.md फ़ाइल में चरणों को अपडेट कर सकते हैं, इसके लिए आप अपनी आईडीई सेटिंग निर्यात कर सकते हैं और अपनी टीम (फ़ाइल> निर्यात सेटिंग्स) के साथ साझा कर सकते हैं। –

+0

ठीक है, लेकिन अगर मैं सीआई सर्वर पर निर्माण करता हूं तो मुझे अभी भी वही समस्या है। – manfcas