इसे प्रोग्रामिक रूप से करने के लिए अनुशंसित तरीका क्या है?
adb shell pm clear packageपरीक्षण से पहले एडीबी कमांड को चलाने का एकमात्र संभावित विकल्प है । सबसे बड़ी समस्या यह है कि यह परीक्षणों के निष्पादन और शेल कमांडों को मिलाकर सिरदर्द की तरह है।
हालांकि, हम (मीडियाफे में) कुछ समाधान लेकर आए हैं जो आपके लिए नियमित अनरूट किए गए डिवाइस पर काम कर सकते हैं। आपको बस एक एनोटेशन जोड़ना है। बाकी सब साधारण बैश स्क्रिप्ट चलाकर किया जाता है ।
बस @ClearDataअपने किसी भी परीक्षण और टाडा add से पहले एनोटेशन जोड़ें , एडीबी स्पष्ट कमांड को परीक्षण निष्पादन से पहले निष्पादित किया जाएगा।
यह इस तरह के परीक्षण का एक उदाहरण है:
@Test
@ClearData
public void someTest() {
// your test
}
विचार अग्रांकित है
- सभी परीक्षणों का उपयोग करके पढ़ें
adb shell am instrument -e log true
- (1) से उत्पादन पार्स करके निष्पादन योजना बनाएं
- निष्पादन योजना लाइन को लाइन से चलाएं
समान विचार का उपयोग करके ये सभी विकल्प हैं जिनका आप आसानी से समर्थन कर सकते हैं:
- शुद्ध आंकड़े
- स्पष्ट सूचना पट्टी
- parameterize
- टैग द्वारा फ़िल्टर करें और चलाएं
केवल एनोटेशन का उपयोग करें। ऐशे ही:
@Test
@ClearData
@Tags(tags = {"sanity", "medium"})
@Parameterized.Repeat(count = 3)
public void myTest() throws Exception {
String param = params[index];
// ...
}
बक्शीश! Each प्रत्येक असफल परीक्षा के लिए:
- Logcat + stacktrace लीजिए
- वीडियो रिकॉर्ड करें (mp4)
- डंप DB (sqlite)
- डिफ़ॉल्ट डिफ़ॉल्ट साझा प्राथमिकताएँ (xml)
- बैटरी, netstats और अन्य: जैसे डिप्स फ़ाइलें एकत्र करें।
सामान्य तौर पर, अधिक विकल्पों को जोड़ना आसान होता है, क्योंकि परीक्षणों को एक-एक करके बैश स्क्रिप्ट से एक के बाद एक कर दिया जाता है।
Afe पूरा ब्लॉग पोस्ट : https://medium.com/medisafe-tech-blog/running-android-ui-tests-53e85e5c8da8
📘 उदाहरण के साथ स्रोत कोड : https://github.com/medisafe/run-android-tests
उम्मीद है कि यह जवाब 6 साल के सवाल;)