我无法使用gradle使JUnit5测试正常工作,尽管我将其放在了依赖项中,但compileJava失败并显示一条消息,它找不到org.junit.jupiter.api。
我必须编译提供给我的一些代码。它具有这样的目录结构:
├── build.gradle
├── src
│ ├── frame
│ │ ├── CardTestfileReader.java
│ │ ├── PublicTests.java
│ │ └── SortArray.java
│ └── lab
│ ├── Card.java
│ ├── HybridSort.java
│ ├── HybridSortRandomPivot.java
│ └── YourTests.java
└── tests
└── public
├── TestFile1
├── TestFile2
└── TestFile3
JUnit5测试在frame.PublicTests中,我需要运行那些。
我在不真正了解它在做什么的情况下成功复制了这个
build.groovy
文件。plugins {
id 'java'
id 'checkstyle'
}
repositories {
mavenCentral()
}
dependencies {
testCompile('org.junit.jupiter:junit-jupiter:5.4.2')
testImplementation('org.junit.jupiter:junit-jupiter:5.4.2')
}
test {
useJUnitPlatform()
testLogging {
events "passed", "skipped", "failed"
}
}
sourceSets {
main {
java {
srcDir 'src'
}
}
test {
java {
srcDir 'src'
}
}
}
我希望
gradle test
可以工作并以某种方式运行单元测试。 最佳答案
使用Gradle,同一项目可以具有多个配置(例如“main”和“test”),并且每个配置可以具有不同的类路径。您正在使用指令junit5
导入testCompile('org.junit...')
依赖项;但这仅包括测试配置中的junit5 jar。
请注意,PublicTests
类位于main
下,因此Gradle将在“main”配置下对其进行编译。如果PublicTests
引用junit5,则将导致编译错误(因为junit5未包含在“主”类路径中)。
长话短说..您应该将所有测试放在test
下。
您可以通过调用gradle dependencies
检查每个配置的类路径。