Android Espresso - 如何为所有测试仅运行一次安装程序

时间:2017-08-04 18:28:01

标签: android kotlin android-espresso

我正在使用Espresso / Kotlin为我们的Android应用程序运行测试,我想为给定测试类中的所有测试运行一次设置。

我创建了一个伴随对象来启动应用程序一次(它确实如此),然后它会关闭,并且在每次测试运行时都不会保持打开状态。

enter image description here

如何让它启动应用程序,在测试类中运行所有测试,然后关闭应用程序?

我也尝试过以下操作,但它仍会启动一次然后关闭,然后尝试运行测试: enter image description here

1 个答案:

答案 0 :(得分:1)

这是设计的。

  

此规则提供单个活动的功能测试。在使用@Test注释的每个测试之前以及使用@Before注释的任何方法之前,将启动测试中的活动。它将在测试完成后终止,并且所有使用@After注释的方法都已完成。通过调用ActivityTestRule.getActivity()。

,可以在测试期间访问测试中的活动

来源:JUnit4 Rules

您可以通过制定自定义规则来解决这个问题。否则,您可以创建一个@Test并将每个断言放入其中。要保留一般格式,可以将断言放在单独的私有函数中。

例如:

@Test
fun testLoginPage() {
    testLoginButtonIsDisplayed()
    // call other private functions
}

private fun testLoginButtonIsDisplayed() {
    loginPage.loginButton.check(matches(isDisplayed()))
}

//  add other private functions