我有一个运行各种测试套件的类。每个后续的测试套件都会失败,因为没有在测试套件之间清除应用程序状态。我不想使用Android Orchestrator,因为它可以在每次测试之间清除数据,我只想在套件之间进行。
我已经有一些代码可以清除数据,但在调用后没有运行任何测试,所以我目前不知所措。
@RunWith(Categories::class)
@Categories.IncludeCategory(RegressionTests::class)
@Suite.SuiteClasses( AuthenticationTests::class,
AuthenticationInvalidTests::class,
CreateAccountTests::class,
AccountSecurityTests::class,
CountrySelectionTests::class
)
// Run this class to run regression tests
class RegressionTests {
// Clear app data between test suites
companion object {
@ClassRule
@JvmField
val resource: ExternalResource = object : ExternalResource() {
override fun after() {
val context = getApplicationContext<Context>()
val runtime = Runtime.getRuntime()
runtime.exec("pm clear ${context.packageName}")
}
}
}
}