Я пытался внедрить Junit5 в свой проект Vertx.
Простое добавление junit5 работает нормально, но с добавлением модуля vertx-junit5 в проект у TestEngine возникли проблемы с поиском тестов.
build.gradle:
buildscript {
repositories {
mavenCentral()
dependencies {
classpath 'org.junit.platform:junit-platform-gradle-plugin:1.1.0'
classpath "org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:2.5"
}
}
}
plugins {
id'java'
id'application'
id'eclipse'
}
apply plugin: 'org.junit.platform.gradle.plugin'
apply plugin: 'maven'
apply plugin: "org.sonarqube"
def vertxVersion = "3.5.1"
version = 0.4
compileJava.options.encoding = 'UTF-8'
tasks.withType(JavaCompile) {
options.encoding = 'UTF-8'
}
dependencies {
compile "io.vertx:vertx-core:$vertxVersion"
compile "io.vertx:vertx-service-proxy:$vertxVersion"
compile "io.vertx:vertx-sockjs-service-proxy:$vertxVersion"
compile "io.vertx:vertx-hazelcast:$vertxVersion"
compile "io.vertx:vertx-web:$vertxVersion"
compile "io.vertx:vertx-config:$vertxVersion"
compile group: 'org.slf4j', name: 'slf4j-log4j12', version: '1.7.6'
testCompile group: 'io.vertx', name: 'vertx-unit', version: vertxVersion
testCompile group: 'io.vertx', name: 'vertx-junit5', version: vertxVersion
testCompile 'org.assertj:assertj-core:3.9.0'
//Junit 5
testCompile("org.junit.jupiter:junit-jupiter-api:5.1.0")
testRuntime("org.junit.jupiter:junit-jupiter-engine:5.1.0")
//Junit 5 vintage to run Junit4 Tests
testCompile("junit:junit:4.12")
testRuntime("org.junit.vintage:junit-vintage-engine:5.1.0")
compileOnly 'io.vertx:vertx-codegen:3.4.2'
}
без:
testCompile group: 'io.vertx', name: 'vertx-junit5', version: vertxVersion
Механизм тестирования находит тесты и не создает проблем
но с этой зависимостью
Никаких тестов не найдено
22 февраля 2018 г. 14:41:28 org.junit.platform.launcher.core.DefaultLauncher handleThrowable ПРЕДУПРЕЖДЕНИЕ: TestEngine с идентификатором 'junit-jupiter' не смог обнаружить тесты java.lang.NoSuchMethodError: org.junit.platform.engine. support.filter.ClasspathScanningSupport.buildClassFilter (Lorg / junit / platform / engine / EngineDiscoveryRequest; Ljava / util / function / Predicate;) Lorg / junit / platform / commons / util / ClassFilter; на org.junit.jupiter.engine.discovery.DiscoverySelectorResolver.resolveSelectors (DiscoverySelectorResolver.java:49) на org.junit.jupiter.engine.JupiterTestEngine.discover (JupiterTestEngine.java:61) на org.java:61) на org.java:61) .DefaultLauncher.discoverEngineRoot (DefaultLauncher.java:130) по адресу org.junit.platform.launcher.core.DefaultLauncher.discoverRoot (DefaultLauncher.java:117) по адресу org.junit.platform.launcher.core.DefcoverLauncherLauncher. : 82) по адресу com.intellij.junit5.JUnit5IdeaTestRunner.startRunnerWithArgs (JUnit5IdeaTestRunner.java:48) в com.intellij.rt.execution.junit.IdeaTestRunner $ Repeater.startgsRunner.junner.java.withArtell: Repeater.startgsRunner. execute.junit.JUnitStarter.prepareStreamsAndStart (JUnitStarter.java:242) в com.intellij.rt.execution.junit.JUnitStarter.main (JUnitStarter.java:70)
22 февраля 2018 г. 14:41:28 org.junit.platform.launcher.core.DefaultLauncher handleThrowable ПРЕДУПРЕЖДЕНИЕ: TestEngine с идентификатором 'junit-jupiter' не смог обнаружить тесты java.lang.NoSuchMethodError: org.junit.platform.engine. support.filter.ClasspathScanningSupport.buildClassFilter (Lorg / junit / platform / engine / EngineDiscoveryRequest; Ljava / util / function / Predicate;) Lorg / junit / platform / commons / util / ClassFilter; в org.junit.jupiter.engine.discovery.DiscoverySelectorResolver.resolveSelectors (DiscoverySelectorResolver.java:49) в org.junit.jupiter.engine.JupiterTestEngine.discover (JupiterTestEngine.java:61) в org.java:61) .DefaultLauncher.discoverEngineRoot (DefaultLauncher.java:130) в org.junit.platform.launcher.core.DefaultLauncher.discoverRoot (DefaultLauncher.java:117) в org.junit.platform.launcher.core.DefaultLauncher.exe (DefaultLauncher.core.DefaultLauncher.exe : 90) на com.intellij.junit5.JUnit5IdeaTestRunner.startRunnerWithArgs (JUnit5IdeaTestRunner.java:62) на com.intellij.rt.execution.junit.IdeaTestRunner $ на com.startgsRunner. execute.junit.JUnitStarter.prepareStreamsAndStart (JUnitStarter.java:242) в com.intellij.rt.execution.junit.JUnitStarter.main (JUnitStarter.java:70)
Процесс завершен с кодом выхода 0 Пустой набор тестов.
Я не понимаю, почему зависимость влияет на testEngine
Я использую IntelliJ 2017.2.6
и я пытаюсь удачи с Тестом как можно проще
import io.vertx.junit5.VertxTestContext;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
public class test {
@Test
@DisplayName("woop woooooooop")
void Test(){
VertxTestContext context = new VertxTestContext();
context.succeeding();
}
}