2012-12-10 2 views
5

Ich möchte einen Android Robotium-Test gleichzeitig auf zwei Geräten ausführen. Ich konnte bis jetzt keine Lösung finden ...Java Robotium Android - Den gleichen Test simultan auf zwei verschiedenen Geräten ausführen

Um genauer zu sein, habe ich eine Anwendung test.apk, die mehrere Instrumentierungsklassen enthält. Ich möchte die gleiche Test-APK ausführen, aber unterschiedliche Test-Klassen auf beiden Geräten. Ich weiß, dass ich die Tests nur im seriellen Modus mit adb ausführen kann.

Antwort

4

Sie können das Flag -s verwenden, um einen ADB-Befehl auf ein bestimmtes Gerät zu verweisen. Das bedeutet, dass Sie einfach zwei Terminals öffnen können und das Flag -s verwenden, um beide Befehle auszuführen. Beide werden parallel ausgeführt. Es ist dann offensichtlich einfach, dies in ein Skript zu ändern, um es zu einer besser skalierbaren Lösung zu machen.

Beispiel Zeit ...

Sie haben zwei Geräte an Ihren Rechner angeschlossen und zwei verschiedene Testklassen Sie wollen (eine auf jeder) auf Lauf auszuführen:

adb devices 

Sie sehen

List of devices attached 
SERIALOFDEVICE1 device1 
SERIALOFDEVICE2 device2 

mit dann die Serien Sie dann einen Befehl ausführen kann gezeigt:

adb -s SERIALOFDEVICE1 shell am instrument -w -e class com.android.foo.FooTest1 com.android.foo/android.test.InstrumentationTestRunner 

adb -s SERIALOFDEVICE2 shell am instrument -w -e class com.android.foo.FooTest2 com.android.foo/android.test.InstrumentationTestRunner 

wo

com.android.foo.FooTest1 
com.android.foo.FooTest2 

die Klassen, die Sie auf jedem Gerät ausgeführt werden soll sind.

+0

Vielen Dank! Ich würde einen sehr eleganten Weg bevorzugen, aber das scheint auch den Job zu machen. – Test123

+1

Ich wünschte, es wäre auch, in der Tat können Sie es eleganter machen, indem Sie es in ein Skript wie ich vorgeschlagen, zum Beispiel können Sie das Skript nehmen alle Geräte, die Sie ausführen möchten, und alle Klassen zu laufen und mach es so. Als eine Nebenbemerkung, wenn Sie eine Antwort nützlich finden, ist die normale Sache, es zu verbessern (drücken Sie den Pfeil nach oben), ich lasse Leuten leicht sehen, dass es nützlich war oder wenn es Ihre Frage beantwortete, klicken Sie das Häkchen an, um es als zu akzeptieren die Antwort! –

Verwandte Themen