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

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

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

在这里输入图像描述

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

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

这是设计。

此规则提供了单个活动的功能测试。 被测试的活动将在每个用@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