web-dev-qa-db-ja.com

テストメソッドまたはクラスをAndroid Test in Android Studioで実行する方法

Android Studio 0.2.4を使用していますが、この質問は一般的にIntelliJに関係すると思います。私のテストはsrc/InstrumentsTest/Javaの下にあり、すべてAndroidTestCaseを拡張しています。すべてのテストを実行すると(たとえば、ソースフォルダーを右クリックして[実行...]をクリックすると)テストはAndroidエミュレーターとしてAndroidテスト(として実行/デバッグ構成の下に表示されます)。

しかし、単一のテストメソッドまたはテストクラスを同じ方法で実行しようとすると(メソッドを右クリックして[実行...]をクリック)、テストはエミュレーターではなく通常のJUnitテストとして実行され、もちろん失敗します(以下のスタックトレース)。新しい実行構成を作成しようとしても、JUnit構成以外のものを作成する方法がわかりません。

IDEから、テストメソッドまたはテストクラスをAndroidテストとして実行するにはどうすればよいですか?

Exception in thread "main" Java.lang.NoClassDefFoundError: junit/textui/ResultPrinter
    at Java.lang.Class.forName0(Native Method)
    at Java.lang.Class.forName(Class.Java:188)
    at com.intellij.rt.execution.application.AppMain.main(AppMain.Java:113)
Caused by: Java.lang.ClassNotFoundException: junit.textui.ResultPrinter
    at Java.net.URLClassLoader$1.run(URLClassLoader.Java:366)
    at Java.net.URLClassLoader$1.run(URLClassLoader.Java:355)
    at Java.security.AccessController.doPrivileged(Native Method)
    at Java.net.URLClassLoader.findClass(URLClassLoader.Java:354)
    at Java.lang.ClassLoader.loadClass(ClassLoader.Java:423)
    at Sun.misc.Launcher$AppClassLoader.loadClass(Launcher.Java:308)
    at Java.lang.ClassLoader.loadClass(ClassLoader.Java:356)
    ... 3 more
26
Nathan Taylor

まだフォローしている人にとって、これはAndroid Studio 0.2.8で機能します。ただし、注意する必要がある3つの状態があります。

  1. これまでにテストメソッドまたはクラスを実行したことがない場合、保存された実行構成はありません。したがって、メソッドまたはクラスを右クリックすると、[実行]の横にテストの名前を表示する右矢印が表示されます。 Android記号が付いているものを選択してください。

  2. 以前にテストメソッドまたはクラスを通常のJUnitテストとして実行したことがある場合、Android Studioはその構成を保存し、コンテキストメニューの[実行]の下に右矢印またはオプションはありません。その場合は、ファイルメニューで「実行」->「構成の編集...」に移動し、「JUnit」セクションでテストを見つけて削除すると、状態(1)になります。

  3. 以前にAndroidテストとしてテストメソッドまたはクラスを実行したことがある場合、Android Studioはその構成を保存し、右矢印またはコンテキストメニューの[実行]の下にあるオプション。[実行]を選択するだけで機能するはずです。

35
Nathan Taylor

Android Studioでテストコードを正しく設定しましたか?Android StudioでのGradleの最新の規則はテストディレクトリを呼び出すことです 'androidTest = '。次に、build.gradleファイルに次のように配置する必要があります。

    androidTest.setRoot('androidTest')
    androidTest.Java.srcDirs = ['androidTest/Java']

次に、任意のテストクラスを個別に右クリックして、実行できます。

[〜#〜] edit [〜#〜]:これらの手順はエスプレッソテスト専用です。

2
IgorGanapolsky