是否需要将 gradle 与 roboelectric 一起用于 android 单元测试?
Is it necessary to use gradle with roboelectric for android unit testing?
我和我的团队已经建立了一个 android 图书馆项目。它建立在 eclipse 之上,但我们使用 ant 来构建它。目前我们没有使用 gradle。我有一个带有依赖项 jar 文件的 roboelectric。但是当我使用它时,运行 单元测试时,出现以下错误
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 时,它停止工作。
谁能解释为什么会这样?
另外,gradle 是否需要使用 roboelectric?如果没有,我在哪里可以找到 roboelectric 的 jar 文件 with/without 依赖项?
gradle 和 robolectric 没有必要一起使用。它只是 运行 指定 java class(来自 junit)和正确的 class 路径(包括您的源代码、测试代码和依赖项)。通过 Whosebug 修复你的案例并不是一件容易的事(即使你坐在同一台电脑后面,这也会是一些挑战)。
以下是可能的解决方案:
- 将您的项目构建迁移到 gradle
- 继续使用 ant,但从依赖管理从手册 jars 转移到 ivy
- 继续使用 ant 和手动 jars 依赖项,但尝试使用除 ant one
之外的所有依赖项获取 robolectric.jar
第一个选项对我来说是最简单的选项。这需要稍微改变一下思维方式,但这只是 Google 正式支持的一种构建工具,还有很多示例和人员可以提供帮助。
第二个也要求你学习如何使用新工具。此外,关于常春藤使用的例子也较少,尤其是在 android 项目中。
第三个将需要编写自定义脚本以从 jar 文件中删除 ant 或重建 robolectric-all.jar 而无需一个(ant)依赖项。这将需要深入maven构建工具学习
我和我的团队已经建立了一个 android 图书馆项目。它建立在 eclipse 之上,但我们使用 ant 来构建它。目前我们没有使用 gradle。我有一个带有依赖项 jar 文件的 roboelectric。但是当我使用它时,运行 单元测试时,出现以下错误
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 时,它停止工作。 谁能解释为什么会这样? 另外,gradle 是否需要使用 roboelectric?如果没有,我在哪里可以找到 roboelectric 的 jar 文件 with/without 依赖项?
gradle 和 robolectric 没有必要一起使用。它只是 运行 指定 java class(来自 junit)和正确的 class 路径(包括您的源代码、测试代码和依赖项)。通过 Whosebug 修复你的案例并不是一件容易的事(即使你坐在同一台电脑后面,这也会是一些挑战)。
以下是可能的解决方案:
- 将您的项目构建迁移到 gradle
- 继续使用 ant,但从依赖管理从手册 jars 转移到 ivy
- 继续使用 ant 和手动 jars 依赖项,但尝试使用除 ant one 之外的所有依赖项获取 robolectric.jar
第一个选项对我来说是最简单的选项。这需要稍微改变一下思维方式,但这只是 Google 正式支持的一种构建工具,还有很多示例和人员可以提供帮助。
第二个也要求你学习如何使用新工具。此外,关于常春藤使用的例子也较少,尤其是在 android 项目中。
第三个将需要编写自定义脚本以从 jar 文件中删除 ant 或重建 robolectric-all.jar 而无需一个(ant)依赖项。这将需要深入maven构建工具学习