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

时间:2015-01-30 00:43:36

标签: android junit4 android-support-library android-testing

我尝试使用Android Support Test Library(之前为android-test-kit)并为我的某个项目创建测试。它包含一些功能性的'代码和单个项目中的UI代码。

我的目的是使用JUnit4而不是与JUnit3混合,所以我使用AndroidJUnitRunner。 为“功能”创建了多个测试类。代码遵循JUnit4并且工作正常。

最近我开始实现UI组件的测试。参考documentation receipt已经实施了多项测试。这些活动测试遵循JUnit4样式,并根据上述文档扩展ActivityInstrumentationTestCase2

我现在面临的问题是:无法一次执行所有测试。如果我尝试从IntelliJ Idea运行package / all测试(Activity和'功能'在同一个项目中) - 只执行纯JUnit4测试。我怀疑问题出在ActivityInstrumentationTestCase2,它扩展了TestCase并且不是纯粹的JUnit4测试类。

是否有可能以某种方式在使用Android支持测试库(android-test-kit)的Activity测试中摆脱ActivityInstrumentationTestCase2并且所有测试都在运行?或者我对问题根源(关于TestCase)的假设是错误的?

2 个答案:

答案 0 :(得分:3)

不推荐使用{p> InstrumentationTestCaseActivityTestCaseActivityInstrumentationTestCase2,而应使用ActivityTestRuleInstrumentationRegistry对于获取应用程序上下文和检测实例也很有用。

答案 1 :(得分:1)

最后找到了唯一可行的解​​决方案:将InstrumentationTestCaseActivityTestCaseActivityInstrumentationTestCase2从AOSP源复制到我的项目中。之后,从InstrumentationTestCase的{​​{1}}中删除继承。在此项目中完成的方式相同(AndroidJunit4)。 实际上不需要TestCase,这些更改和documentation receipt足以使活动测试成为JUnit4并避免混合问题。