Android インストルメンテーション テストを調べ始めたばかりですが、テストを実行する際にいくつか問題があります。これが私が試したものです:
Android Studio と gradle を使用して、 内に簡単なテスト クラスを作成しましたsrc/instrumentTest/java/
。ここにあります:
package at.example.test;
import android.test.ActivityInstrumentationTestCase2;
import android.view.View;
import at.example.activity.MainActivity;
public class BasicAppTestCase extends ActivityInstrumentationTestCase2<MainActivity> {
private MainActivity activity;
public BasicAppTestCase() {
super(MainActivity.class);
}
@Override protected void setUp() throws Exception {
super.setUp();
activity = getActivity();
}
public void testAppHomeButtonExists() {
View homeButton = activity.findViewById(android.R.id.home);
assertNotNull("Home button does not exist", homeButton);
}
}
次に、プロジェクトを右クリックして を選択し、テストを開始しRun 'All Tests'
ます。Android Studio がプロジェクトのタスクを実行し、両方のファイルをテスト デバイスにインストールしassembleDebug
ます。assembleTest
apk
その後、テスト デバイスでアプリが正常に起動されます。setUp()
メソッドが実行されています (失敗したアサートをメソッドに入れ、 を使用してこれを確認しました) logcat
、テストの実行がハングし、現在実行されていることが示さRunning tests...
れます。testAppHomeButtonExists
ホームボタンを押してアプリを最小化するか、アプリスイッチャーを開いてアクティビティの状態を変更するまで、テストの実行は続行されません。次に、テスト メソッドtestAppHomeButtonExists
が実行され、(メソッド本体に応じて) 成功または失敗します。ここでも、assert 呼び出しとlogcat
出力を使用してこの動作をテストしました。
アップデート:
これはTestRunner
、デバイスの logcat ストリームに記録されているものです。
11-11 15:34:59.750 24730-24748/at.example.activity I/TestRunner﹕ started: testAppHomeButtonExists(BasicAppTestCase)
アプリを停止するまで、ログには何も記録されません。アクティビティを停止すると、次のログが記録されます。
11-11 15:35:05.205 24730-24748/at.example.activity I/TestRunner﹕ finished: testAppHomeButtonExists(BasicAppTestCase)
11-11 15:35:05.205 24730-24748/at.example.activity I/TestRunner﹕ passed: testAppHomeButtonExists(BasicAppTestCase)
私は何か間違ったことをしていますか?何か不足していますか?この動作の原因は何ですか?
前もって感謝します!