Android Studio 0.8中的单元测试

时间:2014-06-24 07:38:56

标签: android unit-testing android-studio

  

突发新闻: Android Studio 1.1.0现在内置了对单元测试的支持。点击此处:https://sites.google.com/a/android.com/tools/tech-docs/unit-testing-support

  

起初我知道非常非常非常类似的问题(即使在这里也是如此)。他们中的大多数都非常过时,所以我问一个新的问题应该是Android Studio 0.8.x的最新版本。

我知道有些图书馆以某种方式运作,但几乎在每种情况下我都没有证据证明这些信息是最新的。我知道有例如roboelectric,还有一些被弃用的杰克沃顿,如gradle-android-test-plugindouble-espresso,我还找到了图书馆RoboSpockDeckard。但它们似乎都没有任何Android Studio集成。

经过长时间的研究,我在所有实现中发现了这两个错误:

  • 类路径被破坏,需要被黑客攻击才能运行junit
  • 无法调试junit测试

我在寻找:

  • 我想自动测试算法(普通的java)
  • 我想查看我的Android应用中的集成工作
  • 我希望在Android Studio中进行集成,以便我可以从堆栈跟踪中跳转到代码
  • 我想步骤测试代码

我发现某个地方还有一个很好的黑客,它将gradle中的测试作为一个外部任务运行,并将结果推送到AS中,以便显示结果,但不幸的是我再也找不到该链接(如果我没记错的话)也不适合我。)

你们有新鲜的参考资料吗?它对你有用吗?

4 个答案:

答案 0 :(得分:2)

您必须编辑Android Studio生成的.iml文件以指向您的测试类目录,并修复Junit中的Stub错误。目前没有解决此问题的方法。

Gradlectric是一个使用Robolectric Gradle Plugin在Android Studio中运行单元测试的示例。

答案 1 :(得分:1)

这里您错过了一个示例项目设置https://github.com/nenick/android-gradle-template

  

但他们似乎没有任何Android Studio集成。

这个项目是为android studio维护的

  

类路径被破坏,需要被黑客攻击才能运行junit

gradle脚本将修复类路径

  

无法调试junit测试

测试AS内部运行,以便于调试

答案 2 :(得分:0)

我的

This项目并未涵盖所有您的请求,但其中包含相当多的请求。 它涵盖了一个默认的Java测试用例,以及一些与Views交互的测试。

根项目使用Travis CI,它使用gradle connectedCheck来运行测试。为了能够调试测试,您只需在AS中创建测试运行配置并在调试模式下运行它。

请注意,这不使用任何特殊的Android测试框架,如robolectric。

答案 3 :(得分:0)

你可以找到Jake Wharton的gradle-android-test-plugin here的分支。这与AS 0.6兼容,并由Robolectric定期维护。您可以借助此插件查看this project在Android Studio中设置Robolectric。在robolectric-gradle-plugin的帮助下,您可以实现您提到的相当多的功能。您还可以使用AS成功调试测试代码。