Frage Wie Android Studio zu erkennen, Datei als Quelle (Test)


Ich versuche Robolectric-Tests für ein Android-Projekt zu erstellen (heck, ich würde mich freuen, sie sogar Unit-Tests zu machen)

Ich habe das Ordnerverzeichnis als:

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

Das Problem ist, dass HelloWorldTest.java kann nicht ausgeführt werden, weil es nicht als Quelle erkannt wird. Wie richte ich es so ein, dass ich diese Klasse als Test ausführen kann ?????

wenn ich es versuche CMD + SHIFT + T (Verknüpfung zum Erstellen von Tests), es wird aufgefordert, die Tests unter dem gleichen Verzeichnis wie meine Quelldatei zu erstellen, und das möchte ich NICHT


29
2018-02-21 06:57


Ursprung


Antworten:


In Android Studio 1.0 hat sich das Schema ein wenig geändert.

Dein Pfad sollte (app) /src/androidTest/java/com/myapp/HelloWorldTest.java lauten

So richte ich Komponententests in einem neuen Android Studio-Projekt ein:

  • Öffnen Sie die App in Android Studio.
  • Stellen Sie den Projekt-Explorer (linkes Fenster) ein, um den Projekt-Modus anzuzeigen. Tippe auf das kleine Dropdown-Menü oben links und wähle "Projekt".
  • Klicken Sie mit der rechten Maustaste auf das Verzeichnis 'src', 'Neu -> Verzeichnis'.
  • Rufen Sie das neue Verzeichnis androidTest auf
  • Klicken Sie mit der rechten Maustaste auf AndroidTest und fügen Sie ein Java-Verzeichnis hinzu. Es wird in grün angezeigt (zeigt an, dass es sich um ein test src-Verzeichnis handelt).
  • Klicken Sie erneut mit der rechten Maustaste und fügen Sie ein Paket hinzu, z. com.mycompany.myapp.tests
  • Fügen Sie eine neue Klasse hinzu, die AndroidTestCase erweitert.

Fügen Sie nun eine neue Konfiguration zum Testen hinzu:

  • Konfigurationen bearbeiten
  • Klicken Sie oben links auf +
  • Wählen Sie Android Tests
  • Im Tab Allgemein wählen Sie Ihr Hauptmodul aus.
  • Klicken Sie auf OK

Jetzt können Sie die Tests ausführen.


31
2018-02-20 13:23



In Android Studio 1.3:

Erstellen> Wählen Sie Build-Variante

Wählen Sie im Fenster Build Variants Komponententests als Testartefakt.


30
2017-09-03 16:33



Befolgen Sie die hier verfügbaren Richtlinien:

http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Testing

und hier

http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Configuring-the-Structure

Zusammenfassung :

Wie der erste Link sagt, müssen Sie Ihre umbenennen test Verzeichnis als instrumentTest So kann Studio die sourceSets für Ihr Testprojekt automatisch erkennen

oder 

Abwechselnd können Sie Ihre haben tests Verzeichnis in root (mit Ihrem Hauptverzeichnis) und Quellen in einer Art und Weise wie tests/java, wie der zweite Link sagt

instrumenttest.setRoot("tests")

in SourceSets Konfiguration unter Android-Tag

Aus dem Dokument

Hinweis: setRoot () verschiebt das gesamte sourceSet (und seine Unterordner) nach a   neuer Ordner. Dies verschiebt src / instrumentTest / * zu tests / * Dies ist Android   spezifisch und funktioniert nicht mit Java sourceSets.


10
2018-02-21 07:18



Ich hatte lange Zeit ein ähnliches Problem und endlich habe ich das gelöst.

Um Android Studio dazu zu bringen, src / test dir als Quelle zu erkennen, müssen Sie 'Unit Tests' in 'Build Variants' -> 'Test Artifact:' auswählen

In meinem Projekt hatte ich jedoch keine "Unit Tests". Ich hatte nur "Android Instrumentation Tests". Dies sind zwei verschiedene Arten von Komponententests in Android.

Sehen: http://developer.android.com/training/testing/unit-testing/index.html
1. Komponententests - Lokale Einheitentests
2. Android Instrumentation Tests - Instrumentierte Komponententests

Das ist überhaupt nicht offensichtlich, außer innerhalb von 'Build Variants' -> 'Test Artifact': Sie haben keine 'Unit Tests' Option, wenn Sie mehrere Module in Ihrem Projekt haben.

Mein Projektverzeichnis sah so aus:
:Projekt
-:Modul 1
-: Modul2
-: Modul3
-: Modul4
-: Modul5
-settings.gradle -> include ': module1', ': module2', ...
Diese Module sind nicht wirklich miteinander verbunden, aber so muss es für viele andere Entwickler sein, die aus Eclipse kamen. Das war ein Problem.

Dann habe ich ein separates Projekt nur für mein Modul erstellt:
:Projekt
-:Modul 1
-settings.gradle -> include ': Modul1'

Danach erschienen "Unit Tests" in "Build Variants" -> "Test Artifact:" und ich kann jetzt zwischen lokalen Unit Tests und Android Instrumentation Tests wählen.


0
2017-12-03 16:43