मैंने अपनी परियोजना को बहु-मंच बनने के लिए संशोधित किया है।ग्रेड: मॉड्यूल निर्भरता से परीक्षण कैसे चलाएं?
पिछला राज्य: एक build.gradle के साथ केवल एक मॉड्यूल (प्रोजेक्ट)। सभी परीक्षण परीक्षण फ़ोल्डर में थे और जब मैं gradlew testDebug
चलाता हूं तो मेरे सभी 500 परीक्षण चल रहे थे।
नए राज्य: मैं एक मुख्य Gradle परियोजना जो 3 मॉड्यूल
- कोर पकड़े
- androidversion
- rasberryPiVersion
इनमें से प्रत्येक लेकिन कुछ नहीं करता है मॉड्यूल में इसकी खुद की ग्रेडल फ़ाइल है लेकिन केवल एंड्रॉइड और रासबेरीपी मॉड्यूल बनाया जा सकता है। उनकी निर्भरताओं में (उनके संबंधित build.gradle फ़ाइल में), वे "कोर" मॉड्यूल के खिलाफ संकलित करते हैं। इस तरह:
dependencies {
compile project(':clapcore')
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.google.android:android:4.1.1.4'
}
मेरे सभी 500 परीक्षण अब मूल में हैं। तो जब मैं एंड्रॉइड मॉड्यूल पर gradlew clean assembleDebug testDebug
करता हूं, तो कोई परीक्षण नहीं पता चला है और परीक्षण-परिणाम का फ़ोल्डर खाली है।
मैं सीधे कोर मॉड्यूल पर testDebug
आदेश भागने की कोशिश की, लेकिन जब से यह अपने आप में निर्माण नहीं है, मैं त्रुटि प्राप्त:
FAILURE: Build failed with an exception.
* What went wrong:
Task 'testDebug' not found in project ':core'.
तो मेरे सवाल है: वहाँ में एक रास्ता है, "मॉड्यूल निर्भरता (कोर) में मौजूद सभी परीक्षणों को चलाने के लिए" testDebug "कमांड को बताने के लिए धीरे-धीरे?
मैं भी एंड्रॉयड मॉड्यूल की निर्भरता में एक testCompile जोड़ने की कोशिश की है, लेकिन यह does not काम, इस तरह:
dependencies {
compile project(':clapcore')
testCompile project(':clapcore')
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.google.android:android:4.1.1.4'
}
धन्यवाद!
संपादित मैं ने पाया है कि मैं कोर पर आदेश gradlew build
कर सकते हैं और यह 'कोर' मॉड्यूल में परीक्षण चलेंगे। लेकिन अगर यह संभव हो तो मैं इन परीक्षणों को "कैस्केड" द्वारा चलाने का एक तरीका चाहूंगा।
* संपादित 2 * मैं ने पाया है कि मैं 'एंड्रॉयड' मॉड्यूल पर कमांड gradlew buildNeeded
कर सकते हैं और यह एंड्रॉयड मॉड्यूल और कोर के लिए एक निर्माण करेंगे। दुर्भाग्य से, यह केवल रिलीज में निर्माण! अगर कोई मुझे इस फ़ंक्शन का उपयोग करने का तरीका बता सकता है लेकिन डीबग में, यह आश्चर्यजनक होगा। मुझे इसे डीबग में करने की ज़रूरत है क्योंकि रिहाई ने संस्करण को बदलने, गिट, पुश इत्यादि के लिए प्रतिबद्ध कई और काम शुरू किए हैं ... यह केवल रात के निर्माण के लिए है, इसलिए इसे डीबग में होना चाहिए।