【发布时间】:2016-04-07 09:24:32
【问题描述】:
TL;DR
我有一个使用 maven 构建和测试的 Java 项目。在 Android sdk 上运行我的 junit 测试最简单的方法是什么?
更多详情
提交后,用户打开一个错误报告,解释说我破坏了与 android 的兼容性,因为我引入了对 javax.xml.bind 的依赖,而这个包在 Android 上不存在。
现在我设法在不使用此软件包的情况下实现了我的功能,并且我想确保不再破坏这种兼容性。因此,我想在 Android Sdk 上运行我现有的 junit4 测试。问题是我是一个 Android 菜鸟,我开始淹没在文档中:
- 使用local unit tests 会满足我的需求吗?
- 如果是,我可以将它们与 maven 一起使用还是先切换到 gradle? (即:documentation 解释了如何使用 Gradle 来实现。这是先决条件,还是可以使用我现有的构建系统来实现?)
- 或者我必须承担使用instrumented unit tests 的负担吗? (考虑到我的项目中根本没有 UI 的概念,这些还能用吗?)
【问题讨论】:
-
其实是个有趣的问题。我可以回答 1) 是的。 Android Studio 将跟踪您没有使用由于 API 级别
minSdkVersion库的限制而不允许使用的 API。 3) 除非您想测试活动和一些复杂的端到端 UI(片段、意图等)场景 - 您最好使用 JUnit 测试。我没有完全理解第二个问题。你能扩展它的描述(解释你的想法)吗? (不幸的是,我对 maven 不太熟悉) -
感谢您提供此信息。我刚刚编辑了我的第二个问题。换一种说法:据我了解,Gradle 被描述为 Maven 的“继任者”。特别是,developer.android.com/training/testing/unit-testing/… 正在解释如何使用 Gradle 构建和测试。如果绝对需要,我可以更改我的构建系统。另一方面,是否可以使用 maven-android-plugin (simpligility.github.io/android-maven-plugin/index.html) 来做我想做的事情?
-
"people say"(C) 是可能的并且需要Surefire Plugin,尽管它看起来很古老并且设置起来并不容易。所以如果我是你,我会选择 Gradle。但如果它的成本太高 - 好吧。 maven 也可以。
-
感谢您的指点!
-
不客气。我希望,你会管理它! (实际上,之后在博客的某个地方分享可能是一次有趣的经历)。到目前为止,我已经将我们的对话框转换为下面的答案。
标签: java android maven unit-testing junit