測試時,我有它由多個gradle這個模塊的應用:衝突提供程序錯誤在多模塊機器人項目
App -- main app module with dependencies to all submodules
|
|-- API - library module
| |-- Constants for authority etc.
|
|-- DB-Impl - library module
| |-- ContentProvider for the data specified in API
|
|-- Extension - library module
| |-- Dependency on API and test-dependency on DB-Impl
構建和部署主要APK時,這是工作的罰款。所有模塊在清單中使用相同的sharedUserId,並且可以從DB-Impl訪問提供者。
但是,當我嘗試運行不同模塊的檢測測試時,它變得很複雜。
例如:我運行DB-Impl測試,該模塊在設備上單獨安裝。當我然後想要部署主應用程序,或者嘗試運行它的測試時,apk安裝失敗,因爲它還包含提供程序,會引發INSTALL_FAILED_CONFLICTING_PROVIDER
錯誤。
擴展模塊也是如此。它需要通常包含在主應用程序apk中的數據庫。當簡單地運行測試時,他們會失敗,因爲提供者不會被安裝。所以我在DB-Impl模塊上添加了一個androidTestCompile
依賴項。現在這個測試apk還包含提供者定義,甚至導致更多的錯誤。
我試着在測試任務上添加一個任務依賴項,所以它會運行uninstallAll
,但是這隻會卸載它調用的模塊,所以我將不得不手動卸載可能隨提供程序提供的每個模塊。
是否有避免常見的策略是問題?