0

我已经写了一些仪器测试,并断言传递 - 但无论他们运行在什么样的配置,运行永远不会终止/结束 - 我必须手动终止运行 - 这是对于CI设置不是最佳的。Android仪器测试无限运行

我试图运行在以下运行配置下面的代码:

  • 运行所有测试类测试 - 运行第一
  • 后,在这种情况下,运行不进步到第二个测试在测试包中运行所有测试 - 在这种情况下,在运行第一个测试之后,运行不会进行到第二个测试,但是其他类中的所有其他测试都会成功。
  • 运行测试类分别

即使我拿出我的测试代码,并把在极其简单的测试(如我在下面做)的代码执行不会完成这两项测试。

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?我可以做些什么来确保此运行正确完成?

有趣的是这些非常简单的断言成功上API 25上的的Nexus 7模拟器然而,在使用Nexus 5仿真器上运行时运行的API 23如上述测试未完成运行。

更多信息:

  • 运行测试慢慢通过与调试,通过步骤步进 - 他们全部通过,因为他们应该
  • 加入了Thread.sleep(1000)到@After(拆卸)方法,所述问题停止发生。然而,这并不能解决这个问题,因为我们的运行在Firebase测试实验室中仍然超时(CI)

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

enter image description here

+0

我发布了一些关于这个帖子的新信息,我仍然在积极地寻求解决这个问题 –

回答

0

我现在已经解决了这个问题,通常开发商会增加一个onView电话,但由于框架我工作中我没有做这样的性质。我添加了

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

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

相关问题