我已经编写了一些检测测试,并且断言正在传递 - 但无论它们运行的是什么配置,运行永远不会终止/结束 - 我必须手动终止运行 - 这不是最佳的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);
}
}
对于上下文我试图测试我在一个由讲师编写的简单游戏引擎上编写的类中的触摸行为,我编写的测试代码和断言全部工作 - 但问题是运行没有完成。
我是否必须进行某种“拆解”操作?破坏ActivityTestRule
的方法?我该怎么做才能确保此运行正确完成?
有趣的是,这些非常简单的断言在Nexus 7仿真器上成功运行在API 25上,但是当在运行API 23的Nexus 5仿真器中运行时,测试无法完成,如上所述。
更多信息:
下面是我开始跑步的照片,然后5分钟后它就挂了。它应该已经完成了2次测试。 2秒。
答案 0 :(得分:0)
我现在已经解决了这个问题,通常开发人员会添加一个onView
调用,但是由于我正在使用的框架的性质,我没有这样做。我添加了
onView(withId(R.id.activity_fragment_id)).perform(click());
到设置,只需点击游戏在其中运行的主区域,现在测试通过。