我設置了一個Jenkins節點(在Mac OS X上)運行我的Android應用程序的測試測試。connectedAndroidTest失敗,「沒有連接的設備」,但我的儀器工程
我的Jenkins項目啓動Android模擬器並運行Gradle任務:app:connectedAndroidTest
。但任務一直不穩定,有時能夠運行測試就好了,但大多數時候,出現以下錯誤失敗:
:app:connectedAndroidTest FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:connectedAndroidTest'.
> com.android.builder.testing.api.DeviceException: No connected devices!
經過一番調查,我發現:
- 該問題只發生在該機器上;在我的機器上(另一臺Mac OS X),該任務在Android Studio內部和外部一直按預期工作;
- 該問題發生在Jenkins之外,即通過手動啓動模擬器並從命令行運行Gradle任務;
- 即使Jenkins輸出警告使用非標準端口,即使使用更常用的5554-5555也會出現問題;
adb devices
顯示處於在線狀態的仿真器;adb shell am instrument
也可以正常工作;
因此我可以說問題是:app:connectedAndroidTest
沒有檢測到正在運行的模擬器。
我已經制作了一個shell腳本來安裝APK並運行am instrument
,但後者不會生成JUnit兼容的輸出。
因此,在做額外的工作之前,我想知道我該如何「修復」Gradle任務,以便它檢測到仿真器。 我也很樂意爲您提供進一步查明問題的建議,例如找出爲什麼Gradle任務在我的機器上工作。
如果您使用真實設備並面臨同樣的問題,那麼您會怎麼做? –