繁体   English   中英

如何使用 Gradle 运行 JUnit 测试?

[英]How to run JUnit tests with Gradle?

目前我有以下build.gradle文件:

apply plugin: 'java'

sourceSets {
    main {
        java {
            srcDir 'src/model'
        }
    }
}

dependencies {
    compile files('libs/mnist-tools.jar', 'libs/gson-2.2.4.jar')
    runtime fileTree(dir: 'libs', include: '*.jar')
}    


此文件的build.gradle是我的仓库在这里 我的所有主要文件都在src/model/ 中,它们各自的测试在test/model 中

如何正确添加 JUnit 4依赖项,然后在tests/model的文件夹中运行这些测试?

如何正确添加junit 4依赖项?

假设您正在解决标准 Maven(或等效)存储库:

dependencies {
    ...
    testCompile "junit:junit:4.11"  // Or whatever version
}

在测试/模型的文件夹中运行这些测试?

您以相同的方式定义测试源集:

sourceSets {
    ...

    test {
        java {
            srcDirs = ["test/model"]  // Note @Peter's comment below
        }
    }
}

然后调用测试为:

./gradlew test

编辑:如果您使用的是 JUnit 5,则需要完成更多步骤,您应该按照本教程进行操作

如果您使用默认的 gradle 包结构设置您的项目,即:

src/main/java
src/main/resources
src/test/java
src/test/resources

那么你不需要修改 sourceSets 来运行你的测试。 Gradle 会发现你的测试类和资源在 src/test 中。 然后你就可以按照 Oliver 上面说的那样运行了。 需要注意的一件事:在使用 gradle 和 IDE 设置属性文件和运行测试类时要小心。 我使用 Eclipse,从它运行 JUnit 时,Eclipse 选择一个类路径(bin 目录),而 gradle 选择另一个(构建目录)。 如果您编辑资源文件,并且在测试运行时看不到您的更改反映,这可能会导致混淆。

如果您使用Spring Initializr创建了您的项目,那么一切都应该正确配置,您需要做的就是运行...

./gradlew clean test --info
  • 如果您想查看测试输出,请使用--info
  • 如果要重新运行自上次更改以来已经通过的测试,请使用clean

在 Spring Boot 中进行测试所需的build.gradle依赖项...

dependencies {
    compile('org.springframework.boot:spring-boot-starter')
    testCompile('org.springframework.boot:spring-boot-starter-test')
}

出于某种原因,测试运行器不会告诉您这一点,但它会在build/reports/tests/test/index.html生成一个 HTML 报告。

testCompile已弃用。 Gradle 7 兼容:

dependencies {
...
   testImplementation 'junit:junit:4.13'
}

如果您使用默认文件夹结构 (src/test/java/...),则测试部分很简单:

test {
    useJUnit()
}

最后:

gradlew clean test

另见: https ://docs.gradle.org/current/userguide/java_testing.html

如果你想在所有现有的之外添加一个用于测试的源集,在一个模块中,不管活动风格如何:

sourceSets {
    test {
        java.srcDirs += [
                'src/customDir/test/kotlin'
        ]
        print(java.srcDirs)   // Clean
    }
}

注重运营商+= ,如果你想运行集成测试,改变testandroidTest

GL

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM