我已經爲我的Android應用編寫了許多單元和儀器測試。到目前爲止,我只針對調試版本變體運行這些。是否有必要針對發佈版本變體運行測試?有什麼不同可能會給測試帶來不同的結果?我能想到的主要是啓用ProGuard的時候,我還沒有這樣做。 ProGuard會做什麼使得運行我的測試套件變得有必要?我應該知道哪些其他問題需要測試發佈版本變體?測試Android應用發佈構建變體
0
A
回答
1
是否需要針對發佈版本變體運行測試?
我認爲你應該。
有什麼區別可能會給測試帶來不同的結果?
幾個例子:
你可能有一個使用
BuildConfig
類的字段啓用/禁用某些工作流程代碼。一些圖書館可能也會使用這個庫,尤其是BuildConfig.BUILD_TYPE
。這是常見的做這樣的事情:if (BuildConfig.BUILD_TYPE.equals("debug") { ACRA.init(...); Stetho.init(...); ... }
但有一些代碼無法在發佈版本在試圖使用組件/那些沒有正確初始化庫。如你所說,ProGuard可能會丟掉你的一些類,除非它被正確配置(例如,假設你忘了爲某些第三方庫添加規則)。針對發佈版本運行測試可確保ProGuard配置的正確性。
會有什麼ProGuard的做到這一點使我們有必要來運行我的測試套件?
ProGuard的可能,卸下,例如,通過反射,除非你添加@Keep
註釋給他們裝載的類/方法/領域。它也可能重命名類似Realm,Retrofit,Gson或Volley的庫所使用的類,從而導致所有的單元和集成測試通過調試版本(其中ProGuard未啓用),但在發佈版本上失敗。在發佈我們的新APK之前,您一定要測試這些。
我應該知道哪些其他問題需要測試發佈版本變體?
發佈版本也可能適用PNG搗鼓,通過在搖籃中buildConfigField
方法指定不同的參數,由ABI或密度應用拆分或啓用/禁用multidex等。所有這些都可能會影響您的應用程序的工作方式,爲什麼不在安全的方面並對其進行測試。
另一個常見的問題,你可以捕捉使用這些是確保你不小心把代碼中錯誤的位置(例如/src/debug/java/
)是發生在調試要加載的建立而不是在其他的變種。
相關問題
- 1. Android Studio Instrumentation測試構建變體
- 2. 使用omake發佈構建測試
- 3. 如何使用Gradle爲Android構建發佈測試apk?
- 4. 發佈構建到測試環境
- 5. Android構建變體調試給出java.lang.NoClassDefFoundError
- 6. 爲什麼發佈構建變體總是可調試的?
- 7. Android測試版本構建
- 8. 如何在每次「發佈」構建之前使用gradle執行Android測試?
- 9. 如何爲Android App體系結構ViewModels創建Android UI測試?
- 10. Android如何在管理髮布頁上發佈應用的測試版
- 11. 構建Android應用程序在eclipse中使用ant發佈
- 12. Android如何發佈應用程序的測試版
- 13. Android - 測試應用程序內計費是否需要向Android市場發佈測試應用程序?
- 14. 調試構建應用程序定位發佈CRT程序集
- 15. 如何測試各種移動變體的Android應用程序?
- 16. 發佈後調試Android應用程序
- 17. 如何在MavenCentral中發佈與「發佈」不同的構建變體
- 18. TFS 2015年大專構建/發佈到手動測試運行
- 19. 從Jenkins發佈測試結果每晚構建到QC
- 20. 在ant腳本中檢測構建配置(調試或發佈)
- 21. 從集成測試的代碼構建和發佈sqlproj
- 22. TFS構建vnext無法發佈測試結果
- 23. 構建應用程序時運行單元測試(Android)
- 24. Android Studio:爲測試構建另一個應用程序實例
- 25. 嘗試使用Ant構建Android應用程序時引發ExceptionWithContext
- 26. 如何禁用某些構建變體的Android NDK構建
- 27. 構建Android應用程序的發佈風格的錯誤
- 28. 發佈構建步驟僅適用於發佈構建
- 29. Android:發佈和測試模式?
- 30. 在eclipse中發佈android測試項目