首页 文章

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

提问于
浏览
28

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

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

包org.junit不存在

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

build.gradle包含

apply plugin:'java'

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

dependencies {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 回答

  • 6

    只需添加

    repositories {
        mavenCentral()
    }
    

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

  • 0

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

    例如:

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

    }

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

  • 4

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

    repositories {
        mavenCentral()
    }
    
    apply plugin: 'java'
    
    dependencies {
        testCompile 'junit:junit:4.10'
    }
    
  • 0

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

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

    并且

    dependencies {
    testCompile 'junit:junit:4.12'}
    

    当我从build.gradle中删除以下内容时,问题就消失了

    'src / test / java'

  • 16

    本指南可能有所帮助 - 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"
    
    }
    
  • 2

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

    repositories {
      mavenLocal()
      mavenCentral()
    }
    

相关问题