Android UITest実行前にChromeのキャッシュを削除したい


結論

UiDevice.getInstance(getInstrumentation()).executeShellCommand("pm clear com.android.chrome")

こいつをsetUp時に呼ぶ

背景

UI Automatorを利用したAndroidのUITest実行時にSNSログインなどのアプリ外の動作を検証するテストを作りたかった

もちろん各SNS連携後のブラウザでの動作はUI Automatorを使って自動化することができるのですが、
FacebookやYahoo!ログインではブラウザのキャッシュに残っている状況によってパスワード入力がスキップされたりメールアドレス入力が既に入力されている状態になったりと実行時によって動作が変わってしまう

よって先にすべてのChromeブラウザのキャッシュを毎度クリアしてテスト実行しようとした

解説

UiDevice.getInstance(getInstrumentation())

UI Automatorを利用してアプリ外の動作を行います

.executeShellCommand("pm clear com.android.chrome")

adb shell commandを実行します。
これでchromeアプリのストレージを削除します

補足

chrome以外のアプリのストレージを削除したい

$ adb shell pm list packages

アプリパッケージの一覧が表示されますのでそれを引数に指定してください

参考