2015-09-10 19 views
6

Ich bin mitAndroid Tests - Wie Espresso Logs

androidTestCompile 'com.android.support.test:runner:0.3' 
    androidTestCompile 'com.android.support.test:rules:0.3' 
    androidTestCompile 'com.android.support:support-annotations:23.0.1' 
    androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2' 
    androidTestCompile('com.android.support.test.espresso:espresso-contrib:2.2') { 
     // this library uses the newest app compat v22 but the espresso contrib still v21. 
     // you have to specifically exclude the older versions of the contrib library or 
     // there will be some conflicts 
     exclude group: 'com.android.support', module: 'appcompat' 
     exclude group: 'com.android.support', module: 'support-v4' 
     exclude module: 'recyclerview-v7' 
    } 
    androidTestCompile 'junit:junit:4.12' 

für Tests hinzufügen und frag dich, ob es gibt einen Weg, um ein Protokoll mit dem gestarteten Test und den fertigen Test zu sagen Espresso so wird gedruckt Der Logcat ist einfach zu sehen, wenn etwas passiert.

Das wird gut sein, um mit papertrail zu mischen, um zu überprüfen, warum Tests ausfallen und wo mit privaten Integrationsservern.

+0

Es ist bereits Protokolle drucken ... 'Testrunner Ich begann: successCloseView' – Caipivara

+2

Im Ernst, es gibt keinen Weg, um tatsächlich Debuglog/console-Einträge ein hinzufügen Espressotest? Wenn die vorhandene Ausgabe nicht ausreicht, ist dies ein natürlicher nächster Schritt: Moar Logging hinzufügen. – ChrisPrime

Antwort

2

Das nächste Mal bitte zeigen Sie uns, welche Schritte Sie unternommen haben, um diese Arbeit selbst zu erledigen.

Sie können einfach in Logcat nach dem Ausführen von Tests suchen. Einige der Hilfsklassen werden bereits in logcat protokolliert. Zum Beispiel betrachten Sie android.support.test.internal.runner.lifecycle.ActivityLifecycleMonitorImpl. Es protokolliert Aktivität Lifecycle-Staaten:

D/LifecycleMonitor: Lifecycle status change:[email protected] in: STOPPED 

Alle Log-Anweisungen innerhalb Ihre Klassen unter Test wird auch angezeigt bekommen. Schließlich werden alle Log-Anweisungen innerhalb Ihrer Testklassen angezeigt.

@RunWith(AndroidJUnit4.class) 
public class SomeTest { 

    @Before 
    public void setUp() throws Exception { 
     Log.d(TAG, "setup"); 
    } 

    ... 
} 

Ich bin in der Lage, die Protokolle in beide Android Studios und in der Befehlszeile zu sehen.

Ich schließe, indem ich sage, dass ich auch in der Lage bin, die Protokollierung zu funktionieren, wenn Sie stattdessen Timber verwenden.

+0

Rechts. Einfach 'Log.d' zu verwenden funktioniert gut. Ich konnte sehen, dass die Protokollierung im "Android Monitor" von Android Studio erscheint. – rpattabi

2

Ich habe den Code des Frameworks überprüft und es scheint, dass es System.out.println verwendet, das auch in Tests funktioniert. Android log tut leider nicht.

6

Sie können Android Logs erfassen, indem Sie Tests auf Ihrem CI-Server über Spoon ausführen. Sehen Sie sich die Anleitungen auf ihrer Website an und sehen Sie sich die folgenden Links für Beispielberichte und die Protokolle für einen der Tests an. Bei jedem Testlauf werden die Protokolle erfasst und im Bericht gespeichert.

Report Output: http://square.github.io/spoon/sample/index.html

Beispiel Protokolle: http://square.github.io/spoon/sample/logs/0403681E12013007/com.example.spoon.ordering.tests.OrderActivityTest/testMakeASandwich_ItTastesGood.html

Verwandte Themen