[英]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
}
}
注重运营商+=
,如果你想运行集成测试,改变test
到androidTest
。
GL
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.