Android Espresso – 如何在所有测试中只运行一次安装程序

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

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

在这里输入图像描述

我怎样才能启动应用程序,运行测试类中的所有测试,然后关闭应用程序?

我也尝试了以下,但它仍然启动一次然后关闭,然后尝试运行测试: 在这里输入图像描述

  • 在函数中返回单元的目的是什么?
  • 如何在Kotlin中写入文件?
  • 测试运行失败:由于'kotlin.UninitializedPropertyAccessException'导致测试运行失败
  • 如何从命令行运行Kotlin的spark java
  • 如何在Android Studio项目中添加Kotlin类?
  • 我在android项目中使用这个库,但使用https://github.com/igalata/Bubble-Picker/错误
  • Kotlin JS用可选的参数错误重写“外部”函数
  • Kotlin“out”和“in”以及泛型 - 正确的用法
  • One Solution collect form web for “Android Espresso – 如何在所有测试中只运行一次安装程序”

    这是设计。

    此规则提供了单个活动的功能测试。 被测试的活动将在每个用@Test注释的测试之前,以@Before注解的任何方法之前启动。 测试结束后将终止,所有用@After注解的方法结束。 被测试的活动可以在测试期间通过调用ActivityTestRule.getActivity()来访问。

    来源: JUnit4规则

    您可以通过制定自定义规则来解决此问题。 否则,您可以创建一个@Test ,并将其中的每个断言。 为了保持你的一般格式,你可以把你的断言放在不同的私有函数中。

    例如:

     @Test fun testLoginPage() { testLoginButtonIsDisplayed() // call other private functions } private fun testLoginButtonIsDisplayed() { loginPage.loginButton.check(matches(isDisplayed())) } // add other private functions 
    Kotlin language will be the best programming language for Android.