在运行Android JUnit测试时,LogCat的Log.x()输出在哪里?

时间:2011-05-12 18:15:59

标签: android junit logcat android-logcat

我注意到,当通过从TestCaseAndroidTestCase派生的测试类测试普通Java类时,LogCat输出会消失。

是否仍然可以捕获这些消息的输出?或者我唯一的办法是使用更缓慢的ActivityInstrumentationTestCase2<>作为基类?

4 个答案:

答案 0 :(得分:19)

我有类似的问题......这里的重点是Eclipse中可用的logcat视图在Android Junit模式下运行项目时没有显示任何内容。至少,在我使用的Android 2.1中,这就是行为。

您可以通过从命令行(终端窗口)检查logcat来解决此问题:

# check the device name you are using
# It gives something like this:
$ ./adb devices
List of devices attached 
emulator-5554   device

# open logcat of the device
$ ./adb -s emulator-5554 logcat
D/AndroidRuntime(  943): 
D/AndroidRuntime(  943): >>>>>> AndroidRuntime START com.android.internal.os.RuntimeInit <<<<<<
D/AndroidRuntime(  943): CheckJNI is ON
.
.
.

答案 1 :(得分:7)

这两个语句都产生log log:

    android.util.Log.d(TAG, "This is Log.d");
    System.out.println("This is System.out.println");

答案 2 :(得分:3)

仅适用于使用Android Studio的用户。您可以打开Android DDMS工具窗口(Cmd + 6)并使用右上角的下拉框关闭所有过滤器。它似乎使用app:com.your.package.name作为默认值,用于过滤测试输出。

答案 3 :(得分:2)

简单地使用Log.v("MyIdentifier","MyMessage")语句似乎记录了我的一切,包括单元测试类本身和我测试的Android应用程序。

此信息可能有助于第一次使用Android jUnit的人:

Android jUnit测试只会在测试类中调用getActivity()时实际启动活动。如果未调用get Activity,您将看不到您已编写的任何日志记录调用的结果,例如onCreateonResume。虽然Android Manifest中标记为“Main”和“Launcher”的Activity正在测试中,但此规则似乎有例外。