Robolectric टेस्ट चलने के दौरान Android रनटाइम आर्टिफ़ैक्ट डाउनलोड कर सकता है। बिल्ड टूल का प्रोजेक्ट की सामान्य निर्भरताएँ सफलतापूर्वक हल कर लेना यह सिद्ध नहीं करता कि टेस्ट के समय का यह डाउनलोड वही प्रॉक्सी इस्तेमाल करता है।

Robolectric 4.9.1 और उसके बाद के संस्करण उस डाउनलोडर के लिए ये सिस्टम प्रॉपर्टी दस्तावेज़ित करते हैं:

robolectric.dependency.proxy.host=proxy.example
robolectric.dependency.proxy.port=8080

उन्हें टेस्ट चलाने वाले JVM को दें। बिना प्रमाणीकरण वाले HTTP मध्यस्थ के ज़रिए अनुमत सार्वजनिक आर्टिफ़ैक्ट डाउनलोड के लिए इन होस्ट और पोर्ट प्रॉपर्टी में HTTP प्रॉक्सी सूची से कोई पता इस्तेमाल करें। Gradle के Groovy DSL वाले Android प्रोजेक्ट के लिए संबंधित कॉन्फ़िगरेशन यह हो सकता है:

android {
    testOptions {
        unitTests.all {
            systemProperty 'robolectric.dependency.proxy.host', 'proxy.example'
            systemProperty 'robolectric.dependency.proxy.port', '8080'
        }
    }
}

इसे प्रोजेक्ट के मौजूदा टेस्ट कॉन्फ़िगरेशन के साथ रखें। केवल Gradle लॉन्चर को दी गई प्रॉपर्टी इस बात का प्रमाण नहीं है कि किसी फ़ोर्क किए गए टेस्ट JVM ने उसे प्राप्त किया।

जानबूझकर डिस्कनेक्ट किए गए टेस्ट वातावरण के लिए Robolectric robolectric.offline और robolectric.dependency.dir भी दस्तावेज़ित करता है। उस व्यवस्था के लिए सही रनटाइम आर्टिफ़ैक्ट को निर्दिष्ट डायरेक्टरी में रखना ज़रूरी है। Gradle का अपना ऑफ़लाइन कैश उस डायरेक्टरी का विकल्प नहीं है जिसकी Robolectric का ऑफ़लाइन रिज़ॉल्वर अपेक्षा करता है।

संबंधित लेख