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

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

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

在这里输入图像描述

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

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

  • Android Espresso无法输入TYPE_TEXT_VARIATION_NORMAL?
  • Android Espresso - 如何查看视图在活动结束前匹配?
  • Espresso,当NestedScrollView或RecyclerView在CoordinatorLayout中时,滚动不起作用
  • 如何检测Android应用程序是否正在用Espresso进行UI测试
  • 用MVP + Dagger进行Android测试2
  • 我如何从ID中提取文本?
  • 多次运行浓缩咖啡测试
  • Android Espresso测试(用Kotlin编写)看不到主要的类和包
  • 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.