Robolectric visible()"W/InputEventReceiver:尝试使用批量输入事件,但输入事件接收器已被处理掉."

sea*_*ers 5 android jenkins robolectric

我们Robolectric在我们的SDK上使用UnitTests,但有一件事我注意到,当我们运行我们的测试时,这绝对会使日志变得混乱(Jenkins当你运行近200个测试时,这尤其是一个问题).

我们所有测试开始的一个例子是,

@RunWith(RobolectricGradleTestRunner.class)
@Config(constants = BuildConfig.class, emulateSdk=21)
public class AppTest {

    private MainActivity activity;

    @Before
    public void setUp() throws Exception {
        activity = Robolectric.buildActivity(MainActivity.class).create().start().resume().visible().get();
    }
}
Run Code Online (Sandbox Code Playgroud)

但是当我们跑过去的时候,

activity = Robolectric.buildActivity(MainActivity.class).create().start().resume().visible().get();

我们在日志中得到了这个,

18:56:02 W/InputEventReceiver: Attempted to consume batched input events but the input event receiver has already been disposed. 18:56:02 W/InputEventReceiver: Attempted to consume batched input events but the input event receiver has already been disposed. 18:56:02 W/InputEventReceiver: Attempted to consume batched input events but the input event receiver has already been disposed.

三条线,一遍又一遍,一遍又一遍.打印输出发生在Android源内,在android.view.InputEventReceiver:consumeBatchedInputEvents,

public final boolean consumeBatchedInputEvents(long frameTimeNanos) {
    if (mReceiverPtr == 0) {
        Log.w(TAG, "Attempted to consume batched input events but the input event "
                + "receiver has already been disposed.");
    } else {
        return nativeConsumeBatchedInputEvents(mReceiverPtr, frameTimeNanos);
    }
    return false;
}
Run Code Online (Sandbox Code Playgroud)

因此,在没有找到如何压制记录器(我真的不想这样做)的情况下,我很想找到一种不会在每次测试开始时都被击中的方法.