AndroidプロジェクトのRobolectricテストを作成しようとしています(一体、それらを単体テストにしたいです)
私はフォルダディレクトリを次のように持っています:
MyApp
- app
- src
- main
- Java
- com.myapp
HelloWorld
- test
- Java
- com
- myapp
HelloWorldTest.Java
問題はそれです HelloWorldTest.Java
は、ソースとして認識されていないため実行できません。このクラスをテストとして実行できるように設定するにはどうすればよいですか?????
私がしようとするとCMD + SHIFT + T
(テストを作成するためのショートカット)、ソースファイルと同じディレクトリの下にテストを作成するように求められますが、それは望ましくありません
Android Studio 1.0では、スキームが少し変更されました。
パスは(app)/src/androidTest/Java/com/myapp/HelloWorldTest.Javaである必要があります
新しいAndroid Studioプロジェクトでユニットテストを設定する方法は次のとおりです。
次に、テスト用の新しい構成を追加します。
これで、テストを実行できます。
In Android Studio 1.3:
ビルド>ビルドバリアントの選択
[バリアントのビルド]ウィンドウで、テストアーティファクトとしてnit Testsを選択します。
ここで利用可能なガイドラインに従ってください:
http://tools.Android.com/tech-docs/new-build-system/user-guide#TOC-Testing
そしてここ
http://tools.Android.com/tech-docs/new-build-system/user-guide#TOC-Configuring-the-Structure
概要:
最初のリンクでは、test
ディレクトリの名前をinstrumentTest
に変更する必要があるため、StudioはテストプロジェクトのsourceSetを自動的に検出できます。
または
別の方法として、ルートにtests
ディレクトリ(メインディレクトリを含む)とソースをtests/Java
、2番目のリンクにあるように
instrumenttest.setRoot("tests")
sourceSets設定でAndroidタグ
ドキュメントから
注:setRoot()は、sourceSet全体(およびそのサブフォルダー)を新しいフォルダーに移動します。これはsrc/instrumentTest/*をtests/*に移動します。これはAndroid固有であり、Java sourceSetsでは動作しません。
私は長い間同様の問題を抱えていましたが、最終的には解決しました。
Android Studioでsrc/test dirをソースとして認識するために、 'Build Variants'-> 'Test Artifact:'で 'Unit Tests'を選択する必要があります。
ただし、私のプロジェクトでは「ユニットテスト」はなく、「Android Instrumentationテスト」しかありませんでした。これは、Androidの2つの異なるタイプの単体テストです。
参照: http://developer.Android.com/training/testing/unit-testing/index.html
1。ユニットテスト-ローカルユニットテスト
2。 Android Instrumentation tests-Instrumented Unit Tests
これはまったく明らかではありませんが、「ビルドバリアント」->「テストアーティファクト:」内では、プロジェクトに複数のモジュールがある場合、「ユニットテスト」オプションはありません。
私のプロジェクトディレクトリは次のようになりました。
:事業
-:module1
-:module2
-:module3
-:module4
-:module5
-settings.gradle-> include :: module1 '、':module2 '、...
これらのモジュールは、実際には相互にリンクされていませんが、Eclipseから来た他の多くの開発者にとっては、それがどうあるべきかということです。それは問題でした。
次に、自分のモジュールのみに個別のプロジェクトを作成しました。
:事業
-:module1
-settings.gradle-> include :: module1
その後、「Unit Tests」が「Build Variants」->「Test Artifact:」に表示され、ローカルユニットテストとAndroid Instrumentationテストを選択できます。