我是Java开发人员,拥有多年的Java EE,Ant,Maven,单元测试,模拟等等。我目前正在使用gradle来构建Android应用程序,我正在研究单元测试它们。它让我撕裂了我的头发!
我的阅读表明要测试应用程序,我必须在测试目录中创建另一个应用程序。但我不确定这个嵌入式应用程序如何看到主要的应用程序类。我认为谷歌想出了这个,因为与不同的清单有关。我不确定为什么。
在没有这个嵌入式应用系统的情况下,我已经能够通过将测试类与APK中的主类包括在一起来运行单元测试,将清单中的检测声明添加到清单,部署它并运行测试运行器。但我不想用app类编译测试类并包含所有依赖项,所以这不是一个真正的选项,我不能确定更改对清单的影响,因为我找不到任何关于效果的文档
遵循建筑物的maven系统的gradle无法理解这一点。另请注意,android方式似乎是嵌入式子项目(测试)依赖于主要父项目,这完全是对gradle和maven的控制。
另一个选项似乎是将测试项目分开,以便它完全在app项目之外。但实际上,我想使用与maven类似的约定,只需在单独的目录中测试,以及测试资源中的清单。
有没有人设法在运行单元测试的仿真器上进行测试,而这些仿真器遵循更像maven的目录结构?
答案 0 :(得分:2)
您可以尝试 Robotium 。它为更好的测试用例提供了许多功能。您可以查看here。
答案 1 :(得分:1)
您是否必须在模拟器中运行单元测试?这不是太慢吗?我一直在使用robolectric(http://pivotal.github.com/robolectric/)来创建类似于模拟的阴影对象。我使用progaurd(http://proguard.sourceforge.net/)来删除发布版本的测试。