我试图围绕设置Android Espresso' s AccessibilityChecks
的正确方法。文档建议我只需在AccessibilityChecks.enable()
设置方法中调用@Before
即可。问题是,如果在该类中有多个测试,则第二次测试运行将抛出异常警告AccessibilityChecks
已启用。您可以通过在@BeforeClass
静态设置方法中调用它来解决此问题。但是,如果您有另一个应启用AccessbililtyChecks
的测试,则会收到相同的错误。 AccessibilityChecks.enable()
创建了一个全局视图断言,据我所知,该断言无法被禁用或删除。
我目前的解决方法是让Espresso测试在所有其他测试(AAA_AccessibilityTest.java
)之前运行,并且我不会在其他地方启用它。
问题在于,如果我专注于特定的测试集,可访问性检查不会运行,因为该测试不包括在内。
也许来自Android的人可以在这里权衡,但我还没有能够在Github或其他地方找到任何可用的示例,这些示例表明这是在一个非平凡的测试套件中使用。
AccessibilityChecks.enable()
的意图很棒,但是在我们disable()
之后,enable()
它们的实现似乎完全被打破了。我错过了什么吗?我怎样才能以可靠和理智的方式使用它?
答案 0 :(得分:3)
您可以在自定义测试运行器中启用它:
public class AccessibilityChecksTestRunner extends AndroidJUnitRunner {
static {
AccessibilityChecks.enable();
}
}
在build.gradle
中使用:
testInstrumentationRunner "com.example.AccessibilityChecksTestRunner"