I migrate my test classes from JUnit 4 to Junit5 and from java 8 to java 11 and now when i run my tests i have for each of them this error : IllegalState Failed to load ApplicationContext whereas i have the right annotations and my context file is on the right location. Here my pom, one of my test class and my context file :
pom.xml :
<project xmlns=".0.0" xmlns:xsi=";
xsi:schemaLocation=".0.0 .xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>fr.gipmds.arpej.priv.domain</groupId>
<artifactId>entities-synchronisation</artifactId>
<packaging>jar</packaging>
<parent>
<groupId>fr.gipmds.arpej</groupId>
<artifactId>domain</artifactId>
<version>2025.2.0.0</version>
<relativePath>../parent/domain</relativePath>
</parent>
<dependencies>
<!-- ARPEJ -->
<dependency>
<groupId>fr.gipmds.arpej.auth.domain</groupId>
<artifactId>entities-authentification</artifactId>
</dependency>
<dependency>
<groupId>fr.gipmds.arpej.trans.domain</groupId>
<artifactId>entities-prive</artifactId>
</dependency>
<!-- factorisation des dépendances pour les tests seulement ! -->
<dependency>
<groupId>fr.gipmds.arpej</groupId>
<artifactId>tests-deps</artifactId>
<type>pom</type>
<scope>test</scope>
</dependency>
<!-- dépendances communes vers les frameworks spring et hibernate -->
<dependency>
<groupId>fr.gipmds.arpej</groupId>
<artifactId>fwk-deps</artifactId>
<exclusions>
<exclusion>
<groupId>net.bytebuddy</groupId>
<artifactId>byte-buddy</artifactId>
</exclusion>
</exclusions>
<type>pom</type>
</dependency>
<dependency>
<groupId>xerces</groupId>
<artifactId>xercesImpl</artifactId>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-impl</artifactId>
</dependency>
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
</dependency>
<dependency>
<groupId>.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>4.5.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>5.3.25</version>
<scope>test</scope>
</dependency>
<!-- Spring Core -->
<dependency>
<groupId>.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.3.25</version>
</dependency>
<!-- JUnit 5 -->
<dependency>
<groupId>.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>5.8.2</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
My context.xml
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<beans xmlns=";
xmlns:context=";
xmlns:jee="; xmlns:p=";
xmlns:tx="; xmlns:xsi=";
xmlns:util=";
xsi:schemaLocation="
.3.xsd
.3.xsd
.3.xsd
.3.xsd
.3.xsd">
<context:spring-configured />
<context:annotation-config />
<tx:annotation-driven transaction-manager="txManager" />
<context:component-scan base-package="fr.gipmds.arpej" />
<bean id="dataSource"
class=".springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value=".hsqldb.jdbcDriver" />
<property name="url" value="jdbc:hsqldb:file:target/testdb" />
<property name="username" value="sa" />
<property name="password" value="" />
</bean>
<bean id="entityManagerFactory"
class=".springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="persistenceUnitName" value="persistenceUnit" />
<property name="dataSource" ref="dataSource" />
<property name="jpaProperties">
<props>
<prop key="hibernate.show.sql">true</prop>
<prop key="hibernate.hbm2ddl.auto">create-drop</prop>
<prop key="hibernate.dialect">.hibernate.dialect.HSQLDialect</prop>
<!-- IMPORTANT: make sure to tell Hibernate to use JTA -->
<prop key="javax.persistence.transactionType">jta</prop>
<prop key="hibernate.transaction.jta.platform"> .hibernate.engine.transaction.jta.platform.internal.AtomikosJtaPlatform</prop>
</props>
</property>
</bean>
<bean name="txManager"
class=".springframework.transaction.jta.JtaTransactionManager">
<property name="transactionManager" ref="atomikosTransactionManager" />
<property name="userTransaction" ref="atomikosUserTransaction" />
</bean>
<bean id="atomikosTransactionManager" class="com.atomikos.icatch.jta.UserTransactionManager"
init-method="init" destroy-method="close" depends-on="userTransactionService">
<!-- When close is called, should we force transactions to terminate? -->
<property name="forceShutdown" value="false" />
<!-- Do not create a transaction service as we have specified the bean
in this file -->
<property name="startupTransactionService" value="false" />
</bean>
<bean id="atomikosUserTransaction" class="com.atomikos.icatch.jta.UserTransactionImp">
<property name="transactionTimeout" value="30" />
</bean>
<!-- pour forcer l'emplacement des fichiers atomikos -->
<bean id="userTransactionService" class="com.atomikos.icatch.config.UserTransactionServiceImp"
init-method="init" destroy-method="shutdownWait" depends-on="setMyAtomikosSystemProps">
<constructor-arg>
<!-- IMPORTANT: specify all Atomikos properties here -->
<props>
<prop key="com.atomikos.icatch.service">com.atomikos.icatch.standalone.UserTransactionServiceFactory
</prop>
<prop key="com.atomikos.icatch.output_dir">target/</prop>
<prop key="com.atomikos.icatch.log_base_dir">target/</prop>
</props>
</constructor-arg>
</bean>
<!-- pour retirer le message à propos du fichier jta.properties -->
<bean id="setMyAtomikosSystemProps"
class=".springframework.beans.factory.config.MethodInvokingFactoryBean">
<property name="targetObject">
<!-- System.getProperties() -->
<bean
class=".springframework.beans.factory.config.MethodInvokingFactoryBean">
<property name="targetClass" value="java.lang.System" />
<property name="targetMethod" value="getProperties" />
</bean>
</property>
<property name="targetMethod" value="putAll" />
<property name="arguments">
<!-- The new Properties -->
<util:properties>
<prop key="com.atomikos.icatch.hide_init_file_path">true</prop>
</util:properties>
</property>
</bean>
<!-- configuration pour DbUnit -->
<bean id="connectionProvider" class="fr.gipmds.arpej.test.controller.ConnectionProvider">
<constructor-arg type="String" value=".hsqldb.jdbcDriver" />
<constructor-arg type="String" value="jdbc:hsqldb:file:target/testdb" />
<constructor-arg type="String" value="sa" />
<constructor-arg type="String" value="" />
</bean>
</beans>
One of my class test :
import java.URL;
import java.sql.SQLException;
import java.util.Arrays;
import java.util.Date;
import .dbunit.DatabaseUnitException;
import .junit.jupiter.api.BeforeEach;
import .junit.jupiter.api.Test;
import .junit.jupiter.api.TestInstance;
import .junit.jupiter.api.extension.ExtendWith;
import .springframework.beans.factory.annotation.Autowired;
import .springframework.context.ApplicationContext;
import .springframework.test.annotation.Rollback;
import .springframework.test.context.ContextConfiguration;
import .springframework.test.context.junit.jupiter.SpringExtension;
import .springframework.test.context.junit.jupiter.SpringJUnitConfig;
import .springframework.transaction.annotation.Transactional;
import fr.gipmds.arpej.auth.domain.AuthActeur;
import fr.gipmds.arpej.auth.domain.AuthAgent;
import fr.gipmds.arpej.auth.domain.AuthArretService;
import fr.gipmds.arpej.auth.domain.AuthAutorisationService;
import fr.gipmds.arpej.auth.domain.AuthAutoriteCertification;
import fr.gipmds.arpej.auth.domain.AuthCertificat;
import fr.gipmds.arpej.auth.domain.AuthFonction;
import fr.gipmds.arpej.auth.domain.AuthLibelle;
import fr.gipmds.arpej.auth.domain.AuthRefEntreprise;
import fr.gipmds.arpej.auth.domain.AuthRole;
import fr.gipmds.arpej.auth.domain.AuthServiceNonDecl;
import fr.gipmds.arpej.auth.domain.dao.AuthActeurDao;
import fr.gipmds.arpej.auth.domain.dao.AuthAgentDao;
import fr.gipmds.arpej.auth.domain.dao.AuthArretServiceDao;
import fr.gipmds.arpej.auth.domain.dao.AuthAutorisationServiceDao;
import fr.gipmds.arpej.auth.domain.dao.AuthAutoriteCertificationDao;
import fr.gipmds.arpej.auth.domain.dao.AuthCertificatDao;
import fr.gipmds.arpej.auth.domain.dao.AuthFonctionDao;
import fr.gipmds.arpej.auth.domain.dao.AuthLibelleDao;
import fr.gipmds.arpej.auth.domain.dao.AuthRefEntrepriseDao;
import fr.gipmds.arpej.auth.domain.dao.AuthRoleDao;
import fr.gipmds.arpej.auth.domain.dao.AuthServiceNonDeclDao;
import fr.gipmds.arpej.test.controller.DataSetType;
import fr.gipmds.arpej.test.controller.PopulatorDBUtils;
import fr.gipmds.arpej.trans.domain.prive.Acteur;
import fr.gipmds.arpej.trans.domain.prive.Agent;
import fr.gipmds.arpej.trans.domain.prive.ArretService;
import fr.gipmds.arpej.trans.domain.prive.Autorisation;
import fr.gipmds.arpej.trans.domain.prive.AutoriteCertification;
import fr.gipmds.arpej.trans.domain.prive.Certificat;
import fr.gipmds.arpej.trans.domain.prive.Fonction;
import fr.gipmds.arpej.trans.domain.prive.Libelle;
import fr.gipmds.arpej.trans.domain.prive.RefEntreprise;
import fr.gipmds.arpej.trans.domain.prive.Role;
import fr.gipmds.arpej.trans.domain.prive.ServiceAccessible;
import fr.gipmds.arpej.trans.domain.prive.ServiceNonDecl;
import fr.gipmds.arpej.trans.domain.prive.dao.ActeurDao;
import fr.gipmds.arpej.trans.domain.prive.dao.AgentDao;
import fr.gipmds.arpej.trans.domain.prive.dao.ArretServiceDao;
import fr.gipmds.arpej.trans.domain.prive.dao.AutorisationDao;
import fr.gipmds.arpej.trans.domain.prive.dao.AutoriteCertificationDao;
import fr.gipmds.arpej.trans.domain.prive.dao.CertificatDao;
import fr.gipmds.arpej.trans.domain.prive.dao.FonctionDao;
import fr.gipmds.arpej.trans.domain.prive.dao.LibelleDao;
import fr.gipmds.arpej.trans.domain.prive.dao.RefEntrepriseDao;
import fr.gipmds.arpej.trans.domain.prive.dao.RoleDao;
import fr.gipmds.arpej.trans.domain.prive.dao.ServiceAccessibleDao;
import fr.gipmds.arpej.trans.domain.prive.dao.ServiceNonDeclDao;
import static .junit.jupiter.api.Assertions.*;
/**
* @author Pierre MELLET
*/
@ContextConfiguration(locations = {"classpath:/META-INF/spring/applicationTestContext.xml"})
@SpringJUnitConfig(locations = {"/META-INF/spring/applicationTestContext.xml"})
//TODO - MIST LOT2 : verifier test fonctionne avec remplacement TransactionConfiguration
//@TransactionConfiguration(transactionManager = "txManager",
//defaultRollback = false)
@Rollback(value = false)
@Transactional(transactionManager = "txManager")
public class CreationYTest {
@Autowired
private PopulatorDBUtils hsqlDBUtils;
@Autowired
private FonctionDao fonctionDao;
@Autowired
private AuthFonctionDao authFonctionDao;
@Autowired
private RoleDao roleDao;
@Autowired
private AuthRoleDao authRoleDao;
@Autowired
private CertificatDao certificatDao;
@Autowired
private AuthCertificatDao authCertificatDao;
@Autowired
private AutoriteCertificationDao autoriteCertificationDao;
@Autowired
private AuthAutoriteCertificationDao authAutoriteCertificationDao;
@Autowired
private ArretServiceDao arretServiceDao;
@Autowired
private AuthArretServiceDao authArretServiceDao;
@Autowired
private ActeurDao acteurDao;
@Autowired
private AuthActeurDao authActeurDao;
@Autowired
private AgentDao agentDao;
@Autowired
private AuthAgentDao authAgentDao;
@Autowired
private ServiceAccessibleDao serviceAccessibleDao;
@Autowired
private AuthAutorisationServiceDao authAutorisationServiceDao;
@Autowired
private AutorisationDao autorisationDao;
@Autowired
private LibelleDao libelleDao;
@Autowired
private AuthLibelleDao authLibelleDao;
@Autowired
private ServiceNonDeclDao serviceNonDeclDao;
@Autowired
private AuthServiceNonDeclDao authServiceNonDeclDao;
@Autowired
private RefEntrepriseDao refEntrepriseDao;
@Autowired
private AuthRefEntrepriseDao authRefEntrepriseDao;
@Autowired
private ApplicationContext context;
@BeforeEach
public void setUpTestDataWithinTransaction() throws SQLException, DatabaseUnitException {
this.hsqlDBUtils.loadDataSetToHsqlDB(DataSetType.FULL_PRIVE);
this.hsqlDBUtils.loadDataSetToHsqlDB(DataSetType.FULL_AUTHENT);
}
/**
* Test de création d'un
*
* @throws CloneNotSupportedException
*/
@Test
public void testCreationYFonction() {
final Fonction fctNew = new Fonction();
fctNew.setCreateDate(new Date());
fctNew.setLibelleLong("LONG");
fctNew.setLibelleCourt("TETET");
fctNew.setNiveauAccess(0);
this.fonctionDao.create(fctNew);
final AuthFonction authFonction = this.authFonctionDao.read(AuthFonction.class, fctNew.getId());
assertTrue(authFonction != null);
assertEquals(fctNew.getId(), authFonction.getId());
assertEquals(fctNew.getLibelleCourt(), authFonction.getLibelleCourt());
assertEquals(fctNew.getLibelleLong(), authFonction.getLibelleLong());
assertEquals(fctNew.getNiveauAccess(), authFonction.getNiveauAcces());
}
@Test
public void testCreationYRole() {
final Role role = new Role();
role.setCreateDate(new Date());
role.setLibelleCourt("court");
role.setLibelleLong("Long");
this.roleDao.create(role);
final AuthRole authRole = this.authRoleDao.read(AuthRole.class, role.getId());
assertTrue(authRole != null);
assertEquals(role.getId(), authRole.getId());
assertEquals(role.getLibelleCourt(), authRole.getLibelleCourt());
assertEquals(role.getLibelleLong(), authRole.getLibelleLong());
}
@Test
public void testCreationYCertificat() {
final AutoriteCertification autorite = this.autoriteCertificationDao.read(AutoriteCertification.class, 1L);
final Certificat certificat = new Certificat();
certificat.setAutoriteCertification(autorite);
certificat.setCertificatBinaire("test");
certificat.setDateFinValidite(new Date());
certificat.setRevoque(false);
certificat.setSslIssuer("test");
certificat.setSslSerial("test");
this.certificatDao.create(certificat);
final AuthCertificat authCertificat = this.authCertificatDao.read(AuthCertificat.class, certificat.getId());
assertTrue(authCertificat != null);
assertEquals(authCertificat.getId(), certificat.getId());
assertEquals(authCertificat.getCertificatBinaire(), certificat.getCertificatBinaire());
assertEquals(authCertificat.getSslIssuer(), certificat.getSslIssuer());
assertEquals(authCertificat.getSslSerial(), certificat.getSslSerial());
assertEquals(authCertificat.getAutoriteCertification().getId(), certificat.getAutoriteCertification()
.getId());
assertEquals(authCertificat.getCreateDate(), certificat.getCreateDate());
assertEquals(authCertificat.getDateFinValidite(), certificat.getDateFinValidite());
}
@Test
public void testCreationYAutoriteCertification() {
final AutoriteCertification autorite = new AutoriteCertification();
autorite.setCertificat("test");
autorite.setDateFinValidite(new Date());
autorite.setDnTitulaire("ttes");
autorite.setSslSerial("test");
autorite.setuRLAC("test");
this.autoriteCertificationDao.create(autorite);
final AuthAutoriteCertification authAutorite =
this.authAutoriteCertificationDao.read(AuthAutoriteCertification.class, autorite.getId());
assertTrue(authAutorite != null);
assertEquals(authAutorite.getId(), autorite.getId());
assertEquals(authAutorite.getCertificat(), autorite.getCertificat());
assertEquals(authAutorite.getDnTitulaire(), autorite.getDnTitulaire());
assertEquals(authAutorite.getSslSerial(), autorite.getSslSerial());
assertEquals(authAutorite.getURLAC(), autorite.getuRLAC());
assertEquals(authAutorite.getCreateDate(), autorite.getCreateDate());
assertEquals(authAutorite.getDateFinValidite(), autorite.getDateFinValidite());
}
@Test
public void testCreationYArretService() {
final ArretService arretService = new ArretService();
arretService.setCft(true);
arretService.setComplementInsc(true);
arretService.setDateDebut(new Date());
arretService.setDateFin(new Date());
arretService.setDeclaration(true);
arretService.setMessage("test");
arretService.setMom(true);
this.arretServiceDao.create(arretService);
final AuthArretService authArretService =
this.authArretServiceDao.read(AuthArretService.class, arretService.getId());
assertTrue(authArretService != null);
assertEquals(authArretService.getId(), arretService.getId());
assertEquals(authArretService.getMessage(), arretService.getMessage());
assertEquals(authArretService.isComplementInsc(), arretService.isComplementInsc());
assertEquals(authArretService.isDeclaration(), arretService.isDeclaration());
}
}
I verified each of the autowired classes they all have annotations like @component, or @repository so they should be injectables beans, i really don't know where is the issue
Here is my error :
java.lang.NullPointerException
at fr.gipmds.arpej.priv.domain.sync.CreationYTest.setUpTestDataWithinTransaction(CreationYTest.java:148)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at .junit.platformmons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:725)
at .junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60)
at .junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131)
at .junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:149)
at .junit.jupiter.engine.extension.TimeoutExtension.interceptLifecycleMethod(TimeoutExtension.java:126)
at .junit.jupiter.engine.extension.TimeoutExtension.interceptBeforeEachMethod(TimeoutExtension.java:76)
at .junit.jupiter.engine.execution.ExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(ExecutableInvoker.java:115)
at .junit.jupiter.engine.execution.ExecutableInvoker.lambda$invoke$0(ExecutableInvoker.java:105)
at .junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106)
at .junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64)
at .junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45)
at .junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37)
at .junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:104)
at .junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:98)
at .junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.invokeMethodInExtensionContext(ClassBasedTestDescriptor.java:506)
at .junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$synthesizeBeforeEachMethodAdapter$21(ClassBasedTestDescriptor.java:491)
at .junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeBeforeEachMethods$3(TestMethodTestDescriptor.java:171)
at .junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeBeforeMethodsOrCallbacksUntilExceptionOccurs$6(TestMethodTestDescriptor.java:199)
at .junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at .junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeBeforeMethodsOrCallbacksUntilExceptionOccurs(TestMethodTestDescriptor.java:199)
at .junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeBeforeEachMethods(TestMethodTestDescriptor.java:168)
at .junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:131)
at .junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:66)
at .junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:151)
at .junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at .junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
at .junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
at .junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
at .junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at .junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
at .junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1540)
at .junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)
at .junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155)
at .junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at .junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
at .junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
at .junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
at .junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at .junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
at .junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1540)
at .junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)
at .junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155)
at .junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at .junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
at .junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
at .junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
at .junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at .junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
at .junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
at .junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35)
at .junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57)
at .junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54)
at .junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:107)
at .junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:88)
at .junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:54)
at .junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:67)
at .junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:52)
at .junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:114)
at .junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:86)
at .junit.platform.launcher.core.DefaultLauncherSession$DelegatingLauncher.execute(DefaultLauncherSession.java:86)
at .apache.maven.surefire.junitplatform.LazyLauncher.execute(LazyLauncher.java:56)
at .apache.maven.surefire.junitplatform.JUnitPlatformProvider.execute(JUnitPlatformProvider.java:184)
at .apache.maven.surefire.junitplatform.JUnitPlatformProvider.invokeAllTests(JUnitPlatformProvider.java:148)
at .apache.maven.surefire.junitplatform.JUnitPlatformProvider.invoke(JUnitPlatformProvider.java:122)
at .apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:385)
at .apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:162)
at .apache.maven.surefire.booter.ForkedBooter.run(ForkedBooter.java:507)
at .apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:495)