Android エミュレータでGoogle アカウントに自動でログインする方法はないのか?
Play Billingなどを使う場合は、前もってgoogleアカウントにログインしておく必要があります。
エミュレータを初期化するなどすると消えてしまうのでその度ログインするのは面倒です。
今のところUI Automator
だけ成功
flutter_driverでなんとかする
現状では無理のようです。
flutter_driver can't interact with native elements · Issue #34345 · flutter/flutter · GitHub
flutter driver and android permissions · Issue #12561 · flutter/flutter · GitHub
ただ、個人的にはfind.text()とか使っていけそうな気がする。。。
Robo test
Test Labにアップロードしてテストする。flutter driveを使ったIntegration testが実行可能
Robo スクリプトはどう?
注: Robo スクリプトの記録時に、テスト対象アプリの外部で行われた操作はキャプチャされません。たとえば、Facebook、Twitter などのソーシャル アプリからのログインは記録されません。
無理そう。
UI Automator
複数のアプリの UI をテストできるらしい
成功したのでソースを公開
android_uiautomator_sample/GooglePlayTest.kt at main · na8esin/android_uiautomator_sample · GitHub
flutterで作ったbuttonもクリックできる
purchase画面の¥100ボタンのクリックに成功 · na8esin/flutter_in_app_purchase@d770a50 · GitHub
ただ、なぜかテキストがcontent-descに入る
flutterとUI Automatorの連携は?
この辺りで議論中
Provide better support for UiAutomator · Issue #32062 · flutter/flutter · GitHub
Android Test Orchestrator
uiautomatorviewerがjdk8しか対応してない
android - uiautomatorviewer - Error: Could not create the Java Virtual Machine - Stack Overflow
その上m1 macでは別の問題がある
Broken GUI of UIAutomatorViewer on MacOS Big Sur · Issue #911 · android/android-test · GitHub
swt.jarのダウンロードがわかりづらい
当たり前かもしれませんが、armの方だとだめです。 間違って、ダウンロードして、uiautomatorviewerを実行したら、~/.swtを削除しないといけません。
espresso
email,passwordを入力するときは別のアプリになるから無理かもしれない。
flutter espresso
同上?
ソース内でベタっと書いてGoogle OAuthする
OpenID Connect | Google Identity | Google Developers
googleのUIを経由しないで、emailとpasswordを送信できるインターフェースが見つからない。 当たり前と言えば当たり前。