title: spring-boot-starter-test with JUnit 5
body: <p>Using <code>spring-boot-starter-test</code> as of 2.0.6 brings in a JUnit 4 dependency.  How can I use <code>spring-boot-starter-test</code> (via Gradle), but use JUnit 5 instead, without the JUnit 4 dependency being pulled in?</p>
  
  <p>Here's a part of the dependency output from Gradle if it helps:</p>
  
  <pre><code>+--- org.springframework.boot:spring-boot-starter-test -&gt; 2.0.5.RELEASE
  |    +--- org.springframework.boot:spring-boot-starter:2.0.5.RELEASE (*)
  |    +--- org.springframework.boot:spring-boot-test:2.0.5.RELEASE
  |    |    \--- org.springframework.boot:spring-boot:2.0.5.RELEASE (*)
  |    +--- org.springframework.boot:spring-boot-test-autoconfigure:2.0.5.RELEASE
  |    |    +--- org.springframework.boot:spring-boot-test:2.0.5.RELEASE (*)
  |    |    \--- org.springframework.boot:spring-boot-autoconfigure:2.0.5.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
  |    +--- junit:junit:4.12
  |    |    \--- org.hamcrest:hamcrest-core:1.3
  </code></pre>
  
  <p><br>
  Here is my <em>build.gradle</em> file:</p>
  
  <pre><code>buildscript {
      ext {
          springBootVersion = '2.0.6.RELEASE'
      rootGradleDir = "${rootProject.rootDir}/gradle"
      }
      repositories {
          mavenCentral()
      }
      dependencies {
          classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
      }
  }
  
  apply plugin: 'java'
  apply plugin: 'idea'
  apply plugin: 'org.springframework.boot'
  apply plugin: 'io.spring.dependency-management'
  
  apply from: "${rootGradleDir}/staticCodeAnalysis.gradle"
  
  group = 'com.example'
  version = '0.0.1-SNAPSHOT'
  sourceCompatibility = 1.8
  
  repositories {
      mavenCentral()
  }
  
  test {
    useJUnitPlatform()
  }
  
  dependencies {
      implementation('org.springframework.boot:spring-boot-starter-data-jpa')
      implementation('org.springframework.boot:spring-boot-starter-jdbc')
      implementation('org.springframework.boot:spring-boot-starter-security')
      implementation('org.springframework.boot:spring-boot-starter-thymeleaf')
      implementation('org.springframework.boot:spring-boot-starter-validation')
      implementation('org.springframework.boot:spring-boot-starter-web')
      implementation('org.liquibase:liquibase-core')
      runtimeOnly('org.springframework.boot:spring-boot-devtools')
    runtimeOnly('org.postgresql:postgresql')
    testImplementation('org.springframework.boot:spring-boot-starter-test')
    testImplementation('org.springframework.security:spring-security-test')
  
    implementation('org.glassfish.jaxb:jaxb-runtime:2.3.1')
    implementation('org.glassfish.jaxb:jaxb-runtime2.3.1')
    implementation('org.springframework.boot:spring-boot-starter-data-redis')
  
    testCompile('org.junit.jupiter:junit-jupiter-api:5.3.1')
    testCompile('org.junit.jupiter:junit-jupiter-params:5.3.1')
    testRuntime('org.junit.jupiter:junit-jupiter-engine:5.3.1')
  }
  </code></pre>
  
  <hr>
  
  <h3>UPDATE</h3>
  
  <p>Adding the JUnit 5 dependency and doing the exclude mentioned in the comments did the trick. The test dependency now looks like this:</p>
  
  <pre><code>testImplementation('org.springframework.boot:spring-boot-starter-test') {
      exclude group: 'junit', module: 'junit' //by both name and group
  }
  </code></pre>