Мой проект Maven использует плагин Surefire для выполнения тестов. Приложение написано с помощью Spring Boot. Я не использую родителя Spring Boot - я хочу использовать другого родителя - но я импортировал spring-boot-dependencies . Тесты написаны с помощью JUnit, и у меня есть junit-jupiter-api , junit-jupiter-engine и spring-test на моем пути к классам.
Один из тестов - это очень простой ExampleTest
, который находится в src / test / java:
package it.mulders.brainfuckjvm.demoapp;
import org.junit.jupiter.api.Test;
import static org.assertj.core.api.Assertions.assertThat;
public class ExampleTest {
@Test
public void yes() {
assertThat(true).isTrue();
}
@Test
public void no() {
assertThat(true).isFalse();
}
}
Когда я запускаю mvn clean test --pl demo-app -Dtest=ExampleTest -X
, этот тест не run.
Поскольку я добавил -X
, у меня очень подробное ведение журнала, и JAR-файл загрузчика Surefire и файлы конфигурации впоследствии не удаляются. Поэтому я проверяю surefire3290618242954546634tmp , чтобы найти:
#surefire
#Thu Apr 16 11:11:50 CEST 2020
tc.0=it.mulders.brainfuckjvm.demoapp.ExampleTest
pluginPid=8240
...
(tens of lines omitted for brevity)
...
providerConfiguration=org.apache.maven.surefire.junitplatform.JUnitPlatformProvider
Все это выглядит нормально. Он обнаруживает тест, который я хочу запустить, и выглядит знакомым для другого модуля в том же проекте, который не использует Spring Boot. Этот модуль выполняет свои тесты. Тем не менее, запись такова:
[INFO] --- maven-surefire-plugin:2.22.2:test (default-test) @ demo-app ---
...
[INFO]
[INFO] -------------------------------------------------------
[INFO] T E S T S
[INFO] -------------------------------------------------------
...
[DEBUG] Forking command line: /bin/sh -c cd /path/to/brainfuck-jvm/demo-app && /Library/Java/JavaVirtualMachines/graalvm-ce-java8-20.0.0/Contents/Home/jre/bin/java -jar /path/to/brainfuck-jvm/demo-app/target/surefire/surefirebooter7731933888241020050.jar /path/to/brainfuck-jvm/demo-app/target/surefire 2020-04-16T11-11-49_920-jvmRun1 surefire3290618242954546634tmp surefire_03070161998729763620tmp
[INFO]
[INFO] Results:
[INFO]
[INFO] Tests run: 0, Failures: 0, Errors: 0, Skipped: 0
[INFO]
Для справки, весь проект можно найти на GitHub . Модуль, который работает нормально - язык , а тот, который не работает webapp . Обратите внимание, что для запуска тестов вам понадобится GraalVM.