代码之家  ›  专栏  ›  技术社区  ›  George

如何使用Espresso和Junit在测试套件之间清除应用程序数据?

  •  0
  • George  · 技术社区  · 4 年前

    我有一个运行各种测试套件的类。每个后续的测试套件都会失败,因为没有在测试套件之间清除应用程序状态。我不想使用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}")
                }
            }
        }
    }
    
    0 回复  |  直到 4 年前