2014-06-24 59 views
7

最新消息: Android Studio 1.1.0现在内置了对单元测试的支持。查看更多在这里:https://sites.google.com/a/android.com/tools/tech-docs/unit-testing-supportAndroid Studio 0.8中的单元测试

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

我知道有一些图书馆以某种方式工作,但在几乎每种情况下,我都没有证据表明信息是最新的。我知道有例如roboelectric,也有一些不赞成的杰克沃顿像gradle-android-test-plugindouble-espresso,我也发现图书馆RoboSpockDeckard。但他们都没有任何Android Studio集成。

长的研制后,我发现这两个错误在所有实现:

  • 类路径被破坏,需要被黑客攻击获得的JUnit运行
  • JUnit测试不能被调试

我在寻找什么:

  • 我想自动测试一个算法(这是普通Java)
  • 我要检查的集成在我的Android应用程序的工作原理
  • 我想在Android Studio中的集成,这样我可以跳进码出堆栈跟踪的
  • 我想一步thrue测试代码

我还发现某处一个很好的破解这gradle这个作为外部任务运行的测试,并将结果推到AS,这样的结果可以被显示,但不幸的是,我不能再次找到该链接(如果我记得正确它也没有为我工作)。

你们有一些新鲜的参考吗?对你起作用吗?

回答

2

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

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

+0

我试图在你的项目中实现它,但是我总是以*类未找到的方式结束:“com.example.test.FirstTest “*错误。 – rekire

+0

那么我使用[此修复](https://github.com/nenick/android-gradle-template/wiki/Tests-in-Android-Studio---IntellJ)现在它的工作。 – rekire

+0

感谢您的链接,我更新了我的回购以包含缺少的步骤。 –

0

This我的项目不包括全部你的要求,但它们的公平很多。它涵盖了默认的Java测试用例,以及一些与Views交互的测试。

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

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

+0

因为您引用的文件似乎不在版本控制中,所以很难理解项目gradle文件。结果出现在哪里(如果出现错误)就像构建目录中的html/xml文件一样? – rekire

+0

一切都在版本控制中。您可能必须导航到根目录,因为整个项目由多个模块组成。这个模块有一些测试。 'apply from:...'使用的gradle文件与单元测试没有任何关系。 使用gradle命令时,结果将显示为html/xml,当在AS中运行测试配置时,您将在AS GUI中获得很好的输出。 – nhaarman

+0

我需要检查一下。当我完成时,我会留下另一条评论。 (这可能需要一些时间,我现在正在修补其他东西) – rekire

0

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

+0

嗯,我有一个Deckard(项目)的大问题,我想扩展一个现有的项目。这在他们的页面上根本没有解释。这个maven插件的问题是,我甚至没有安装maven,甚至没有听说过'brew'。你能指导我吗? – rekire

+0

你正在使用什么操作系统?此外,只要您使用的是Android Studio项目,对于新项目或现有项目而言,该过程非常相似。按照这里给出的说明 - https://github.com/robolectric/robolectric-gradle-plugin – Shubham

1

在这里,你会错过一个示例项目设置https://github.com/nenick/android-gradle-template

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

这个项目保持为Android工作室

类路径被破坏,需要被黑客攻击获得的JUnit运行

gradle这个脚本将修复类路径

junit测试不能被调试

测试AS内部的一个运行,因此它们很容易调试

+0

我用接受的答案与你的答案混合在一起。不过,我只能接受一个答案,所以你有一个+1。 – rekire