28

我正在尝试构建最简单的 gradle 项目(带有测试)。查看了所有相关问题和谷歌搜索,我似乎遗漏了一些非常基本的东西,而且显然不常见。

我创建了一个测试类,“gradle compileTestJava”无法编译文件说

包 org.junit 不存在

它找到了测试,知道这是一个测试,但似乎找不到自己的 junit.jar 文件。

build.gradle 包含

应用插件:'java'

就是这样。裸露的骨头!我也尝试添加

依赖{

测试编译'junit:junit:4.10'

}

有了这个,我得到“无法解决所有依赖项”,这让我认为 gradle 已经迷失了自己的文件(?)。我看到 gradle 已安装 /Users/me/Documents/Projects/gradle-1.3/lib/plugins/junit-4.10.jar 文件。

事实上,当我运行“gradle dependencies”时,我得到了

testCompile - Classpath for compiling the test sources.
No dependencies

我不知道这是否应该包含内置插件依赖项。我的猜测是它应该列出junit。

有任何想法吗?

这是我得到的:

:compileTestJava

/Users/me/Documents/Projects/experiment1/src/test/java/MyUnitTests.java:3: package org.junit does not exist
import org.junit.*;
       ^
/Users/me/Documents/Projects/experiment1/src/test/java/MyUnitTests.java:7: cannot find symbol
symbol  : class Test
location: class test.java.MyUnitTests
    @Test
     ^
/Users/me/Documents/Projects/experiment1/src/test/java/MyUnitTests.java:9: cannot find symbol
symbol  : variable Assert
location: class test.java.MyUnitTests
            Assert.assertEquals(2 + 2, 4);
            ^
3 errors
 FAILED

FAILURE: Build failed with an exception.
4

6 回答 6

16

你需要确保你已经设置了你的 repos,并且你需要包含对 junit 的依赖。这意味着您的 build.gradle 需要看起来像这样的东西

repositories {
    mavenCentral()
}

apply plugin: 'java'

dependencies {
    testCompile 'junit:junit:4.10'
}
于 2013-05-20T14:58:04.757 回答
7

In my build.gradle I had this:

android {
sourceSets { main { java.srcDirs = ['src/main/java', 'src/test/java'] } }

And also

dependencies {
testCompile 'junit:junit:4.12'}

The problem went away when I deleted the following from the build.gradle

'src/test/java'

于 2015-06-20T01:28:45.467 回答
4

本指南可能会有所帮助 - http://www.slideshare.net/tobiaspreuss/how-to-setup-unit-testing-in-android-studio

最新的 gradle 测试应该在 androidTest 目录下

同样在你的 gradle.build 中:

dependencies {
     androidTestCompile 'junit:junit:4.+'
}

还要在defaultConfig下添加那些

defaultConfig {

    testPackageName "test.java.foo"
    testInstrumentationRunner "android.test.InstrumentationTestRunner"

}
于 2014-11-18T03:16:23.353 回答
2

它可能还需要在您的存储库声明中使用 mavenLocal()

repositories {
  mavenLocal()
  mavenCentral()
}
于 2015-01-30T10:04:46.117 回答
1

我在我的测试用例中遇到了类似的问题,并且遇到了类似的错误。我可以通过在我的 build.gradle 文件中添加源集来修复它。

例如:

sourceSets {
src {
   test{
      java{
    srcDirs =["com/testfile/appservice/test/endpoint"]
    }
      }
}

}

src/test/java 是测试包正上方的目录名称,com.testfile.appservice.test.endpoint 是编写我的 junit 测试的包的名称。

于 2018-11-26T20:59:00.733 回答
0

只需添加

repositories {
    mavenCentral()
}

如果您使用 Android Studio 进行 Android 开发,它对我有用

于 2015-08-18T06:23:48.143 回答