Warum Log.d () nichts drucken, wenn Android Local Unit Test ausgeführt wird?

8

Ich versuche, beim Ausführen von Android Local Unit Test etwas zu drucken, aber nichts passiert. Was ist los? Wie kann ich es beheben?

Ich habe einige Dokumente auf Ссылка konsultiert. Ich habe festgestellt, dass der Android Local Unit Test nur auf der JVM meines Computers ausgeführt wird, der android.jar-Datei verwendet, um Komponententests auszuführen, enthält keinen tatsächlichen Code, so dass Log.d () nichts drucken. Wenn ich Protokoll drucken möchte, wie kann ich tun?

Hier ist mein Code FeedbackModelTest.java im Verzeichnis src / test / main .

%Vor%

}

    
Will Tang 12.05.2016, 14:40
quelle

3 Antworten

17

Sie sollten die Standardausgabe verwenden, System.out.println("Hello StackOverflow") intad von Log.x() . Dann können Sie die Protokollinformationen auf der Registerkarte "Ausführen" sehen.

2017/12/16 Update : Wenn Sie die Ausgabe auf der Registerkarte Run nicht sehen können, gehen Sie zur Registerkarte Android Monitor , um stattdessen die Ausgabe zu finden.

    
Jeff T. 24.08.2016, 05:39
quelle
1

Von Unit Testing Support :

  

Die android.jar-Datei, die zum Ausführen von Komponententests verwendet wird, enthält keinen eigentlichen Code , der vom Android-Systemabbild auf echten Geräten bereitgestellt wird. Stattdessen werfen alle Methoden Ausnahmen (standardmäßig). Dies stellt sicher, dass Ihre Unit-Tests nur Ihren Code testen und nicht auf ein bestimmtes Verhalten der Android-Plattform angewiesen sind (das Sie nicht ausdrücklich mit Mockito zum Beispiel verspottet haben). Wenn dies problematisch ist, können Sie das folgende Snippet zu Ihrer build.gradle hinzufügen, um dieses Verhalten zu ändern:

%Vor%     
Luis 12.05.2016 14:47
quelle
0

Wenn Sie in Ihre Tests eine Form von Android-Code einbeziehen müssen (wie zB Log.d), können Sie ein Testframework wie Robolectric verwenden, das wie der Code von Android.jar funktioniert, auf den Ihr Code verweist . Wenn Sie Ihren Test-Runner so konfigurieren, dass er in Robolectric ausgeführt wird, und indem Sie in den Konfigurationsanmerkungen von Robolectric das richtige Konfigurations-Flag setzen, können Sie die Protokollierung mithilfe ihrer Protokollierungsmethoden aktivieren.

    
Josh Kitchens 12.05.2016 15:05
quelle

Tags und Links