是否可以使用支持测试库摆脱 ActivityInstrumentationTestCase2?

Is it possible to get rid of ActivityInstrumentationTestCase2 using Support Test Library?

我正在尝试使用 Android Support Test Library(以前是 android-test-kit)并为我的一个项目创建测试。它包含一些 'functional' 代码以及单个项目中的 UI 代码。

我打算使用 JUnit4 而不是与 JUnit3 混用,所以我使用 AndroidJUnitRunner。 为遵循 JUnit4 且工作正常的 'functional' 代码创建了测试 classes 的数量。

最近我开始为 UI 组件实施测试。参考 documentation receipt 数量的测试已经实施。这些 activity 测试遵循 JUnit4 风格并基于上述文档扩展 ActivityInstrumentationTestCase2

我现在面临的问题:一次执行所有测试是不可能的。如果我尝试从 IntelliJ Idea 运行 打包/所有测试(Activity 和 'functional' 出现在同一个项目中)——只执行纯 JUnit4 测试。我怀疑问题出在 ActivityInstrumentationTestCase2 中,它扩展了 TestCase 而不是纯 JUnit4 测试 class.

是否有可能以某种方式摆脱 Activity 测试中的 ActivityInstrumentationTestCase2 使用 Android 支持测试库 (android-test-kit) 并进行所有测试运行宁?或者我对问题根本原因(大约 TestCase)的假设是错误的?

终于找到了唯一可能的解决方案:将 InstrumentationTestCaseActivityTestCaseActivityInstrumentationTestCase2 从 AOSP 源代码复制到我的项目中。之后,移除 InstrumentationTestCase of TestCase 的继承。与此项目中的方法相同 (AndroidJunit4)。 实际上不需要 TestCase,这些更改和 documentation receipt 足以让 activity 测试成为 JUnit4 并避免混合问题。

InstrumentationTestCaseActivityTestCaseActivityInstrumentationTestCase2 已弃用,您应该使用 ActivityTestRule instead. InstrumentationRegistry 对于获取应用程序上下文和检测实例也很有用。