是否有必要使用gradle和roboelectric进行Android单元测试?

时间:2015-05-15 14:00:54

标签: robolectric

我和我的团队建立了一个android库项目。它建立在eclipse上,但我们正在使用ant来构建它。目前我们没有使用gradle。我有一个roboelectric与依赖jar文件而不是。但是当我使用它时,在运行单元测试时,会出现以下错误

WARNING: multiple versions of ant detected in path for junit 
[junit]          jar:file:/Users/prateekarora/Desktop/eclipse/plugins/org.apache.ant_1.9.2.v201404171502/lib/ant.jar!/org/apache/tools/ant/Project.class
[junit]      and jar:file:/Users/prateekarora/trunk/client/android/MCCMobileClient/test2/libs/robolectric-2.3-with-dependencies.jar!/org/apache/tools/ant/Project.class

当我从eclipse的插件文件夹中删除apache ant时,这将停止工作。 任何人都能解释为什么会这样吗? 另外,是否有必要使用带有摇篮的机电?如果不是,我在哪里可以找到具有/不具有依赖关系的roboelectric的jar文件?

1 个答案:

答案 0 :(得分:3)

没有必要使用带有robolectric的gradle。它只是运行指定的java类(来自junit)和适当的类路径(包括源代码,测试代码和依赖项)。修复你的情况不是很容易通过stackoverflow进行的(即使你坐在同一台计算机后面也会有一些挑战)。

以下是可能的解决方案:

  1. 将项目构建迁移到gradle
  2. 继续使用ant但从依赖管理从手册jars转移到ivy
  3. 继续使用ant和manual jars依赖,但尝试使用除ant one之外的所有依赖项获取robolectric.jar
  4. 对我来说,第一个选项是最简单的选择。它需要稍微改变一下心态,但这只是Google正式支持的构建工具,并且有很多示例和人员可以提供帮助。

    第二个还要求您学习如何使用新工具。此外,关于常春藤使用的例子较少,特别是在Android项目中。

    第三个将需要编写自定义脚本,该脚本从jar文件中删除ant或重建没有一个(ant)依赖项的robolectric-all.jar。这将需要深入研究maven构建工具学习