目前我有以下 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 文件适用于我的存储库here。我的所有主文件都在 src / model / 中,它们各自的测试都在 test / model 中。
如何正确添加JUnit 4 依赖,然后在 tests / model 的文件夹中运行这些测试?
答案 0 :(得分:82)
如何正确添加junit 4依赖项?
假设您正在解决标准的Maven(或同等)回购:
dependencies {
...
testCompile "junit:junit:4.11" // Or whatever version
}
在tests / model的文件夹中运行这些测试?
您以相同的方式定义测试源集:
sourceSets {
...
test {
java {
srcDirs = ["test/model"] // Note @Peter's comment below
}
}
}
然后将测试调用为:
./gradlew test
编辑:如果您使用的是JUnit 5,则需要完成更多步骤,您应该遵循this tutorial。
答案 1 :(得分:43)
如果使用默认的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选择另一个(构建目录)。如果编辑资源文件,这可能会导致混淆,并且不会在测试运行时看到您的更改。
答案 2 :(得分:11)
如果您使用Spring Initializr创建项目,则应正确配置所有内容,并且只需运行...
./gradlew clean test --info
--info
。clean
。 build.gradle
在Spring Boot中测试所需的依赖性...
dependencies {
compile('org.springframework.boot:spring-boot-starter')
testCompile('org.springframework.boot:spring-boot-starter-test')
}
出于某种原因,测试运行器没有告诉您这一点,但它会在build/reports/tests/test/index.html
中生成HTML报告。
答案 3 :(得分:0)
testCompile 已弃用。与Gradle 7兼容:
dependencies {
...
testImplementation 'junit:junit:4.13'
}
,如果您使用默认文件夹结构(src / test / java / ...),则测试部分就是:
test {
useJUnit()
}
最后:
gradlew clean test
Alos看到:https://docs.gradle.org/current/userguide/java_testing.html
答案 4 :(得分:0)
如果除了所有现有的源集之外,还想添加一个源集进行测试,则在模块内,无论活动的口味如何:
sourceSets {
test {
java.srcDirs += [
'src/customDir/test/kotlin'
]
print(java.srcDirs) // Clean
}
}
请注意操作员+=
,如果要运行集成测试,请将test
更改为androidTest
。
GL