我无法设法使用 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”),每个配置可能有不同的类路径。您正在使用指令 testCompile('org.junit...')
导入 junit5
依赖项;但这仅包括 test 配置中的 junit5 jar。
请注意,PublicTests
类位于 main
下,因此 Gradle 将在“main”配置下编译它。如果 PublicTests
引用 junit5,那么这将导致编译错误(因为 junit5 不包含在“主”类路径中)。
长话短说。您应该将所有测试放在 test
下。
您可以通过调用 gradle dependencies
检查每个配置的类路径。
关于java - gradle compileJava错误: package org. junit.jupiter.api不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55891680/