4

在一个多模块 Android 项目中,我有一个其他 Android 库和应用程序所依赖的纯 Java 项目。我最近将整个项目迁移到使用 Gradle 构建。

我只在 Android Studio 中运行纯 Java 项目的 junit 测试时遇到问题。在命令行上,测试运行良好:

./gradlew -p the-java-proj test

这会按预期执行单元测试,如果我插入 aAssert.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 中很好地运行单元测试。只是现在我有这样的问题。我也没有获得友好的上下文菜单选项来运行单个单元测试。而且,据我记得,在当前文件中运行单元测试的键盘快捷键以前可以使用,现在它只是弹出运行配置选择器,没有添加新的选项。

4

2 回答 2

3

如果将 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
于 2013-12-27T04:20:20.437 回答
1

来自这篇文章:https ://coderwall.com/p/ybds4w (感谢@GalBenHaim

但是,如果您需要专门使用 JUnit 进行 POJO 测试或使用流行的框架,那么 Android Studio 中还没有集成支持。

换句话说,在我写这篇文章的时候,Android Studio 无法做到这一点,我无法在 POJO 上运行我的 JUnit 测试。在命令行上它工作正常(./gradlew test)。

于 2013-12-22T11:06:38.127 回答