java - spring-boot-starter-test 中没有普通的 JUnit 依赖项?

标签 java spring spring-boot gradle junit

我在 start.spring.io 中创建了一个全新的(Gradle、Java 语言、Boot 2.2.6、Jar 和 Java 11)项目(未指定依赖项)。我期望在测试类路径中看到普通的 JUnit ( junit:junit:x.xx ) 依赖项。但没有找到。

执行./gradlew dependencies不包括普通的 JUnit,但仅包括 org.junit.jupiter:junit-jupiter 。请参阅下面的相关输出。

默认生成的测试 ( DemoApplicationTests.java ) 只有 import org.junit.jupiter.api.Test;而不是import org.junit.Test

我错过了什么?下面包含完整的 build.gradle 以供引用。

<小时/>

./gradlew dependencies的相关部分:

\--- org.springframework.boot:spring-boot-starter-test -> 2.2.6.RELEASE
     +--- org.springframework.boot:spring-boot-starter:2.2.6.RELEASE (*)
     +--- org.springframework.boot:spring-boot-test:2.2.6.RELEASE
     |    \--- org.springframework.boot:spring-boot:2.2.6.RELEASE (*)
     +--- org.springframework.boot:spring-boot-test-autoconfigure:2.2.6.RELEASE
     |    +--- org.springframework.boot:spring-boot-test:2.2.6.RELEASE (*)
     |    \--- org.springframework.boot:spring-boot-autoconfigure:2.2.6.RELEASE (*)
     +--- com.jayway.jsonpath:json-path:2.4.0
     |    +--- net.minidev:json-smart:2.3
     |    |    \--- net.minidev:accessors-smart:1.2
     |    |         \--- org.ow2.asm:asm:5.0.4
     |    \--- org.slf4j:slf4j-api:1.7.25 -> 1.7.30
     +--- jakarta.xml.bind:jakarta.xml.bind-api:2.3.3
     |    \--- jakarta.activation:jakarta.activation-api:1.2.2
     +--- org.junit.jupiter:junit-jupiter:5.5.2
     |    +--- org.junit.jupiter:junit-jupiter-api:5.5.2
     |    |    +--- org.apiguardian:apiguardian-api:1.1.0
     |    |    +--- org.opentest4j:opentest4j:1.2.0
     |    |    \--- org.junit.platform:junit-platform-commons:1.5.2
     |    |         \--- org.apiguardian:apiguardian-api:1.1.0
     |    +--- org.junit.jupiter:junit-jupiter-params:5.5.2
     |    |    +--- org.apiguardian:apiguardian-api:1.1.0
     |    |    \--- org.junit.jupiter:junit-jupiter-api:5.5.2 (*)
     |    \--- org.junit.jupiter:junit-jupiter-engine:5.5.2
     |         +--- org.apiguardian:apiguardian-api:1.1.0
     |         +--- org.junit.platform:junit-platform-engine:1.5.2
     |         |    +--- org.apiguardian:apiguardian-api:1.1.0
     |         |    +--- org.opentest4j:opentest4j:1.2.0
     |         |    \--- org.junit.platform:junit-platform-commons:1.5.2 (*)
     |         \--- org.junit.jupiter:junit-jupiter-api:5.5.2 (*)
     +--- org.mockito:mockito-junit-jupiter:3.1.0
     |    +--- org.mockito:mockito-core:3.1.0
     |    |    +--- net.bytebuddy:byte-buddy:1.9.10 -> 1.10.8
     |    |    +--- net.bytebuddy:byte-buddy-agent:1.9.10 -> 1.10.8
     |    |    \--- org.objenesis:objenesis:2.6
     |    \--- org.junit.jupiter:junit-jupiter-api:5.4.2 -> 5.5.2 (*)
     +--- org.assertj:assertj-core:3.13.2
     +--- org.hamcrest:hamcrest:2.1
     +--- org.mockito:mockito-core:3.1.0 (*)
     +--- org.skyscreamer:jsonassert:1.5.0
     |    \--- com.vaadin.external.google:android-json:0.0.20131108.vaadin1
     +--- org.springframework:spring-core:5.2.5.RELEASE (*)
     +--- org.springframework:spring-test:5.2.5.RELEASE
     |    \--- org.springframework:spring-core:5.2.5.RELEASE (*)
     \--- org.xmlunit:xmlunit-core:2.6.4
<小时/>

完成build.gradle

plugins {
    id 'org.springframework.boot' version '2.2.6.RELEASE'
    id 'io.spring.dependency-management' version '1.0.9.RELEASE'
    id 'java'
}

group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'

repositories {
    mavenCentral()
}

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter'
    testImplementation('org.springframework.boot:spring-boot-starter-test') {
        exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
    }
}

test {
    useJUnitPlatform()
}

最佳答案

org.junit.jupiter:junit-jupiter 是 JUnit,尽管版本为 5.x .

您似乎期望的普通 junit:junit 依赖项是较旧的 JUnit 版本 4.x

关于java - spring-boot-starter-test 中没有普通的 JUnit 依赖项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60915366/

相关文章:

java - 在 spring-boot 中将 protobuf 作为 JSON 发送

java - 访问由 Hyperledger Composer Rest 服务器生成的服务器端的安全 Rest API

java - "? :"指令错误。不是一个声明

java - 寻找基于ThreadPoolExecutor的解决方案以确保顺序执行任务

java - 在 XSSFSheet 中添加页面末尾

java - 多个数据源多次访问时的DataSource Router问题

java - 默认bean作用域为单例,并发调用时不是很糟糕吗?

java - 如果没有@Service @Controller,AOP 无法切入类

java - @RequestMapping 不起作用 - 没有找到处理程序方法

java - 如何实现插入排序?