¿De dónde vienen los tres contenedores de testing?

Junté un proyecto JUnit5 de demostración para probar el marco. El proyecto consiste en Gradle (4.4), Java (8) y Kotlin (1.2.0) con 4 casos de testing. Tengo el siguiente script de compilation de Gradle (eliminé la mayor parte del text repetitivo para mantener solo las cosas importantes):

apply plugin: 'java' apply plugin: 'kotlin' apply plugin: 'org.junit.platform.gradle.plugin' repositories { mavenCentral() } buildscript { ext.kotlin_version = '1.2.0' repositories { mavenCentral() } dependencies { classpath 'org.junit.platform:junit-platform-gradle-plugin:1.0.2' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } } configurations { all { exclude group: 'junit', module: 'junit' } } project.ext { junitPlatformVersion = '1.0.2' junitJupiterVersion = '5.0.2' } dependencies { compile "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version" testCompile "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version" testCompile "org.junit.jupiter:junit-jupiter-api:${junitJupiterVersion}" testRuntime "org.junit.jupiter:junit-jupiter-engine:${junitJupiterVersion}" } junitPlatform { platformVersion '1.0.2' filters { engines { include 'junit-jupiter' } } } 

También tengo KotlinTest.kt y JavaTest.java que tienen los casos de testing equivalentes:

 @Test fun junit5TestPasses() { assertTrue(true) } @Test fun junit5TestFails() { assertTrue(false) } 

Cuando ejecuto mis testings con gradlew junitPlatformTest , veo correctamente que pasan 2 testings y fallan 2 testings. Sin embargo, también veo "3 contenedores encontrados". Mi pregunta es ¿por qué hay 3 contenedores encontrados? ¿Qué son? Parece que no puedo encontrar una respuesta directa sobre los contenedores de testing en la guía de usuario de JUnit5 que se relaciona con este escenario.

3 contenedores = JUnit Jupiter Engine + KotlinTest.class + JavaTest.class

Un motor, una implementación de TestEngine , también se considera un contenedor. El siguiente nivel es la class que contiene @Test Test-methods anotados. Mire el ejemplo copydo de la guía del usuario :

 ├─ JUnit Vintage │ └─ example.JUnit4Tests │ └─ standardJUnit4Test ✔ └─ JUnit Jupiter ├─ StandardTests │ ├─ succeedingTest() ✔ │ └─ skippedTest() ↷ for demonstration purposes └─ A special test case ├─ Custom test name containing spaces ✔ ├─ ╯°□°)╯ ✔ └─ 😱 ✔ Test run finished after 64 ms [ 5 containers found ] [ 0 containers skipped ] [ 5 containers started ] [ 0 containers aborted ] [ 5 containers successful ] [ 0 containers failed ] [ 6 tests found ] [ 1 tests skipped ] [ 5 tests started ] [ 0 tests aborted ] [ 5 tests successful ] [ 0 tests failed ] 

Aquí puedes ver cinco contenedores, a saber:

  1. JUnit Vintage motor
  2. ejemplo.JUnit4Tests class
  3. Motor JUnit Jupiter
  4. Clase StandardTests
  5. Una class de caso de testing especial

Las seis hojas son testings.

Para ver un tree similar procesado para ejecutar su plan de testing, agregue los details 'tree' a la tarea Gradle junitPlatform .

  • Android Kotlin Gson Slow Json Deserialization
  • Agregue un nuevo valor-key representado por un `Pair` a un` MutableMap`
  • Error de time de ejecución con ListView en Android con Kotlin?
  • @Inject set Not Injecting Property
  • El 'Retorno' omitido en Kotlin necesita código adicional. ¿Cómo arreglar eso?
  • ¿Cómo almacenar datos json cuando uso Android Studio 3.0?
  • ¿Por qué Kotlin con Spring MVC JSON devuelve un object vacío?
  • Error: Gradle: org.jetbrains.kotlin.kapt3.diagnostic.KaptError: error durante el process de anotación
  • ¿Cómo verificar la llamada en setter en kotlin usando mockito?
  • Sala: error al utilizar @Transaction
  • ¿Por qué el código que inicializa una propiedad de interfaz variable no se codificará en la compilation del bloque init?