Android プロジェクトをテストするために Android テスト プロジェクトをセットアップするのは今回が初めてです。
非常に基本的なテスト ケースを作成し、それを実行しようとしましたが、実行されません。 が表示されますTest run failed: Instrumentation run failed due to 'java.lang.ClassNotFoundException'
。
これをさらにトラブルシューティングしたいのですが、どのクラスを検索しようとしているのかなど、詳しい情報が得られません。エラーからさらに情報を取得する方法について何かアイデアはありますか? 確認すべき共通領域はありますか? または、見落としている構成が必要な項目はありますか?
以下はコンソールからの情報です:
[2013-04-16 13:21:49 - XyzProgramTest] Android Launch!
[2013-04-16 13:21:49 - XyzProgramTest] adb is running normally.
[2013-04-16 13:21:49 - XyzProgramTest] Performing android.test.InstrumentationTestRunner JUnit launch
[2013-04-16 13:21:49 - XyzProgramTest] Automatic Target Mode: launching new emulator with compatible AVD 'GalaxyNexusAPI_17'
[2013-04-16 13:21:49 - XyzProgramTest] Launching a new emulator with Virtual Device 'GalaxyNexusAPI_17'
[2013-04-16 13:21:53 - Emulator] extension WGL_ARB_make_current_read was not found
[2013-04-16 13:21:53 - Emulator] extension WGL_EXT_swap_control was not found
[2013-04-16 13:21:53 - Emulator] Failed to create pbuf surface for FB 0x3004
[2013-04-16 13:21:53 - Emulator] emulator: WARNING: Could not initialize OpenglES emulation, using software renderer.
[2013-04-16 13:21:54 - XyzProgramTest] New emulator found: emulator-5554
[2013-04-16 13:21:54 - XyzProgramTest] Waiting for HOME ('android.process.acore') to be launched...
[2013-04-16 13:22:55 - XyzProgramTest] HOME is up on device 'emulator-5554'
[2013-04-16 13:22:55 - XyzProgramTest] Uploading XyzProgramTest.apk onto device 'emulator-5554'
[2013-04-16 13:22:55 - XyzProgramTest] Installing XyzProgramTest.apk...
[2013-04-16 13:23:57 - XyzProgramTest] Success!
[2013-04-16 13:23:57 - XyzProgramTest] Project dependency found, installing: XyzProgram
[2013-04-16 13:23:57 - XyzProgram] Uploading XyzProgram.apk onto device 'emulator-5554'
[2013-04-16 13:23:58 - XyzProgram] Installing XyzProgram.apk...
[2013-04-16 13:24:05 - XyzProgram] Success!
[2013-04-16 13:24:05 - XyzProgramTest] Launching instrumentation android.test.InstrumentationTestRunner on emulator-5554
[2013-04-16 13:24:07 - XyzProgramTest] Test run failed: Instrumentation run failed due to 'java.lang.ClassNotFoundException'
その他の注意事項
Android テスト プロジェクトで、Android プロジェクトでテストしようとしているクラスと一致するパッケージに似たパッケージを使用して、簡単なテストを作成しました。つまり、 のようなものです。これを Android テスト プロジェクトファイルのセクションcom.company.android.projectname
で指定しました。manifest
instrumentation
<instrumentation
android:name="android.test.InstrumentationTestRunner"
android:targetPackage="com.company.android.projectname" />
これをそれに合わせて変更すると、次のような新しいエラーが表示されます。Test run failed: Unable to find instrumentation target package: com.company.android.projectname
targetPackage
それが何であるべきか、テストしたいパッケージごとに複数のインストルメンテーションが必要かどうかなど、100% 確信はありません。それをcom.company.android
そのように設定すると、 が表示されますjava.lang.ClassNotFoundException
。
ベストアンサー1
Androidx ライブラリにアップグレードしたら、このエラーが発生し始めました。
これを修正するには、build.gradle で次の行を変更しました。
testInstrumentationRunner 'android.support.test.runner.AndroidJUnitRunner'
に
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"