Skip to content

Instantly share code, notes, and snippets.

Created April 10, 2016 21:20
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save anonymous/d301e981d575e7321ea8b7997e070afb to your computer and use it in GitHub Desktop.
Save anonymous/d301e981d575e7321ea8b7997e070afb to your computer and use it in GitHub Desktop.
Instrumentationを読んでみた

InstrumentationTest の AndroidManfest.xml から

build/intermediates/manifest/androidTest/${flavorDir}/AndroidManifest.xml にある:

    <instrumentation android:name="android.test.InstrumentationTestRunner"
                     android:targetPackage="com.example.app"
                     android:handleProfiling="false"
                     android:functionalTest="false"
                     android:label="Tests for ..."/>

ここで target を指定してる。

am で起動

adb shell am instrument -w com.hello.test/android.test.InstrumentationTestRunner

runInstrument mAm.startInstrumentation ActivityManagerNative#startInstrumentation `mRemote.transact(START_INSTRUMENTATION_TRANSACTION, data, reply, 0)'

よくわからなくなった

Instrumentationからみる

Class hierarchy

Instrumentation InstrumentationTestRunner

これが AndroidTestRunner を呼び出してる。 AndroidTestRunner extends junit.runner.BaseTestRunner.

これが、ActivityInstrumentationTestCase2 とかを 走らせる。各テストケースによる処理は未読。

Instrumentationと targetはどう走る?

同じ process空間で走る。ここは実験したらそうだったというので、ソースは読めてません

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment