Библиотека JUnit Foundation позволяет объявлять прослушиватели в файле конфигурации поставщика услуг, которые затем присоединяются автоматически - независимо от среды выполнения.Подробности можно найти здесь .
Конфигурация Gradle для JUnit Foundation
// build.gradle
...
apply plugin: 'maven'
sourceCompatibility = 1.8
targetCompatibility = 1.8
repositories {
mavenLocal()
mavenCentral()
...
}
dependencies {
...
compile 'com.nordstrom.tools:junit-foundation:9.1.1'
}
ext {
junitFoundation = configurations.compile.resolvedConfiguration.resolvedArtifacts.find { it.name == 'junit-foundation' }
}
test.doFirst {
jvmArgs "-javaagent:${junitFoundation.file}"
}
test {
// debug true
// not required, but definitely useful
testLogging.showStandardStreams = true
}
ServiceLoader
файл конфигурации провайдера
# src/main/resources/META-INF/services/org.junit.runner.notification.RunListener
com.example.MyRunListener
При такой конфигурации прослушиватель, реализованный с помощью MyRunListener
, будет автоматически присоединен к RunNotifier
, предоставленному методу run()
бегунов JUnit.Эта функция устраняет поведенческие различия между различными средами выполнения тестов, такими как Maven, Gradle и встроенные тестовые среды IDE.