在一个多模块Android项目中,我有一个其他Android库和应用程序所依赖的普通Java项目。我最近使用Gradle迁移了整个项目。
我在运行普通Java项目的junit测试时遇到问题,仅在Android Studio中运行。在命令行上,测试运行正常:
./gradlew -p the-java-proj test
这会按预期执行单元测试,如果我插入Assert.fail()
作为完整性检查,我会正确地得到预期的失败。
但是,我无法在Android Studio中运行单元测试。我创建了一个运行配置来运行包中的所有测试,运行时出现此错误:
运行MYTESTNAME时出错:模块“MYMODULENAME”运行时范围内没有junit.jar
最后的“运行范围”很可疑,但我不知道我应该怎么做。这是项目的build.gradle
:
apply plugin: 'java'
repositories {
mavenCentral()
}
dependencies {
testCompile 'junit:junit:4.11'
testCompile 'org.mockito:mockito-all:1.9.5'
}
这尤其令人费解,因为我可以在迁移到Gradle之前在Android Studio中运行单元测试。只是现在我有这样的问题。我也没有获得友好的上下文菜单选项来运行单个单元测试。而且,据我记忆,在以前工作的当前文件中运行单元测试的键盘快捷键,现在它只是弹出运行配置选择器,没有添加新选项。
答案 0 :(得分:2)
如果你将java项目附加到android项目,当从主项目运行测试时,它将不会在java库项目中运行测试。它只做的是创建库项目的jar。 所以我们需要明确告诉你运行测试任务。
apply plugin: 'java'
repositories {
mavenCentral()
}
dependencies {
testCompile 'junit:junit:4.11'
testCompile 'org.mockito:mockito-all:1.9.5'
}
jar.dependsOn test
答案 1 :(得分:0)
来自这篇文章:https://coderwall.com/p/ybds4w(感谢@GalBenHaim)
但是,如果您需要单独使用JUnit进行POJO测试或使用流行的框架,那么Android Studio中还没有集成支持。
换句话说,在我写这篇文章时,Android Studio无法做到这一点,我无法在POJO上运行我的JUnit测试。在命令行上它工作正常(./gradlew test
)。