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