Мне нужно протестировать вариант использования, когда приложение запускается из чистого состояния, т. е. процесс не запускался до начала теста. Из того, что я вижу из logcat
, все инструментальные тесты выполняются в рамках одного экземпляра/сеанса процесса, поэтому результат теста в моем случае зависит от того, работает ли он как #1 или нет. Так быть не должно — как мы все знаем, юнит-тесты (или инструментальные тесты) должны быть автономными.
Есть ли способ со стандартными инструментами и функциями тестирования инструментов Android заставить TestRunner перезапустить процесс перед данным тестом? Если нет, есть ли хаки или сторонние библиотеки, которые могут помочь мне в этом? Или я могу каким-то образом сказать, что тест X должен запускаться первым (худший вариант, но все же)?
В частности, мой тест относится к запуску действий через намерения, а флаги намерений (например, FLAG_ACTIVITY_CLEAR_TOP
) в дополнение к режиму запуска действия (например, singleTop
) и состоянию процесса во многом определяют результат теста.