web-dev-qa-db-ja.com

取得方法Android Studioがファイルをソースとして認識する(テスト)

AndroidプロジェクトのRobolectricテストを作成しようとしています(一体、それらを単体テストにしたいです)

私はフォルダディレクトリを次のように持っています:

MyApp
    - app
        - src
            - main
                - Java
                    - com.myapp
                        HelloWorld
            - test
                - Java
                    - com
                        - myapp
                            HelloWorldTest.Java

問題はそれです HelloWorldTest.Javaは、ソースとして認識されていないため実行できません。このクラスをテストとして実行できるように設定するにはどうすればよいですか?????

私がしようとするとCMD + SHIFT + T(テストを作成するためのショートカット)、ソースファイルと同じディレクトリの下にテストを作成するように求められますが、それは望ましくありません

29
David T.

Android Studio 1.0では、スキームが少し変更されました。

パスは(app)/src/androidTest/Java/com/myapp/HelloWorldTest.Javaである必要があります

新しいAndroid Studioプロジェクトでユニットテストを設定する方法は次のとおりです。

  • Android Studioでアプリを開きます。
  • 「プロジェクト」モードを表示するには、プロジェクトエクスプローラー(左側のウィンドウ)を設定します。左上の小さなドロップダウンをタップして、「プロジェクト」を選択します。
  • 「src」ディレクトリ、「新規->ディレクトリ」を右クリックします。
  • 新しいディレクトリandroidTestを呼び出す
  • AndroidTestを右クリックして、「Java」ディレクトリを追加します。緑色で表示されます(テストsrcディレクトリであることを示します)。
  • もう一度右クリックして、パッケージを追加します。 com.mycompany.myapp.tests
  • AndroidTestCaseを拡張する新しいクラスを追加します。

次に、テスト用の新しい構成を追加します。

  • 構成の編集
  • 左上の[+]をクリックします
  • Select Android Tests
  • [全般]タブで、メインモジュールを選択します。
  • ヒットOK

これで、テストを実行できます。

31
Ben Clayton

In Android Studio 1.3:

ビルド>ビルドバリアントの選択

[バリアントのビルド]ウィンドウで、テストアーティファクトとしてnit Testsを選択します。

31
TTransmit

ここで利用可能なガイドラインに従ってください:

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では動作しません。

10
pyus13

私は長い間同様の問題を抱えていましたが、最終的には解決しました。

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テストを選択できます。

1
mc.dev