Laufen gradle's connectedAndroidTest auf einem bestimmten Gerät

Wie fügst du connectedAndroidTest auf einem bestimmten Gerät?

Ich würde so etwas erwarten:

  • Wie erweitere ich die BaseDaoImpl-Klasse von ORMLite auf Android, um die Funktionalität zu erweitern
  • Erstellen Sie Bitmap von ByteArray in Android
  • Android statischen Objekt Lebenszyklus
  • Android-Webview: Kann nicht determiniert werden () - sah nie eine Verbindung für das pid
  • NullPointer auf toLowerCase, aber ich benutze diese Methode nicht überall
  • EditText: Unterschieden zwischen Textänderung durch setText () oder durch Tastatureingabe
  •  ./gradlew connectedAndroidTest -DconnectedAndroidTest.device=XXXX 

    Wir haben eine Reihe von Geräten in unseren CI-Server gesteckt und ich kann nicht scheinen, irgendeine Dokumentation zu finden, wie man ein bestimmtes angeschlossenes Gerät zielt.

    connectedAndroidTest führt die Tests an allen angeschlossenen Geräten derzeit durch.

    Vielen Dank.

  • ContentObserver für das Anhören von Kontaktänderungen
  • Unterschied zwischen MotionEvent.getRawX und MotionEvent.getX
  • Ändern Sie das Standardpaket von com.example für Eclipse Android-Projekte
  • Google Drive Android API - Freigeben von Dateien im App-Ordner?
  • Wie man nur Code auf bestimmten API Level ausführt
  • Android: Wie bekomme ich die aktuelle Vordergrundaktivität (von einem Service)?
  • 3 Solutions collect form web for “Laufen gradle's connectedAndroidTest auf einem bestimmten Gerät”

    Es wird nicht unterstützt. Die Dokumentation für connectedCheck unter http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Android-tasks , die an connectedAndroidTest delegiert für diese Art von On-Device Nicht-UI- Automatisierte Tests, ausdrücklich:

    Läuft Kontrollen, die ein angeschlossenes Gerät oder Emulator benötigen. Sie laufen auf allen angeschlossenen Geräten parallel.

    Es gibt eine Feature-Anfrage für die Möglichkeit, einzelne Geräte auszuwählen; Sie können den Fortschritt unter https://code.google.com/p/android/issues/detail?id=66129 verfolgen

    Ich habe einen "Hack" geschaffen, um es zu tun. Setzen Sie diesen Block in den android Bereich Ihres build.gradle , und dann müssen Sie die ANDROID_HOME env Variable in den sdk Ordner und die UNIT_TESTS_DEVICE_ID env Variable mit der seriellen setzen Nummer des Gerätes, auf dem Sie Tests ausführen möchten.

     deviceProvider(new com.android.builder.testing.ConnectedDeviceProvider(file(System.getenv("ANDROID_HOME") + File.separator + "platform-tools" + File.separator + "adb")) { public String getName() { return "singleDevice" } public List<? extends com.android.builder.testing.api.DeviceConnector> getDevices() { List<com.android.builder.testing.api.DeviceConnector> devices = super.devices; List<com.android.builder.testing.api.DeviceConnector> toReturn = new ArrayList<>(); String deviceSerialNum = System.getenv("UNIT_TESTS_DEVICE_ID"); devices.each { if (it.getSerialNumber().equals(deviceSerialNum)) toReturn.add(it); } if (toReturn.isEmpty()) { throw new RuntimeException("Device for unit tests not found!"); } return toReturn; } }) 

    Dann verwenden Sie die Aufgabe singleDeviceAndroidTest{Variant} , um die Tests auszuführen. Getestet nur auf gradle plugin Version 1.0.0.

    Sieht aus wie eine zukünftige Version nach diesem Code snippet https://android-review.googlesource.com/#/c/160929/

    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.