इस दस्तावेज़ के आधार पर - https://developer.android.com/studio/test/command-line.html#AMOptionsSyntax फ़ायरबेस लेब से कोड कवरेज परिणाम प्राप्त करना संभव है। फायरबेस-community.slack.com पर # टेस्ट-लैब में कुछ लोग इसे काम करने में सक्षम हैं लेकिन कुछ प्रयासों के बाद भी मैं दीवार पर टक्कर मार रहा हूं। जब कवरेज संख्या के लिए पूछने के लिए cmd लाइन gcloud लिए तर्क देना करने की कोशिश करएंड्रॉइड एस्प्रेसो परीक्षणों के लिए Google फ़ायरबेस से कोड कवरेज रिपोर्ट कैसे प्राप्त करें
मैं निम्नलिखित this guide द्वारा jacaco और एम्मा की एक संयुक्त कोड कवरेज रिपोर्ट प्राप्त करने में सक्षम हूँ तो वहाँ अपने स्थानीय सेटअप के साथ गलत है लेकिन समस्या पैदा करने वाले कुछ भी नहीं है और इसके बारे में बात करती है एम्मा कवरेज।
अनिवार्य रूप से, मैं instruments.results में यह मिलता है जब मैं स्थानीय स्तर पर
gcloud beta test android run \
--type instrumentation \
--app app/build/outputs/apk/*-debug-unaligned.apk \
--test app/build/outputs/apk/*-debug-androidTest-unaligned.apk \
--device-ids Nexus6\
--os-version-ids 22 \
--locales en \
--orientations portrait \
--environment-variables coverage=true,coverageFile="/sdcard/coverage.ec" \
--directories-to-pull=/sdcard
मैं उम्मीद कर रहा हूँ कवरेज रिपोर्ट उत्पन्न किया जा करने के लिए इस आदेश चला लेकिन फाइल
INSTRUMENTATION_STATUS: numtests=1
INSTRUMENTATION_STATUS: stream=
com.godaddy.gdm.telephony.uitests.DialerTabTest:
INSTRUMENTATION_STATUS: id=AndroidJUnitRunner
INSTRUMENTATION_STATUS: test=dialerTabNumberFormattingTest
INSTRUMENTATION_STATUS: current=1
INSTRUMENTATION_STATUS_CODE: 1
INSTRUMENTATION_STATUS: numtests=1
INSTRUMENTATION_STATUS: stream=.
INSTRUMENTATION_STATUS: id=AndroidJUnitRunner
INSTRUMENTATION_STATUS: test=dialerTabNumberFormattingTest
INSTRUMENTATION_STATUS: current=1
INSTRUMENTATION_STATUS_CODE: 0
INSTRUMENTATION_RESULT: stream=
Time: 6.022
OK (1 test)
Error: **Failed to generate emma coverage.**
INSTRUMENTATION_CODE: -1
और logcat इस कहते हैं:
11-18 21:38:39.400: I/TestRunner(5246): run finished: 1 tests, 0 failed, 0 ignored
11-18 21:38:39.400: I/TestRunner(5246): [ 11-18 21:38:39.400 5246: 5263 E/ ]
11-18 21:38:39.400: I/TestRunner(5246): Failed to generate emma coverage.
11-18 21:38:39.400: I/TestRunner(5246): java.lang.reflect.InvocationTargetException
11-18 21:38:39.400: I/TestRunner(5246): at java.lang.reflect.Method.invoke(Native Method)
11-18 21:38:39.400: I/TestRunner(5246): at java.lang.reflect.Method.invoke(Method.java:372)
11-18 21:38:39.400: I/TestRunner(5246): at android.support.test.internal.runner.listener.CoverageListener.generateCoverageReport(CoverageListener.java:80)
11-18 21:38:39.400: I/TestRunner(5246): at android.support.test.internal.runner.listener.CoverageListener.instrumentationRunFinished(CoverageListener.java:68)
11-18 21:38:39.400: I/TestRunner(5246): at android.support.test.internal.runner.TestExecutor.reportRunEnded(TestExecutor.java:94)
11-18 21:38:39.400: I/TestRunner(5246): at android.support.test.internal.runner.TestExecutor.execute(TestExecutor.java:69)
11-18 21:38:39.400: I/TestRunner(5246): at android.support.test.runner.AndroidJUnitRunner.onStart(AndroidJUnitRunner.java:262)
11-18 21:38:39.400: I/TestRunner(5246): at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1853)
11-18 21:38:39.400: I/TestRunner(5246): Caused by: java.io.FileNotFoundException: /sdcard/coverage.ec: open failed: EACCES (Permission denied)
11-18 21:38:39.400: I/TestRunner(5246): at libcore.io.IoBridge.open(IoBridge.java:456)
11-18 21:38:39.400: I/TestRunner(5246): at java.io.FileOutputStream.<init>(FileOutputStream.java:87)
11-18 21:38:39.400: I/TestRunner(5246): at com.vladium.emma.rt.RT.dumpCoverageData(RT.java:50)
11-18 21:38:39.400: I/TestRunner(5246): ... 8 more
11-18 21:38:39.400: I/TestRunner(5246): Caused by: android.system.ErrnoException: open failed: EACCES (Permission denied)
11-18 21:38:39.400: I/TestRunner(5246): at libcore.io.Posix.open(Native Method)
11-18 21:38:39.400: I/TestRunner(5246): at libcore.io.BlockGuardOs.open(BlockGuardOs.java:186)
11-18 21:38:39.400: I/TestRunner(5246): at libcore.io.IoBridge.open(IoBridge.java:442)
11-18 21:38:39.400: I/TestRunner(5246): ... 10 more
मैं अधिक जानकारी अगर जरूरत दे सकते हैं।
कैसे क्या आपको अपनी स्थानीय मशीन पर कोड कवरेज फ़ाइल मिलती है? – spierce7
यह आम तौर पर ऐप/बिल्ड/आउटपुट/ /jacoco/coverage.ec फ़ाइल में होता है। सटीक के लिए अपने प्रोजेक्ट फ़ोल्डर –
satyajit
में 'cover.ec' की खोज करने का प्रयास करें, लेकिन जब आप इसे फ़ायरबेस के साथ चलाते हैं तो यह आपकी स्थानीय मशीन पर नहीं होगा, है ना? मैं पूछ रहा हूं कि आप इसे अपनी स्थानीय मशीन पर फायरबेस से कैसे निकालते हैं? – spierce7