正确启用多文件测试套件

时间:2015-09-03 16:03:35

标签: android android-testing android-espresso android-accessibility

我试图围绕设置Android Espresso' s AccessibilityChecks的正确方法。文档建议我只需在AccessibilityChecks.enable()设置方法中调用@Before即可。问题是,如果在该类中有多个测试,则第二次测试运行将抛出异常警告AccessibilityChecks已启用。您可以通过在@BeforeClass静态设置方法中调用它来解决此问题。但是,如果您有另一个应启用AccessbililtyChecks的测试,则会收到相同的错误。 AccessibilityChecks.enable()创建了一个全局视图断言,据我所知,该断言无法被禁用或删除。

我目前的解决方法是让Espresso测试在所有其他测试(AAA_AccessibilityTest.java)之前运行,并且我不会在其他地方启用它。

问题在于,如果我专注于特定的测试集,可访问性检查不会运行,因为该测试不包括在内。

也许来自Android的人可以在这里权衡,但我还没有能够在Github或其他地方找到任何可用的示例,这些示例表明这是在一个非平凡的测试套件中使用。

AccessibilityChecks.enable()的意图很棒,但是在我们disable()之后,enable()它们的实现似乎完全被打破了。我错过了什么吗?我怎样才能以可靠和理智的方式使用它?

1 个答案:

答案 0 :(得分:3)

您可以在自定义测试运行器中启用它:

public class AccessibilityChecksTestRunner extends AndroidJUnitRunner {
  static {
    AccessibilityChecks.enable();
  }
}

build.gradle中使用:

testInstrumentationRunner "com.example.AccessibilityChecksTestRunner"