Islands in the byte stream

Technical notes by a software engineer

Robolectric 3.0でandroid.util.Logの出力を確認する方法

テストケースクラスで以下の用に設定すると、 android.util.Log の結果がAndroid Studioのテストログに出力される。

static {
    System.setProperty("robolectric.logging", "stdout");
}

テスト実行の際のVM optionsに -Drobolectric.logging=stdout を与えても同じだけど、異なるテスト設定を作るたびにこのオプションを設定するのは面倒だ。だから詳細なログが必要なテストケースでのみ有効にするのがいいと思う。コードに記録されるから情報共有もしやすいし。

なおrobolectricで実行すると BuildConfig.DEBUGfalse になるので、ライブラリであればログの有効化は外から指定できるようにしたほうがいい。あるいはTimberのようなロガーを使うのも悪くない。

参考: robolectric/ShadowLog.java at robolectric-3.0 · robolectric/robolectric · GitHub