目前我有以下 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 dependency,然后在 tests/model 文件夹中运行这些测试?
如何正确添加 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,则需要完成更多步骤,您应该遵循 本教程。
如果您使用默认的 gradle 包结构设置项目,即:
src/main/java
src/main/resources
src/test/java
src/test/resources
那么您将不需要修改源集来运行测试。 Gradle 会发现您的测试类和资源位于 src/test 中。然后你就可以按照奥利弗上面所说的那样运行。需要注意的一件事:设置属性文件并使用 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 报告。
这是针对 Kotlin DSL (build.gradle.kts) 并使用 JUnit 5(JUnit 平台):
tasks.withType<Test> {
// Discover and execute JUnit4-based tests
useJUnit()
// Discover and execute TestNG-based tests
useTestNG()
// Discover and execute JUnit Platform-based (JUnit 5/JUnit Jupiter) tests
// Note that JUnit 5 has the ability to execute JUnit 4 tests as well
useJUnitPlatform()
}
dependencies {
testImplementation("org.junit.jupiter:junit-jupiter:5.11.2")
// ...
}
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