Android 无限测试 运行

Android instrumented test infinitely running

我已经编写了一些仪器测试,并且断言正在通过 - 但是无论它们 运行 在什么配置中, 运行 永远不会 terminates/ends - 我必须手动终止 运行 - 这对于 CI 设置来说不是最佳选择。

我已尝试 运行在以下 运行 配置中使用以下代码:

即使我取出我的测试代码并进行非常简单的测试(正如我在下面所做的那样),代码执行也不会完成。

public class TestClass {

    private MainActivity mainActivity;
    private MyScreen myScreenInstance;

    @Rule
    public ActivityTestRule mActivityRule = new ActivityTestRule<>(MainActivity.class);

    @Before
    public void setUp() throws FileNotFoundException {
        mainActivity = (MainActivity) mActivityRule.getActivity();
    }

    @Test
    public void test_1() throws FileNotFoundException {
        assertEquals(1,2);
    }

    @Test
    public void test_2() throws FileNotFoundException {
        assertEquals(2,2);
    }


}

对于上下文,我正在尝试测试 class 中的触摸行为,我在一个由讲师编写的简单游戏引擎之上编写,我编写的测试代码和断言都有效 -但问题是 运行 没有完成。

我必须要有某种 'teardown' 方法来销毁 ActivityTestRule 吗?我该怎么做才能确保此 运行 正确完成?

有趣的是,这些非常简单的断言在 Nexus 7 模拟器 API 25 上成功 运行,但是当 运行 在 Nexus 5 模拟器 运行ning API 23 测试未按上述说明完成。

更多信息:

下面是一张 运行 我开始的图片,然后 5 分钟后就挂了。它应该在 < 2 秒内完成 2 个测试。

我现在已经解决了这个问题,通常开发人员会添加一个 onView 调用,但是由于我工作的框架的性质,我没有这样做。我已添加

onView(withId(R.id.activity_fragment_id)).perform(click());

到设置,只需单击游戏运行的主要区域,现在测试通过。