测试我的maven库与Android

时间:2016-01-03 18:01:38

标签: java android maven unit-testing junit

TL; DR

我有一个Java项目,我用maven构建和测试。在Android sdk上运行junit测试最简单的方法是什么?

更多详情

提交后,用户打开一个错误报告,解释我破坏了与android的兼容性,因为我引入了对javax.xml.bind的依赖,而且这个包在Android上不存在。

现在我设法在不使用此软件包的情况下实现我的功能,并且我想确定我不再打破这种兼容性。因此,我想在Android Sdk上运行我现有的junit4测试。问题是我是一个Android菜鸟,我开始淹没在文档中:

  • 会使用local unit tests符合我的需求吗?
  • 如果是,我可以将它们与maven一起使用,还是先切换到gradle? (即:documentation解释了如何使用Gradle。它是先决条件,还是可以用我现有的构建系统来完成?)
  • 或者我必须承担使用instrumented unit tests的负担吗? (那些甚至是可用的,因为我的项目中根本没有UI的概念吗?)

1 个答案:

答案 0 :(得分:0)

  1. 是。 用于Gradle的Android插件会跟踪,由于lib的API级别minSdkVersion限制,您不使用不允许使用的API。 (我很确定,它也可以用 maven-android-plugin 进行存档)

  2. 这是possible,需要Surefire Plugin。不幸的是,我没有亲自尝试过,所以我可以简单地说,从我简要阅读的内容来看 - 它看起来古老而且不是特别容易设置。所以,如果我是你,我会去Gradle。但如果它的成本太高 - 那么。它也可以和maven一起使用。

  3. 除非您想测试活动和一些复杂的端到端UI(片段,意图等)场景,否则您最好使用JUnit测试。即使你确实需要与Android的Activity / Fragment相关的东西,你也可以使用Robolectric lib(它是一个单元测试框架,允许在许多情况下避免使用仪器测试)