在MacOSx上使用Gradle编译一个简单的Junit测试

时间:2013-01-28 03:36:53

标签: java junit gradle

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

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

  

包org.junit不存在

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

build.gradle包含

  

申请插件:'java'

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

  

依赖项{

     
    

testCompile'junit:junit:4.10'

  
     

}

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

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

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.

6 个答案:

答案 0 :(得分:16)

您需要确保设置了repos,并且需要包含junit的依赖项。这意味着你需要为build.gradle

看起来像这样的东西
repositories {
    mavenCentral()
}

apply plugin: 'java'

dependencies {
    testCompile 'junit:junit:4.10'
}

答案 1 :(得分:6)

在我的build.gradle中我有这个:

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

dependencies {
testCompile 'junit:junit:4.12'}

当我从build.gradle

中删除以下内容时,问题就消失了
  

'的src /测试/ JAVA'

答案 2 :(得分: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"

}

答案 3 :(得分:2)

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

repositories {
  mavenLocal()
  mavenCentral()
}

答案 4 :(得分:0)

添加

repositories {
    mavenCentral()
}

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

答案 5 :(得分:0)

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

例如:

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

}

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