在运行Android JUnittesting时,LogCat的Log.x()输出会去哪里?

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

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

Solutions Collecting From Web of "在运行Android JUnittesting时,LogCat的Log.x()输出会去哪里?"

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

您可以通过从命令行(terminal窗口)检查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 . . . 

这两个语句都会在logcat中生成日志:

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

只适用于使用Android Studio的任何人。 您可以打开Android DDMS工具窗口(Cmd + 6),并使用右上angular的下拉框closures任何filter。 它似乎使用app:com.your.package.name作为默认值,它过滤testing输出。

简单地使用Log.v("MyIdentifier","MyMessage")语句似乎为我logging了所有内容,无论是来自unit testing类本身还是来自我的Android应用程序。

这个信息可能会帮助第一次使用Android jUnit的人:

当testing类中调用getActivity()时,Android jUnittesting实际上只会启动一个活动。 如果没有调用Activity,您将看不到任何logging调用的结果,例如onCreateonResume 。 虽然Android Manifest中标记为“Main”和“Launcher”的Activity正在testing中,但似乎有一个例外。