LoginSignup
0
0

More than 3 years have passed since last update.

minSdkVersionが17以下のAndroidアプリにUI Automatorを導入する

Last updated at Posted at 2019-12-13

UI Automatorは、minSDKVersionが17以下だと使えない。
ただ、UIテストの時だけminSdkVersionを18以上をすれば、UI Automatorは使える。
その設定方法を説明する。

設定方法

1. UI Automatorを導入する

「app/build.gradle」に以下を記述する。

dependencies {
    ...
    androidTestImplementation 'androidx.test.uiautomator:uiautomator:2.2.0'
    ...
}

2. テスト用のAndroid Manifestを追加する

「app/src/androidTest/AndroidManifest.xml」に以下を記述する。

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="<your app's package name>">

    <uses-sdk
        android:minSdkVersion="18"
        android:targetSdkVersion="28"
        tools:overrideLibrary="android_libs.ub_uiautomator" />

</manifest>

3. テストアプリのビルド時にテスト用のAndroid Manifestを参照させる

「app/build.gradle」に以下を記述する。

android {
    sourceSets {
        androidTest {
            manifest.srcFile 'src/androidTest/AndroidManifest.xml'
        }
    }
}

sourceSetsの記述はやや注意。
テスト用のAndroidManifest.xmlの追加時、Android StudioがsourceSetsの記述を自動で生成する。
自分の場合は、プロダクトコードのAndroid Manifest.xmlとなるような記述になっていた。
その場合は、自動生成された箇所を消して、上のように記述すればOK。

備考

この設定をすると、当然、SDK Versionが17以下でUIテスト実行できなくなる。
ただ、UITestをSDK Version17以下でも動くようにするよりも、断然おすすめ。
UI Automatorがあると、Espressoだけ使うときよりテストコードが簡潔になるため。

後、SDKVersion 17(Android 4.2)はさすがに古すぎるので、そもそもサポート対象から外した方が良いかと。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0