Java单元测试实践-11.Mock后Stub Spring的@Component组件

Java单元测试实践-00.目录(9万多字文档+700多测试示例)
https://blog.youkuaiyun.com/a82514921/article/details/107969340

1. Spring Context加载次数

在使用PowerMock时,每执行一个测试类,Spring Context都会重新加载一次,不会使用缓存。

参考“A question on PowerMock setup”( https://github.com/powermock/powermock/issues/800 ),有人尝试在使用PowerMock时重用Spring Context,PowerMock的维护者回复建议将DefaultCacheAwareContextLoaderDelegate类添加至@PowerMockIgnore中。有其他人回复上述方法会导致损坏依赖树并最终放弃。

经过测试,以上方法不可行,在程序启动时会报错无法启动,与上述issue中的回复一致。

按照实际情况考虑,在使用Mock时,假如重用Spring Conetxt,会导致之前设置的Mock条件对后续执行的测试产生影响,因此重用Spring Context没有必要,执行每个测试类时都重新加载Spring Context更合理。

2. Mock后Stub Spring的@Component组件

以下针对Spring的@Component组件的Mock对象进行Stub操作进行说明。

2.1. 创建Mock对象

创建Mock对象时,可以使用Mockito.mock()方法或@Mock注解,示例如下。

TestPublicNonVoidService1 testPublicNonVoidService1 = Mockito.mock(TestPublicNonVoidService1.class);

@Mock
private TestPublicNonVoidService1 testPublicNonVoidService1Mock;

使用@Mock注解的Mock对象,与Mockito.mock()返回的Mock对象的方法均支持Stub,效果相同。

2.2. Mock对象类名标志

Mock对象的类名中包含Mock标志,如“com.adrninistrator.service.TestPublicNonVoidService1$MockitoMock$880111272”,根据对象的Class对象是否等于原始类Class对象可以判断其是否为Mock对象。可参考示例TestSpMockClassFlag类。

2.3. 同一个类的多个Mock对象

使用Mockito.mock()方法或@Mock注解可以对同一个类产生多个Mock对象,每个Mock对象之间相互独立,不会相互影响。可参考示例TestSpMockMulti类。

2.4. Stub @Component组件Mock对象公有非void方法

对Spring的@Component组件的Mock对象公有非void方法进行Stub时,与对静态方法的处理类似。

2.4.1. 修改返回值

使用Mockito.when(@Component组件的Mock对象.方法(Stub参数条件)).thenReturn(),thenReturn()方法的参数指定了返回值。支持对Spring的@Component组件的Mock对象的公有非void方法进行Stub,返回指定的值。当调用被Stub的方法时,真实方法不会被调用。示例如下,可参考示例TestSpMPuNVThenReturn类。

Mockito.when(testPublicNonVoidService1.test1(TestConstants.FLAG1)).thenReturn(TestConstants.MOCKED);

2.4.2. 抛出异常

使用Mockito.when(@Component组件的Mock对象.方法(Stub参数条件)).thenThrow(),支持对Spring的@Component组件的Mock对象的公有非void方法进行Stub,抛出指定的异常。示例如下,可参考示例TestSpMPuNVThenThrow类。

Mockito.when(testPublicNonVoidService1.test1(TestConstants.FLAG1)).thenThrow(new RuntimeException
        (TestConstants.MOCKED));

2.4.3. 使用Answer实现回调

使用Mockito.when(@Component组件的Mock对象.方法(Stub参数条件)).thenAnswer(),支持对Spring的@Component组件的Mock对象的公有非void方法进行Stub,实现回调,执行自定义操作。示例如下,可参考示例TestSpMPuNVThenAnswer类。

Mockito.when(testPublicNonVoidService1.test1(TestConstants.FLAG1)).thenAnswer(invocation -> TestConstants
        .MOCKED);

使用Answer时支持的功能,可参考前文对静态公有非void方法的处理,对于执行真实方法的处理,可以参考后文。

2.4.4. 使用verify判断方法的执行次数

使用Mockito.verify(@Component组件的Mock对象, VerificationMode对象).方法(Verify参数条件),可以判断Spring的@Component组件的Mock对象的公有非void方法执行次数。示例如下,可参考示例TestSpMPuNVVerify类。

Mockito.verify(testPublicNonVoidService1, Mockito.times(1)).test1(Mockito.anyString());

Mockito.verify(testPublicNonVoidService1, Mockito.times(1)).test1(TestConstants.FLAG1);

VerificationMode对象的使用方法,可参考前文对静态公有非void方法的处理。

2.4.4.1. 使用Captor获取调用参数

在使用Mockito.verify()方法判断Mock对象的方法执行次数时,还可以使用Captor获取调用参数,需要将Verify参数条件替换为ArgumentCaptor类的capture()方法返回的对象,如Mockito.verify(@Component组件的Mock对象, VerificationMode对象).方法(ArgumentCaptor对象.capture())。示例如下,可参考示例TestSpMPuNVVerifyCaptor类。

ArgumentCaptor<String> argCaptor1 = ArgumentCaptor.forClass(String.class);

Mockito.verify(testPublicNonVoidService1, Mockito.times(1)).test1(argCaptor1.capture());

ArgumentCaptor对象的使用方法,可参考前文对静态公有非void方法的处理。

2.4.5. 执行真实方法

使用Mockito.when(@Component组件的Mock对象.方法(Stub参数条件)).thenCallRealMethod(),支持对Spring的@Component组件的Mock对象的公有非void方法进行Stub,执行真实方法。

对于接口的Mock的某方法进行Stub,使其执行真实方法时,会出现异常。 异常信息如下所示,可参考示例TestSpMPuNVThenCallRealMethod类test1方法。

org.mockito.exceptions.base.MockitoException
Cannot call abstract real method on java object!
Calling real methods is only possible when mocking non abstract method.
  //correct example:
  when(mockOfConcreteClass.nonAbstractMethod()).thenCallRealMethod();

对于实现类的Mock对象,支持通过Mockito.when().thenCallRealMethod()方法Stub,执行真实方法。 示例如下,可参考示例TestSpMPuNVThenCallRealMethod类test2方法。

TestPublicNonVoidService1Impl testPublicNonVoidService1ImplMock = Mockito.mock(TestPublicNonVoidService1Impl.class);

Mockito.when(testPublicNonVoidService1ImplMock.test1(TestConstants.FLAG1)).thenCallRealMethod();

对实现类Mock对象的方法进行Stub,使其执行真实方法,若在真实方法中使用了需要注入的成员变量,由于需要注入的成员变量为null,会出现空指针异常。可参考示例TestSpMPuNVThenCallRealMethod类test3方法。

2.4.6. Stub同一个方法多次,每次执行不同的Stub操作

参考“12. doReturn()|doThrow()| doAnswer()|doNothing()|doCallRealMethod() family of methods”( https://static.javadoc.io/org.mockito/mockito-core/latest/org/mockito/Mockito.html#do_family_methods_stubs )。

使用doThrow(), doAnswer(), doNothing(), doReturn()和doCallRealMethod()方法,可以在Stub同一个方法多次时,在测试过程中更改Stub行为,每次执行不同的Stub操作。

使用Mockito.do…()方法支持对@Component组件的Mock对象的公有方法进行Stub,示例为Mockito.do…().when(@Component组件的Mock对象).方法(Stub参数条件)。

当对同一个方法Stub多次时,第n次执行的行为满足第n次Stub指定的操作,当执行次数大于Stub次数时,满足最后一次Stub指定的操作。

例如通过以下方式对同一个方法Stub两次,使其每次返回不同的值,多次执行时返回值为TestConstants.FLAG1、TestConstants.FLAG2、TestConstants.FLAG2…,可参考示例TestSpMPuNVThenReturnMulti类。

Mockito.doReturn(TestConstants.FLAG1).doReturn(TestConstants.FLAG2).when(testPublicNonVoidService1).test1
        (Mockito.anyString());

可以使用不同的do…方法对同一个方法Stub多次。

例如执行Mockito.doNothing().doThrow().when(),可以使被Stub的方法第一次执行时什么也不做,第二次执行时抛出异常。可参考示例TestSpMPuVDoNothing类test2方法。

2.5. Stub @Component组件Mock对象公有void方法

参考“12. doReturn()|doThrow()| doAnswer()|doNothing()|doCallRealMethod() family of methods”( https://static.javadoc.io/org.mockito/mockito-core/latest/org/mockito/Mockito.html#do_family_methods_stubs )。

对void方法进行Stub需要使用与Mockito.when().then…()不同的方法,因为编译器不支持在括号内指定void方法(对应Mockito.when()方法的参数)。

可以使用doThrow(), doAnswer(), doNothing(), doReturn()和doCallRealMethod()方法替代对应的then…()方法。

例如使用doThrow()方法时,示例如下:

Mockito.doThrow(new RuntimeException()).when(mockedList).clear();

使用PowerMockito.when(@Component组件的Mock对象, 方法名, Stub参数条件).then…()方法,也支持对@Component组件公有void方法进行Stub,示例如下:

PowerMockito.when(testPublicVoidService1, TestPublicVoidService1Impl.NAME_TEST1, Mockito.any(StringBuilder
        .class)).thenThrow(new RuntimeException(TestConstants.MOCKED));

2.5.1. 抛出异常

使用Mockito.doThrow().when(@Component组件的Mock对象).方法(Stub参数条件),支持对Spring的@Component组件的Mock对象的公有void方法进行Stub,抛出指定的异常。示例如下,可参考示例TestSpMPuVThenThrow类。

Mockito.doThrow(new RuntimeException(TestConstants.MOCKED)).when(testPublicVoidService1).test1(Mockito.any
        (StringBuilder.class));

2.5.2. 使用Answer实现回调

使用Mockito.doAnswer().when(@Component组件的Mock对象).方法(Stub参数条件),支持对Spring的@Component组件的Mock对象的公有void方法进行Stub,实现回调。示例如下,可参考示例TestSpMPuVThenAnswer类。

PowerMockito.doAnswer(invocation -> {
    invocation.callRealMethod();
    return null;
}).when(testPublicVoidService1).test1(Mockito.any(StringBuilder.class));

2.5.3. 使用verify判断方法的执行次数

判断Spring的@Component组件的Mock对象的公有void方法执行次数,可使用Mockito.verify()方法,与判断Spring的@Component组件的Mock对象的公有非void方法执行次数时的步骤相同。可参考示例TestSpMPuVVerify类。

2.5.3.1. 使用Captor获取调用参数

判断Spring的@Component组件的Mock对象的公有void方法执行次数,并使用Captor获取调用参数,可使用Mockito.verify()方法及ArgumentCaptor类,与处理Spring的@Component组件的Mock对象的公有非void方法时的步骤相同。可参考示例TestSpMPuVVerifyCaptor类。

2.5.4. 执行真实方法

对于接口的Mock对象,不支持通过Mockito.doCallRealMethod().when()方法Stub,执行真实方法,会出现以下异常,可参考示例TestSpMPuVThenCallRealMethodInterface类。

org.mockito.exceptions.base.MockitoException
Cannot call abstract real method on java object!
Calling real methods is only possible when mocking non abstract method.
  //correct example:
  when(mockOfConcreteClass.nonAbstractMethod()).thenCallRealMethod();

对于实现类的Mock对象,支持通过Mockito.doCallRealMethod().when()方法Stub,执行真实方法。示例如下,可参考示例TestSpMPuVThenCallRealMethod类。

Mockito.doCallRealMethod().when(testPublicVoidService1).test1(Mockito.any(StringBuilder.class));

若实现类的Mock对象执行的真实方法中使用了需要注入的成员变量,其值会是null,执行真实方法时会出现空指针异常,示例略。

2.5.5. 什么也不做

使用Mockito.doNothing().when(@Component组件的Mock对象).方法(Stub参数条件),支持对Spring的@Component组件的Mock对象的公有void方法进行Stub,使其什么也不做。示例如下,可参考示例TestSpMPuVDoNothing类test1方法。

Mockito.doNothing().when(testPublicVoidService1).test1(Mockito.any(StringBuilder.class));

2.6. Stub @Component组件Mock对象私有非void方法

Mockito不支持对私有方法进行Stub,需要使用PowerMockito对Spring的@Component组件Mock对象私有方法进行Stub。

通过反射调用私有方法,或通过对应的公有方法间接调用私有方法时,Stub均能生效。

2.6.1. Mockito.mock()返回的Mock对象

当使用PowerMockito.when()方法对Mockito.mock()返回的Mock对象的私有方法进行Stub时,会出现异常。异常示例如下,可参考示例TestSpMPrNVThenReturnMockito类test1方法。

org.mockito.exceptions.misusing.InvalidUseOfMatchersException
Misplaced or misused argument matcher detected here:
You cannot use argument matchers outside of verification or stubbing.

当使用PowerMockito.do…().when()方法对Mockito.mock()返回的Mock对象的私有方法进行Stub时,不会出现异常,但Stub会失败。可参考示例TestSpMPrNVThenReturnMockito类test2方法。

2.6.2. 使用@PrepareForTest注解

在对Spring的@Component组件的Mock对象的私有方法进行Stub时,需要使用PowerMockito.mock()返回的Mock对象,以及PowerMockito.do…().when()方法,并使用@PrepareForTest注解指定私有方法对应的实现类。

若不使用@PrepareForTest注解指定私有方法对应的实现类,对私有方法的Stub不会生效,且测试方法执行完毕后会出现失败,出现以下提示信息。可参考示例TestSpMPrNVThenReturnNoPrepare类。

Test mechanism.classMethod FAILED
org.mockito.exceptions.misusing.InvalidUseOfMatchersException: 
Misplaced or misused argument matcher detected here:
You cannot use argument matchers outside of verification or stubbing.

2.6.3. 修改返回值

使用PowerMockito.doReturn().when(@Component组件的Mock对象, 方法名, Stub参数条件),doReturn()方法的参数指定了返回值。支持对Spring的@Component组件的Mock对象的私有非void方法进行Stub,返回指定的值。当调用被Stub的方法时,真实方法不会被调用。示例如下,可参考示例TestSpMPrNVThenReturn类。

PowerMockito.doReturn(TestConstants.MOCKED).when(testPrivateNonVoidService1, TestPrivateNonVoidService1Impl
        .NAME_TEST1, Mockito.anyString());

2.6.4. 抛出异常

使用PowerMockito.doThrow().when(@Component组件的Mock对象, 方法名, Stub参数条件),支持对Spring的@Component组件的Mock对象的私有非void方法进行Stub,抛出指定的异常。示例如下,可参考示例TestSpMPrNVThenThrow类。

PowerMockito.doThrow(new RuntimeException(TestConstants.MOCKED)).when(testPrivateNonVoidService1,
        TestPrivateNonVoidService1Impl.NAME_TEST1, Mockito.anyString());

2.6.5. 使用Answer实现回调

使用PowerMockito.doAnswer().when(@Component组件的Mock对象, 方法名, Stub参数条件),支持对Spring的@Component组件的Mock对象的私有非void方法进行Stub,实现回调,执行自定义操作。示例如下,可参考示例TestSpMPrNVThenAnswer类。

PowerMockito.doAnswer(invocation -> TestConstants.MOCKED).when(testPrivateNonVoidService1,
        TestPrivateNonVoidService1Impl.NAME_TEST1, Mockito.anyString());

2.6.6. 使用verify判断方法的执行次数

使用PowerMockito类的verifyPrivate()方法可以判断Spring的@Component组件的Mock对象的私有非void方法执行次数,需要使用@PrepareForTest注解指定被Mock的类,分两步执行:

  • 首先执行“PowerMockito.verifyPrivate(@Component组件的Mock对象, VerificationMode对象);”
  • 再通过反射执行Spring的@Component组件的Mock对象的私有非void方法,参数使用Verify参数条件

示例如下,可参考示例TestSpMPrNVVerify类。

PowerMockito.verifyPrivate(testPrivateNonVoidService1, Mockito.times(0));
Whitebox.invokeMethod(testPrivateNonVoidService1, TestPrivateNonVoidService1Impl.NAME_TEST1, "");

在通过反射执行Spring的@Component组件的Mock对象的私有非void方法时,参数可为具体值,也可以使用Mockito.any()等ArgumentMatchers类的方法,可参考判断静态方法执行次数的说明。

当使用Mockito.verify()方法判断Spring的@Component组件的Mock对象的私有非void方法执行次数时,Mockito.verify()方法执行一次时正常,执行超过一次时会出现异常。异常信息如下所示,可参考示例TestSpMPrNVVerifyMockito类。

org.mockito.exceptions.misusing.UnfinishedVerificationException
Missing method call for verify(mock) here:

当使用PowerMockito.verifyPrivate()方法判断Spring的@Component组件的Mock对象的私有非void方法执行次数时,需要使用@PrepareForTest注解指定被Mock的类。 若不使用@PrepareForTest注解指定被Mock的类,PowerMockito.verifyPrivate()方法执行一次时正常,执行超过一次时会出现异常。异常信息如下所示,可参考示例TestSpMPrNVVerifyNoPrepare类。

org.mockito.exceptions.misusing.UnfinishedVerificationException
Missing method call for verify(mock) here:
2.6.6.1. 使用Captor获取调用参数

在使用PowerMockito.verifyPrivate()方法判断Mock对象的方法执行次数时,还可以使用Captor获取调用参数,需要将Verify参数条件替换为ArgumentCaptor类的capture()方法返回的对象。示例如下,可参考示例TestSpMPrNVVerifyCaptor类。

ArgumentCaptor<String> argCaptor1a = ArgumentCaptor.forClass(String.class);

PowerMockito.verifyPrivate(testPrivateNonVoidService1, Mockito.times(1));
Whitebox.invokeMethod(testPrivateNonVoidService1, TestPrivateNonVoidService1Impl.NAME_TEST1,
        argCaptor1a.capture());

2.6.7. 执行真实方法

使用PowerMockito.doCallRealMethod().when(@Component组件的Mock对象, 方法名, Stub参数条件),支持对Spring的@Component组件的Mock对象的私有非void方法进行Stub,执行真实方法。示例如下,可参考示例TestSpMPrNVThenCallRealMethod类。

PowerMockito.doCallRealMethod().when(testPrivateNonVoidService1, TestPrivateNonVoidService1Impl
        .NAME_TEST1, Mockito.anyString());

对于Spring的@Component组件的Mock对象,在执行真实方法时可能出现空指针异常,原因可参考前文。

2.7. Stub @Component组件Mock对象私有void方法

对Spring的@Component组件Mock对象私有void方法进行Stub的处理,与对Spring的@Component组件Mock对象私有非void方法进行Stub的处理类似。

  • 抛出异常

使用PowerMockito.doThrow().when(@Component组件的Mock对象, 方法名, Stub参数条件),支持对Spring的@Component组件的Mock对象的私有void方法进行Stub,抛出指定的异常。可参考示例TestSpMPrVThenThrow类。

  • 使用Answer实现回调

使用PowerMockito.doAnswer().when(@Component组件的Mock对象, 方法名, Stub参数条件),支持对Spring的@Component组件的Mock对象的私有void方法进行Stub,实现回调,执行自定义操作。可参考示例TestSpMPrVThenAnswer类。

  • 使用verify判断方法的执行次数

使用PowerMockito类的verifyPrivate()方法可以判断Spring的@Component组件的Mock对象的私有void方法执行次数,与判断私有非void方法执行次数类似。可参考示例TestSpMPrVVerify类。

  • 使用Captor获取调用参数

在使用PowerMockito.verifyPrivate()方法判断Mock对象的方法执行次数时,还可以使用Captor获取调用参数,与私有非void方法的处理类似。可参考示例TestSpMPrVVerifyCaptor类。

  • 执行真实方法

使用PowerMockito.doCallRealMethod().when(@Component组件的Mock对象, 方法名, Stub参数条件),支持对Spring的@Component组件的Mock对象的私有void方法进行Stub,执行真实方法。可参考示例TestSpMPrVThenCallRealMethod类。

对于Spring的@Component组件的Mock对象,在执行真实方法时可能出现空指针异常,原因可参考前文。

  • 什么也不做

使用PowerMockito.doNothing().when(@Component组件的Mock对象, 方法名, Stub参数条件),支持对Spring的@Component组件的Mock对象的私有void方法进行Stub,使其什么也不做。示例如下,可参考示例TestSpMPrVDoNothing类。

PowerMockito.doNothing().when(testPrivateVoidService1, TestPrivateVoidService1Impl.NAME_TEST1, Mockito.any
        (StringBuilder.class));
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'com.example.studentmanagement.StudentManagementApplicationTests': Injection of resource dependencies failed at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessProperties(CommonAnnotationBeanPostProcessor.java:372) ~[spring-context-6.2.7.jar:6.2.7] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1459) ~[spring-beans-6.2.7.jar:6.2.7] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireBeanProperties(AbstractAutowireCapableBeanFactory.java:405) ~[spring-beans-6.2.7.jar:6.2.7] at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.injectDependencies(DependencyInjectionTestExecutionListener.java:156) ~[spring-test-6.2.7.jar:6.2.7] at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.prepareTestInstance(DependencyInjectionTestExecutionListener.java:111) ~[spring-test-6.2.7.jar:6.2.7] at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:260) ~[spring-test-6.2.7.jar:6.2.7] at org.springframework.test.context.junit.jupiter.SpringExtension.postProcessTestInstance(SpringExtension.java:159) ~[spring-test-6.2.7.jar:6.2.7] at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$invokeTestInstancePostProcessors$10(ClassBasedTestDescriptor.java:383) ~[junit-jupiter-engine-5.12.2.jar:5.12.2] at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.executeAndMaskThrowable(ClassBasedTestDescriptor.java:388) ~[junit-jupiter-engine-5.12.2.jar:5.12.2] at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$invokeTestInstancePostProcessors$11(ClassBasedTestDescriptor.java:382) ~[junit-jupiter-engine-5.12.2.jar:5.12.2] at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183) ~[na:na] at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197) ~[na:na] at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179) ~[na:na] at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197) ~[na:na] at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625) ~[na:na] at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) ~[na:na] at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) ~[na:na] at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150) ~[na:na] at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173) ~[na:na] at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[na:na] at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596) ~[na:na] at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.invokeTestInstancePostProcessors(ClassBasedTestDescriptor.java:382) ~[junit-jupiter-engine-5.12.2.jar:5.12.2] at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$instantiateAndPostProcessTestInstance$6(ClassBasedTestDescriptor.java:293) ~[junit-jupiter-engine-5.12.2.jar:5.12.2] at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) ~[junit-platform-engine-1.12.2.jar:1.12.2] at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.instantiateAndPostProcessTestInstance(ClassBasedTestDescriptor.java:292) ~[junit-jupiter-engine-5.12.2.jar:5.12.2] at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$testInstancesProvider$4(ClassBasedTestDescriptor.java:281) ~[junit-jupiter-engine-5.12.2.jar:5.12.2] at java.base/java.util.Optional.orElseGet(Optional.java:364) ~[na:na] at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$testInstancesProvider$5(ClassBasedTestDescriptor.java:280) ~[junit-jupiter-engine-5.12.2.jar:5.12.2] at org.junit.jupiter.engine.execution.TestInstancesProvider.getTestInstances(TestInstancesProvider.java:27) ~[junit-jupiter-engine-5.12.2.jar:5.12.2] at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$prepare$0(TestMethodTestDescriptor.java:112) ~[junit-jupiter-engine-5.12.2.jar:5.12.2] at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) ~[junit-platform-engine-1.12.2.jar:1.12.2] at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.prepare(TestMethodTestDescriptor.java:111) ~[junit-jupiter-engine-5.12.2.jar:5.12.2] at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.prepare(TestMethodTestDescriptor.java:69) ~[junit-jupiter-engine-5.12.2.jar:5.12.2] at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$prepare$2(NodeTestTask.java:128) ~[junit-platform-engine-1.12.2.jar:1.12.2] at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) ~[junit-platform-engine-1.12.2.jar:1.12.2] at org.junit.platform.engine.support.hierarchical.NodeTestTask.prepare(NodeTestTask.java:128) ~[junit-platform-engine-1.12.2.jar:1.12.2] at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) ~[junit-platform-engine-1.12.2.jar:1.12.2] at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) ~[na:na] at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) ~[junit-platform-engine-1.12.2.jar:1.12.2] at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:160) ~[junit-platform-engine-1.12.2.jar:1.12.2] at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) ~[junit-platform-engine-1.12.2.jar:1.12.2] at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:146) ~[junit-platform-engine-1.12.2.jar:1.12.2] at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) ~[junit-platform-engine-1.12.2.jar:1.12.2] at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:144) ~[junit-platform-engine-1.12.2.jar:1.12.2] at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) ~[junit-platform-engine-1.12.2.jar:1.12.2] at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:143) ~[junit-platform-engine-1.12.2.jar:1.12.2] at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:100) ~[junit-platform-engine-1.12.2.jar:1.12.2] at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) ~[na:na] at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) ~[junit-platform-engine-1.12.2.jar:1.12.2] at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:160) ~[junit-platform-engine-1.12.2.jar:1.12.2] at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) ~[junit-platform-engine-1.12.2.jar:1.12.2] at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:146) ~[junit-platform-engine-1.12.2.jar:1.12.2] at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) ~[junit-platform-engine-1.12.2.jar:1.12.2] at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:144) ~[junit-platform-engine-1.12.2.jar:1.12.2] at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) ~[junit-platform-engine-1.12.2.jar:1.12.2] at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:143) ~[junit-platform-engine-1.12.2.jar:1.12.2] at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:100) ~[junit-platform-engine-1.12.2.jar:1.12.2] at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35) ~[junit-platform-engine-1.12.2.jar:1.12.2] at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57) ~[junit-platform-engine-1.12.2.jar:1.12.2] at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54) ~[junit-platform-engine-1.12.2.jar:1.12.2] at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:201) ~[junit-platform-launcher-1.12.2.jar:1.12.2] at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:170) ~[junit-platform-launcher-1.12.2.jar:1.12.2] at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:94) ~[junit-platform-launcher-1.12.2.jar:1.12.2] at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:59) ~[junit-platform-launcher-1.12.2.jar:1.12.2] at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:142) ~[junit-platform-launcher-1.12.2.jar:1.12.2] at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:58) ~[junit-platform-launcher-1.12.2.jar:1.12.2] at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:103) ~[junit-platform-launcher-1.12.2.jar:1.12.2] at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:85) ~[junit-platform-launcher-1.12.2.jar:1.12.2] at org.junit.platform.launcher.core.DelegatingLauncher.execute(DelegatingLauncher.java:47) ~[junit-platform-launcher-1.12.2.jar:1.12.2] at org.junit.platform.launcher.core.InterceptingLauncher.lambda$execute$1(InterceptingLauncher.java:39) ~[junit-platform-launcher-1.12.2.jar:1.12.2] at org.junit.platform.launcher.core.ClasspathAlignmentCheckingLauncherInterceptor.intercept(ClasspathAlignmentCheckingLauncherInterceptor.java:25) ~[junit-platform-launcher-1.12.2.jar:1.12.2] at org.junit.platform.launcher.core.InterceptingLauncher.execute(InterceptingLauncher.java:38) ~[junit-platform-launcher-1.12.2.jar:1.12.2] at org.junit.platform.launcher.core.DelegatingLauncher.execute(DelegatingLauncher.java:47) ~[junit-platform-launcher-1.12.2.jar:1.12.2] at org.junit.platform.launcher.core.SessionPerRequestLauncher.execute(SessionPerRequestLauncher.java:63) ~[junit-platform-launcher-1.12.2.jar:1.12.2] at com.intellij.junit5.JUnit5IdeaTestRunner.startRunnerWithArgs(JUnit5IdeaTestRunner.java:57) ~[junit5-rt.jar:na] at com.intellij.rt.junit.IdeaTestRunner$Repeater$1.execute(IdeaTestRunner.java:38) ~[junit-rt.jar:na] at com.intellij.rt.execution.junit.TestsRepeater.repeat(TestsRepeater.java:11) ~[idea_rt.jar:na] at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:35) ~[junit-rt.jar:na] at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:232) ~[junit-rt.jar:na] at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:55) ~[junit-rt.jar:na] Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com.example.studentmanagement.service.StudentService' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@jakarta.annotation.Resource(shareable=true, lookup="", name="", description="", authenticationType=CONTAINER, type=java.lang.Object.class, mappedName="")} at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoMatchingBeanFound(DefaultListableBeanFactory.java:2280) ~[spring-beans-6.2.7.jar:6.2.7] at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1703) ~[spring-beans-6.2.7.jar:6.2.7] at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1628) ~[spring-beans-6.2.7.jar:6.2.7] at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.autowireResource(CommonAnnotationBeanPostProcessor.java:599) ~[spring-context-6.2.7.jar:6.2.7] at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.getResource(CommonAnnotationBeanPostProcessor.java:577) ~[spring-context-6.2.7.jar:6.2.7] at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement.getResourceToInject(CommonAnnotationBeanPostProcessor.java:739) ~[spring-context-6.2.7.jar:6.2.7] at org.springframework.beans.factory.annotation.InjectionMetadata$InjectedElement.inject(InjectionMetadata.java:272) ~[spring-beans-6.2.7.jar:6.2.7] at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:146) ~[spring-beans-6.2.7.jar:6.2.7] at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessProperties(CommonAnnotationBeanPostProcessor.java:369) ~[spring-context-6.2.7.jar:6.2.7] ... 79 common frames omitted org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'com.example.studentmanagement.StudentManagementApplicationTests': Injection of resource dependencies failed at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessProperties(CommonAnnotationBeanPostProcessor.java:372) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1459) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireBeanProperties(AbstractAutowireCapableBeanFactory.java:405) at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.injectDependencies(DependencyInjectionTestExecutionListener.java:156) at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.prepareTestInstance(DependencyInjectionTestExecutionListener.java:111) at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:260) at org.springframework.test.context.junit.jupiter.SpringExtension.postProcessTestInstance(SpringExtension.java:159) at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183) at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197) at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179) at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197) at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625) at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150) at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173) at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596) at java.base/java.util.Optional.orElseGet(Optional.java:364) at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com.example.studentmanagement.service.StudentService' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@jakarta.annotation.Resource(shareable=true, lookup="", name="", description="", authenticationType=CONTAINER, type=java.lang.Object.class, mappedName="")} at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoMatchingBeanFound(DefaultListableBeanFactory.java:2280) at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1703) at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1628) at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.autowireResource(CommonAnnotationBeanPostProcessor.java:599) at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.getResource(CommonAnnotationBeanPostProcessor.java:577) at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement.getResourceToInject(CommonAnnotationBeanPostProcessor.java:739) at org.springframework.beans.factory.annotation.InjectionMetadata$InjectedElement.inject(InjectionMetadata.java:272) at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:146) at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessProperties(CommonAnnotationBeanPostProcessor.java:369) ... 20 more 进程已结束,退出代码为 -1
05-28
D:\application\JDK\bin\java.exe -ea -Djacoco-agent.destfile=D:\workspace\CCC00910_MspAI_GCH\target/jacoco.exec -Didea.test.cyclic.buffer.size=1048576 -javaagent:C:\Users\itw00668\AppData\Roaming\JetBrains\IdeaIC2024.2\plugins\mysql-log-plugin\lib\mysql-log-agent-1.1.jar -Dmysql-log.projectId=9bad6d48 "-javaagent:D:\application\Idea\Idea2024\IntelliJ IDEA Community Edition 2024.2.3\lib\idea_rt.jar=56530:D:\application\Idea\Idea2024\IntelliJ IDEA Community Edition 2024.2.3\bin" -Dfile.encoding=UTF-8 -classpath "C:\Users\itw00668\.m2\repository\org\junit\platform\junit-platform-launcher\1.8.2\junit-platform-launcher-1.8.2.jar;C:\Users\itw00668\.m2\repository\org\junit\platform\junit-platform-engine\1.8.2\junit-platform-engine-1.8.2.jar;C:\Users\itw00668\.m2\repository\org\opentest4j\opentest4j\1.2.0\opentest4j-1.2.0.jar;C:\Users\itw00668\.m2\repository\org\junit\platform\junit-platform-commons\1.8.2\junit-platform-commons-1.8.2.jar;C:\Users\itw00668\.m2\repository\org\apiguardian\apiguardian-api\1.1.2\apiguardian-api-1.1.2.jar;D:\application\Idea\Idea2024\IntelliJ IDEA Community Edition 2024.2.3\lib\idea_rt.jar;D:\application\Idea\Idea2024\IntelliJ IDEA Community Edition 2024.2.3\plugins\junit\lib\junit5-rt.jar;D:\application\Idea\Idea2024\IntelliJ IDEA Community Edition 2024.2.3\plugins\junit\lib\junit-rt.jar;D:\application\JDK\jre\lib\charsets.jar;D:\application\JDK\jre\lib\deploy.jar;D:\application\JDK\jre\lib\ext\access-bridge-64.jar;D:\application\JDK\jre\lib\ext\cldrdata.jar;D:\application\JDK\jre\lib\ext\dnsns.jar;D:\application\JDK\jre\lib\ext\jaccess.jar;D:\application\JDK\jre\lib\ext\jfxrt.jar;D:\application\JDK\jre\lib\ext\localedata.jar;D:\application\JDK\jre\lib\ext\nashorn.jar;D:\application\JDK\jre\lib\ext\sunec.jar;D:\application\JDK\jre\lib\ext\sunjce_provider.jar;D:\application\JDK\jre\lib\ext\sunmscapi.jar;D:\application\JDK\jre\lib\ext\sunpkcs11.jar;D:\application\JDK\jre\lib\ext\zipfs.jar;D:\application\JDK\jre\lib\javaws.jar;D:\application\JDK\jre\lib\jce.jar;D:\application\JDK\jre\lib\jfr.jar;D:\application\JDK\jre\lib\jfxswt.jar;D:\application\JDK\jre\lib\jsse.jar;D:\application\JDK\jre\lib\management-agent.jar;D:\application\JDK\jre\lib\plugin.jar;D:\application\JDK\jre\lib\resources.jar;D:\application\JDK\jre\lib\rt.jar;D:\workspace\CCC00910_MspAI_GCH\target\test-classes;D:\workspace\CCC00910_MspAI_GCH\target\classes;D:\application\Maven\repository\ZA21\bee-starter-logging\5.10.21\bee-starter-logging-5.10.21.jar;D:\application\Maven\repository\ZA21\bee-commons\5.10.21\bee-commons-5.10.21.jar;D:\application\Maven\repository\com\fasterxml\jackson\core\jackson-databind\2.13.3\jackson-databind-2.13.3.jar;D:\application\Maven\repository\com\fasterxml\jackson\core\jackson-annotations\2.13.3\jackson-annotations-2.13.3.jar;D:\application\Maven\repository\com\fasterxml\jackson\core\jackson-core\2.13.3\jackson-core-2.13.3.jar;D:\application\Maven\repository\javax\validation\validation-api\2.0.1.Final\validation-api-2.0.1.Final.jar;D:\application\Maven\repository\ZA21\bee-statement\5.10.21\bee-statement-5.10.21.jar;D:\application\Maven\repository\ZA21\bee-encryption\1.0.0\bee-encryption-1.0.0.jar;D:\application\Maven\repository\org\springframework\boot\spring-boot-starter-log4j2\2.7.2\spring-boot-starter-log4j2-2.7.2.jar;D:\application\Maven\repository\org\apache\logging\log4j\log4j-slf4j-impl\2.17.2\log4j-slf4j-impl-2.17.2.jar;D:\application\Maven\repository\org\apache\logging\log4j\log4j-api\2.17.2\log4j-api-2.17.2.jar;D:\application\Maven\repository\org\apache\logging\log4j\log4j-core\2.17.2\log4j-core-2.17.2.jar;D:\application\Maven\repository\org\apache\logging\log4j\log4j-jul\2.17.2\log4j-jul-2.17.2.jar;D:\application\Maven\repository\org\slf4j\jul-to-slf4j\1.7.36\jul-to-slf4j-1.7.36.jar;D:\application\Maven\repository\org\springframework\boot\spring-boot-configuration-processor\2.7.2\spring-boot-configuration-processor-2.7.2.jar;D:\application\Maven\repository\com\auth0\java-jwt\3.18.2\java-jwt-3.18.2.jar;D:\application\Maven\repository\com\fasterxml\jackson\datatype\jackson-datatype-jsr310\2.13.3\jackson-datatype-jsr310-2.13.3.jar;D:\application\Maven\repository\org\springframework\boot\spring-boot-starter\2.7.2\spring-boot-starter-2.7.2.jar;D:\application\Maven\repository\org\springframework\boot\spring-boot\2.7.2\spring-boot-2.7.2.jar;D:\application\Maven\repository\jakarta\annotation\jakarta.annotation-api\1.3.5\jakarta.annotation-api-1.3.5.jar;D:\application\Maven\repository\org\yaml\snakeyaml\2.0\snakeyaml-2.0.jar;D:\application\Maven\repository\LT32\logsdk\2.5.5\logsdk-2.5.5.jar;D:\application\Maven\repository\org\springframework\spring-web\5.3.22\spring-web-5.3.22.jar;D:\application\Maven\repository\org\springframework\spring-beans\5.3.22\spring-beans-5.3.22.jar;D:\application\Maven\repository\io\opentracing\opentracing-api\0.33.0\opentracing-api-0.33.0.jar;D:\application\Maven\repository\io\opentracing\contrib\opentracing-spring-web\4.1.0\opentracing-spring-web-4.1.0.jar;D:\application\Maven\repository\io\opentracing\contrib\opentracing-web-servlet-filter\0.4.0\opentracing-web-servlet-filter-0.4.0.jar;D:\application\Maven\repository\io\opentracing\opentracing-util\0.33.0\opentracing-util-0.33.0.jar;D:\application\Maven\repository\io\opentracing\opentracing-noop\0.33.0\opentracing-noop-0.33.0.jar;D:\application\Maven\repository\io\jaegertracing\jaeger-client\1.8.1\jaeger-client-1.8.1.jar;D:\application\Maven\repository\io\jaegertracing\jaeger-core\1.8.1\jaeger-core-1.8.1.jar;D:\application\Maven\repository\io\jaegertracing\jaeger-tracerresolver\1.8.1\jaeger-tracerresolver-1.8.1.jar;D:\application\Maven\repository\io\opentracing\contrib\opentracing-tracerresolver\0.1.8\opentracing-tracerresolver-0.1.8.jar;D:\application\Maven\repository\org\aspectj\aspectjweaver\1.9.7\aspectjweaver-1.9.7.jar;D:\application\Maven\repository\ZA21\bee-starter-tracer\5.10.21\bee-starter-tracer-5.10.21.jar;D:\application\Maven\repository\LT31\09\unique-sql-hashid\9.0.0\unique-sql-hashid-9.0.0.jar;D:\application\Maven\repository\org\apache\commons\commons-lang3\3.12.0\commons-lang3-3.12.0.jar;D:\application\Maven\repository\LT31\09\shindata-druid\1.1.15\shindata-druid-1.1.15.jar;D:\application\Maven\repository\commons-io\commons-io\2.11.0\commons-io-2.11.0.jar;D:\application\Maven\repository\ZA21\bee-starter-management\5.10.21\bee-starter-management-5.10.21.jar;D:\application\Maven\repository\org\springframework\boot\spring-boot-actuator-autoconfigure\2.7.2\spring-boot-actuator-autoconfigure-2.7.2.jar;D:\application\Maven\repository\org\springframework\boot\spring-boot-actuator\2.7.2\spring-boot-actuator-2.7.2.jar;D:\application\Maven\repository\ZA21\bee-starter-metrics\5.10.21\bee-starter-metrics-5.10.21.jar;D:\application\Maven\repository\io\opentelemetry\opentelemetry-api-metrics\1.9.1-alpha\opentelemetry-api-metrics-1.9.1-alpha.jar;D:\application\Maven\repository\io\opentelemetry\opentelemetry-api\1.9.1\opentelemetry-api-1.9.1.jar;D:\application\Maven\repository\io\opentelemetry\opentelemetry-context\1.9.1\opentelemetry-context-1.9.1.jar;D:\application\Maven\repository\com\google\code\findbugs\jsr305\3.0.2\jsr305-3.0.2.jar;D:\application\Maven\repository\org\springframework\boot\spring-boot-starter-web\2.7.2\spring-boot-starter-web-2.7.2.jar;D:\application\Maven\repository\org\springframework\boot\spring-boot-starter-json\2.7.2\spring-boot-starter-json-2.7.2.jar;D:\application\Maven\repository\com\fasterxml\jackson\datatype\jackson-datatype-jdk8\2.13.3\jackson-datatype-jdk8-2.13.3.jar;D:\application\Maven\repository\com\fasterxml\jackson\module\jackson-module-parameter-names\2.13.3\jackson-module-parameter-names-2.13.3.jar;D:\application\Maven\repository\org\springframework\spring-webmvc\5.3.22\spring-webmvc-5.3.22.jar;D:\application\Maven\repository\org\springframework\spring-aop\5.3.22\spring-aop-5.3.22.jar;D:\application\Maven\repository\org\springframework\spring-context\5.3.22\spring-context-5.3.22.jar;D:\application\Maven\repository\org\springframework\spring-expression\5.3.22\spring-expression-5.3.22.jar;D:\application\Maven\repository\com\cvicse\embedded\spring-boot-starter-inforsuite\10.0.2.5-CMB01\spring-boot-starter-inforsuite-10.0.2.5-CMB01.jar;D:\application\Maven\repository\org\springframework\cloud\spring-cloud-starter-openfeign\3.1.1\spring-cloud-starter-openfeign-3.1.1.jar;D:\application\Maven\repository\org\springframework\cloud\spring-cloud-starter\3.1.1\spring-cloud-starter-3.1.1.jar;D:\application\Maven\repository\org\springframework\cloud\spring-cloud-context\3.1.1\spring-cloud-context-3.1.1.jar;D:\application\Maven\repository\org\springframework\security\spring-security-rsa\1.0.10.RELEASE\spring-security-rsa-1.0.10.RELEASE.jar;D:\application\Maven\repository\org\springframework\cloud\spring-cloud-openfeign-core\3.1.1\spring-cloud-openfeign-core-3.1.1.jar;D:\application\Maven\repository\org\springframework\boot\spring-boot-starter-aop\2.7.2\spring-boot-starter-aop-2.7.2.jar;D:\application\Maven\repository\io\github\openfeign\form\feign-form-spring\3.8.0\feign-form-spring-3.8.0.jar;D:\application\Maven\repository\io\github\openfeign\form\feign-form\3.8.0\feign-form-3.8.0.jar;D:\application\Maven\repository\commons-fileupload\commons-fileupload\1.4\commons-fileupload-1.4.jar;D:\application\Maven\repository\org\springframework\cloud\spring-cloud-commons\3.1.1\spring-cloud-commons-3.1.1.jar;D:\application\Maven\repository\org\springframework\security\spring-security-crypto\5.7.2\spring-security-crypto-5.7.2.jar;D:\application\Maven\repository\io\github\openfeign\feign-core\11.8\feign-core-11.8.jar;D:\application\Maven\repository\io\github\openfeign\feign-slf4j\11.8\feign-slf4j-11.8.jar;D:\application\Maven\repository\org\springframework\boot\spring-boot-starter-webflux\2.7.2\spring-boot-starter-webflux-2.7.2.jar;D:\application\Maven\repository\org\springframework\boot\spring-boot-starter-reactor-netty\2.7.2\spring-boot-starter-reactor-netty-2.7.2.jar;D:\application\Maven\repository\io\projectreactor\netty\reactor-netty-http\1.0.21\reactor-netty-http-1.0.21.jar;D:\application\Maven\repository\io\netty\netty-codec-http\4.1.79.Final\netty-codec-http-4.1.79.Final.jar;D:\application\Maven\repository\io\netty\netty-common\4.1.79.Final\netty-common-4.1.79.Final.jar;D:\application\Maven\repository\io\netty\netty-buffer\4.1.79.Final\netty-buffer-4.1.79.Final.jar;D:\application\Maven\repository\io\netty\netty-transport\4.1.79.Final\netty-transport-4.1.79.Final.jar;D:\application\Maven\repository\io\netty\netty-codec\4.1.79.Final\netty-codec-4.1.79.Final.jar;D:\application\Maven\repository\io\netty\netty-handler\4.1.79.Final\netty-handler-4.1.79.Final.jar;D:\application\Maven\repository\io\netty\netty-codec-http2\4.1.79.Final\netty-codec-http2-4.1.79.Final.jar;D:\application\Maven\repository\io\netty\netty-resolver-dns\4.1.79.Final\netty-resolver-dns-4.1.79.Final.jar;D:\application\Maven\repository\io\netty\netty-resolver\4.1.79.Final\netty-resolver-4.1.79.Final.jar;D:\application\Maven\repository\io\netty\netty-codec-dns\4.1.79.Final\netty-codec-dns-4.1.79.Final.jar;D:\application\Maven\repository\io\netty\netty-resolver-dns-native-macos\4.1.79.Final\netty-resolver-dns-native-macos-4.1.79.Final-osx-x86_64.jar;D:\application\Maven\repository\io\netty\netty-resolver-dns-classes-macos\4.1.79.Final\netty-resolver-dns-classes-macos-4.1.79.Final.jar;D:\application\Maven\repository\io\netty\netty-transport-native-epoll\4.1.79.Final\netty-transport-native-epoll-4.1.79.Final-linux-x86_64.jar;D:\application\Maven\repository\io\netty\netty-transport-native-unix-common\4.1.79.Final\netty-transport-native-unix-common-4.1.79.Final.jar;D:\application\Maven\repository\io\netty\netty-transport-classes-epoll\4.1.79.Final\netty-transport-classes-epoll-4.1.79.Final.jar;D:\application\Maven\repository\io\projectreactor\netty\reactor-netty-core\1.0.21\reactor-netty-core-1.0.21.jar;D:\application\Maven\repository\io\netty\netty-handler-proxy\4.1.79.Final\netty-handler-proxy-4.1.79.Final.jar;D:\application\Maven\repository\io\netty\netty-codec-socks\4.1.79.Final\netty-codec-socks-4.1.79.Final.jar;D:\application\Maven\repository\org\springframework\spring-webflux\5.3.22\spring-webflux-5.3.22.jar;D:\application\Maven\repository\io\projectreactor\reactor-core\3.4.21\reactor-core-3.4.21.jar;D:\application\Maven\repository\org\reactivestreams\reactive-streams\1.0.4\reactive-streams-1.0.4.jar;D:\application\Maven\repository\ZA21\bee-starter-web\5.10.21\bee-starter-web-5.10.21.jar;D:\application\Maven\repository\ZA21\bee-starter-healthcheck\5.10.21\bee-starter-healthcheck-5.10.21.jar;D:\application\Maven\repository\org\springframework\boot\spring-boot-starter-validation\2.7.2\spring-boot-starter-validation-2.7.2.jar;D:\application\Maven\repository\org\apache\tomcat\embed\tomcat-embed-el\9.0.82\tomcat-embed-el-9.0.82.jar;D:\application\Maven\repository\org\hibernate\validator\hibernate-validator\6.2.3.Final\hibernate-validator-6.2.3.Final.jar;D:\application\Maven\repository\jakarta\validation\jakarta.validation-api\2.0.2\jakarta.validation-api-2.0.2.jar;D:\application\Maven\repository\org\jboss\logging\jboss-logging\3.3.2.Final\jboss-logging-3.3.2.Final.jar;D:\application\Maven\repository\com\fasterxml\classmate\1.5.1\classmate-1.5.1.jar;D:\application\Maven\repository\H0010038\04\config-client-integration-springboot\1.0.0-SNAPSHOT\config-client-integration-springboot-1.0.0-20250626.033408-18.jar;D:\application\Maven\repository\H0010038\04\config-client\1.0.0-SNAPSHOT\config-client-1.0.0-20250626.033408-19.jar;D:\application\Maven\repository\H0010038\04\infra-utils-spi\1.1.0-SNAPSHOT\infra-utils-spi-1.1.0-20240301.071119-6.jar;D:\application\Maven\repository\H0010038\04\config-client-grpc\1.0.0-SNAPSHOT\config-client-grpc-1.0.0-20250626.033408-19.jar;D:\application\Maven\repository\H0010038\04\grpc-client-notify\1.0.0-SNAPSHOT\grpc-client-notify-1.0.0-20250609.084419-19.jar;D:\application\Maven\repository\H0010038\04\grpc-client-lib\1.0.0-SNAPSHOT\grpc-client-lib-1.0.0-20250609.084419-19.jar;D:\application\Maven\repository\com\google\protobuf\protobuf-java\3.19.4\protobuf-java-3.19.4.jar;D:\application\Maven\repository\io\grpc\grpc-protobuf\1.51.0\grpc-protobuf-1.51.0.jar;D:\application\Maven\repository\com\google\api\grpc\proto-google-common-protos\2.9.0\proto-google-common-protos-2.9.0.jar;D:\application\Maven\repository\io\grpc\grpc-protobuf-lite\1.51.0\grpc-protobuf-lite-1.51.0.jar;D:\application\Maven\repository\com\google\guava\guava\20.0\guava-20.0.jar;D:\application\Maven\repository\io\grpc\grpc-stub\1.51.0\grpc-stub-1.51.0.jar;D:\application\Maven\repository\io\grpc\grpc-netty-shaded\1.30.2\grpc-netty-shaded-1.30.2.jar;D:\application\Maven\repository\io\grpc\grpc-core\1.30.2\grpc-core-1.30.2.jar;D:\application\Maven\repository\io\grpc\grpc-api\1.30.2\grpc-api-1.30.2.jar;D:\application\Maven\repository\com\google\android\annotations\4.1.1.4\annotations-4.1.1.4.jar;D:\application\Maven\repository\org\codehaus\mojo\animal-sniffer-annotations\1.18\animal-sniffer-annotations-1.18.jar;D:\application\Maven\repository\io\perfmark\perfmark-api\0.19.0\perfmark-api-0.19.0.jar;D:\application\Maven\repository\io\grpc\grpc-context\1.30.2\grpc-context-1.30.2.jar;D:\application\Maven\repository\H0010038\04\notifier-client\1.1.6-SNAPSHOT\notifier-client-1.1.6-20241011.023044-1.jar;D:\application\Maven\repository\org\apache\httpcomponents\httpmime\4.5.13\httpmime-4.5.13.jar;D:\application\Maven\repository\org\apache\curator\curator-recipes\5.1.0\curator-recipes-5.1.0.jar;D:\application\Maven\repository\org\apache\curator\curator-framework\5.1.0\curator-framework-5.1.0.jar;D:\application\Maven\repository\org\apache\curator\curator-client\5.1.0\curator-client-5.1.0.jar;D:\application\Maven\repository\org\apache\zookeeper\zookeeper\3.6.0\zookeeper-3.6.0.jar;D:\application\Maven\repository\commons-lang\commons-lang\2.6\commons-lang-2.6.jar;D:\application\Maven\repository\org\apache\zookeeper\zookeeper-jute\3.6.0\zookeeper-jute-3.6.0.jar;D:\application\Maven\repository\org\apache\yetus\audience-annotations\0.5.0\audience-annotations-0.5.0.jar;D:\application\Maven\repository\io\netty\netty-transport-native-epoll\4.1.79.Final\netty-transport-native-epoll-4.1.79.Final.jar;D:\application\Maven\repository\commons-codec\commons-codec\1.15\commons-codec-1.15.jar;D:\application\Maven\repository\com\google\code\gson\gson\2.9.0\gson-2.9.0.jar;D:\application\Maven\repository\ZA21\bee-starter-persistence\5.10.21\bee-starter-persistence-5.10.21.jar;D:\application\Maven\repository\org\mybatis\spring\boot\mybatis-spring-boot-starter\2.2.2\mybatis-spring-boot-starter-2.2.2.jar;D:\application\Maven\repository\org\springframework\boot\spring-boot-starter-jdbc\2.7.2\spring-boot-starter-jdbc-2.7.2.jar;D:\application\Maven\repository\org\springframework\spring-jdbc\5.3.22\spring-jdbc-5.3.22.jar;D:\application\Maven\repository\org\mybatis\spring\boot\mybatis-spring-boot-autoconfigure\2.2.2\mybatis-spring-boot-autoconfigure-2.2.2.jar;D:\application\Maven\repository\org\mybatis\mybatis\3.5.9\mybatis-3.5.9.jar;D:\application\Maven\repository\org\mybatis\mybatis-spring\2.0.7\mybatis-spring-2.0.7.jar;D:\application\Maven\repository\org\springframework\boot\spring-boot-autoconfigure\2.7.2\spring-boot-autoconfigure-2.7.2.jar;D:\application\Maven\repository\org\apache\tomcat\tomcat-jdbc\9.0.82\tomcat-jdbc-9.0.82.jar;D:\application\Maven\repository\org\apache\tomcat\tomcat-juli\9.0.82\tomcat-juli-9.0.82.jar;D:\application\Maven\repository\LT99\09\tdsql-mysql-connector-java8\1.5.0\tdsql-mysql-connector-java8-1.5.0.jar;D:\application\Maven\repository\ZA21\bee-starter-redis\5.10.21\bee-starter-redis-5.10.21.jar;D:\application\Maven\repository\org\springframework\boot\spring-boot-starter-data-redis\2.7.2\spring-boot-starter-data-redis-2.7.2.jar;D:\application\Maven\repository\org\springframework\data\spring-data-redis\2.7.2\spring-data-redis-2.7.2.jar;D:\application\Maven\repository\org\springframework\data\spring-data-keyvalue\2.7.2\spring-data-keyvalue-2.7.2.jar;D:\application\Maven\repository\org\springframework\data\spring-data-commons\2.7.2\spring-data-commons-2.7.2.jar;D:\application\Maven\repository\org\springframework\spring-tx\5.3.22\spring-tx-5.3.22.jar;D:\application\Maven\repository\org\springframework\spring-oxm\5.3.22\spring-oxm-5.3.22.jar;D:\application\Maven\repository\org\springframework\spring-context-support\5.3.22\spring-context-support-5.3.22.jar;D:\application\Maven\repository\redis\clients\jedis\3.10.0\jedis-3.10.0.jar;D:\application\Maven\repository\org\apache\commons\commons-pool2\2.11.1\commons-pool2-2.11.1.jar;D:\application\Maven\repository\org\projectlombok\lombok\1.18.24\lombok-1.18.24.jar;D:\application\Maven\repository\org\apache\commons\commons-collections4\4.4\commons-collections4-4.4.jar;D:\application\Maven\repository\org\apache\commons\commons-csv\1.10.0\commons-csv-1.10.0.jar;D:\application\Maven\repository\com\alibaba\transmittable-thread-local\2.11.4\transmittable-thread-local-2.11.4.jar;D:\application\Maven\repository\com\github\ben-manes\caffeine\caffeine\2.8.5\caffeine-2.8.5.jar;D:\application\Maven\repository\org\checkerframework\checker-qual\3.4.1\checker-qual-3.4.1.jar;D:\application\Maven\repository\com\google\errorprone\error_prone_annotations\2.4.0\error_prone_annotations-2.4.0.jar;D:\application\Maven\repository\org\apache\httpcomponents\httpclient\4.5.13\httpclient-4.5.13.jar;D:\application\Maven\repository\org\apache\httpcomponents\httpcore\4.4.15\httpcore-4.4.15.jar;D:\application\Maven\repository\commons-logging\commons-logging\1.2\commons-logging-1.2.jar;D:\application\Maven\repository\H0010038\04\ccc-metric-dependency\1.0.9-SNAPSHOT\ccc-metric-dependency-1.0.9-20250220.060300-3.jar;D:\application\Maven\repository\org\slf4j\slf4j-api\1.7.36\slf4j-api-1.7.36.jar;D:\application\Maven\repository\H0010038\04\security-protocol\1.2.0-SNAPSHOT\security-protocol-1.2.0-20250311.063350-1.jar;D:\application\Maven\repository\H0010038\04\security-gct\1.2.0-RELEASE\security-gct-1.2.0-RELEASE.jar;D:\application\Maven\repository\org\bouncycastle\bcprov-jdk15on\1.60\bcprov-jdk15on-1.60.jar;D:\application\Maven\repository\org\bouncycastle\bcpkix-jdk15on\1.60\bcpkix-jdk15on-1.60.jar;D:\application\Maven\repository\ZA33\PCJava\1.17.20220616\PCJava-1.17.20220616.jar;D:\application\Maven\repository\com\payneteasy\ber-tlv\1.0-11\ber-tlv-1.0-11.jar;D:\application\Maven\repository\com\github\jnr\jnr-ffi\2.0.9\jnr-ffi-2.0.9.jar;D:\application\Maven\repository\com\github\jnr\jffi\1.2.11\jffi-1.2.11.jar;D:\application\Maven\repository\com\github\jnr\jffi\1.2.11\jffi-1.2.11-native.jar;D:\application\Maven\repository\org\ow2\asm\asm\5.0.3\asm-5.0.3.jar;D:\application\Maven\repository\org\ow2\asm\asm-commons\5.0.3\asm-commons-5.0.3.jar;D:\application\Maven\repository\org\ow2\asm\asm-analysis\5.0.3\asm-analysis-5.0.3.jar;D:\application\Maven\repository\org\ow2\asm\asm-tree\5.0.3\asm-tree-5.0.3.jar;D:\application\Maven\repository\org\ow2\asm\asm-util\5.0.3\asm-util-5.0.3.jar;D:\application\Maven\repository\com\github\jnr\jnr-x86asm\1.0.2\jnr-x86asm-1.0.2.jar;D:\application\Maven\repository\org\springframework\boot\spring-boot-starter-test\2.7.2\spring-boot-starter-test-2.7.2.jar;D:\application\Maven\repository\org\springframework\boot\spring-boot-test\2.7.2\spring-boot-test-2.7.2.jar;D:\application\Maven\repository\org\springframework\boot\spring-boot-test-autoconfigure\2.7.2\spring-boot-test-autoconfigure-2.7.2.jar;D:\application\Maven\repository\com\jayway\jsonpath\json-path\2.7.0\json-path-2.7.0.jar;D:\application\Maven\repository\net\minidev\json-smart\2.4.8\json-smart-2.4.8.jar;D:\application\Maven\repository\net\minidev\accessors-smart\2.4.8\accessors-smart-2.4.8.jar;D:\application\Maven\repository\jakarta\xml\bind\jakarta.xml.bind-api\2.3.3\jakarta.xml.bind-api-2.3.3.jar;D:\application\Maven\repository\jakarta\activation\jakarta.activation-api\1.2.2\jakarta.activation-api-1.2.2.jar;D:\application\Maven\repository\org\assertj\assertj-core\3.22.0\assertj-core-3.22.0.jar;D:\application\Maven\repository\org\hamcrest\hamcrest\2.2\hamcrest-2.2.jar;D:\application\Maven\repository\org\junit\jupiter\junit-jupiter\5.8.2\junit-jupiter-5.8.2.jar;D:\application\Maven\repository\org\junit\jupiter\junit-jupiter-api\5.8.2\junit-jupiter-api-5.8.2.jar;D:\application\Maven\repository\org\junit\jupiter\junit-jupiter-params\5.8.2\junit-jupiter-params-5.8.2.jar;D:\application\Maven\repository\org\junit\jupiter\junit-jupiter-engine\5.8.2\junit-jupiter-engine-5.8.2.jar;D:\application\Maven\repository\org\mockito\mockito-junit-jupiter\4.5.1\mockito-junit-jupiter-4.5.1.jar;D:\application\Maven\repository\org\skyscreamer\jsonassert\1.5.1\jsonassert-1.5.1.jar;D:\application\Maven\repository\com\vaadin\external\google\android-json\0.0.20131108.vaadin1\android-json-0.0.20131108.vaadin1.jar;D:\application\Maven\repository\org\springframework\spring-core\5.3.22\spring-core-5.3.22.jar;D:\application\Maven\repository\org\springframework\spring-jcl\5.3.22\spring-jcl-5.3.22.jar;D:\application\Maven\repository\org\springframework\spring-test\5.3.22\spring-test-5.3.22.jar;D:\application\Maven\repository\org\xmlunit\xmlunit-core\2.9.0\xmlunit-core-2.9.0.jar;D:\application\Maven\repository\org\junit\vintage\junit-vintage-engine\5.8.2\junit-vintage-engine-5.8.2.jar;D:\application\Maven\repository\org\junit\platform\junit-platform-engine\1.8.2\junit-platform-engine-1.8.2.jar;D:\application\Maven\repository\org\opentest4j\opentest4j\1.2.0\opentest4j-1.2.0.jar;D:\application\Maven\repository\org\junit\platform\junit-platform-commons\1.8.2\junit-platform-commons-1.8.2.jar;D:\application\Maven\repository\org\apiguardian\apiguardian-api\1.1.2\apiguardian-api-1.1.2.jar;D:\application\Maven\repository\junit\junit\4.13.2\junit-4.13.2.jar;D:\application\Maven\repository\org\hamcrest\hamcrest-core\2.2\hamcrest-core-2.2.jar;D:\application\Maven\repository\org\mockito\mockito-core\2.23.4\mockito-core-2.23.4.jar;D:\application\Maven\repository\net\bytebuddy\byte-buddy\1.12.12\byte-buddy-1.12.12.jar;D:\application\Maven\repository\net\bytebuddy\byte-buddy-agent\1.12.12\byte-buddy-agent-1.12.12.jar;D:\application\Maven\repository\org\objenesis\objenesis\2.6\objenesis-2.6.jar;D:\application\Maven\repository\org\powermock\powermock-core\2.0.2\powermock-core-2.0.2.jar;D:\application\Maven\repository\org\powermock\powermock-reflect\2.0.2\powermock-reflect-2.0.2.jar;D:\application\Maven\repository\org\javassist\javassist\3.24.0-GA\javassist-3.24.0-GA.jar;D:\application\Maven\repository\org\powermock\powermock-api-mockito2\2.0.2\powermock-api-mockito2-2.0.2.jar;D:\application\Maven\repository\org\powermock\powermock-api-support\2.0.2\powermock-api-support-2.0.2.jar;D:\application\Maven\repository\org\powermock\powermock-module-junit4\2.0.2\powermock-module-junit4-2.0.2.jar;D:\application\Maven\repository\org\powermock\powermock-module-junit4-common\2.0.2\powermock-module-junit4-common-2.0.2.jar;D:\application\Maven\repository\org\jacoco\org.jacoco.agent\0.8.4\org.jacoco.agent-0.8.4-runtime.jar" com.intellij.rt.junit.JUnitStarter -ideVersion5 -junit5 com.cmbchina.ccc.msp.mspai.business.AIPracticeBusinessImplTest,testTts_ExceptionDuringDecrypt_ShouldLogAndSwallow Wanted but not invoked: logger.warn(<any string>); -> at com.cmbchina.ccc.msp.mspai.business.AIPracticeBusinessImplTest.testTts_ExceptionDuringDecrypt_ShouldLogAndSwallow(AIPracticeBusinessImplTest.java:254) Actually, there were zero interactions with this mock. Wanted but not invoked: logger.warn(<any string>); -> at com.cmbchina.ccc.msp.mspai.business.AIPracticeBusinessImplTest.testTts_ExceptionDuringDecrypt_ShouldLogAndSwallow(AIPracticeBusinessImplTest.java:254) Actually, there were zero interactions with this mock. at com.cmbchina.ccc.msp.mspai.business.AIPracticeBusinessImplTest.testTts_ExceptionDuringDecrypt_ShouldLogAndSwallow(AIPracticeBusinessImplTest.java:254) at org.junit.internal.runners.TestMethod.invoke(TestMethod.java:68) at org.junit.internal.runners.MethodRoadie$2.run(MethodRoadie.java:89) at org.junit.internal.runners.MethodRoadie.runBeforesThenTestThenAfters(MethodRoadie.java:97) at org.junit.internal.runners.MethodRoadie.runTest(MethodRoadie.java:87) at org.junit.internal.runners.MethodRoadie.run(MethodRoadie.java:50) at org.junit.internal.runners.ClassRoadie.runUnprotected(ClassRoadie.java:34) at org.junit.internal.runners.ClassRoadie.runProtected(ClassRoadie.java:44) at org.junit.runner.JUnitCore.run(JUnitCore.java:137) at org.junit.runner.JUnitCore.run(JUnitCore.java:115) at org.junit.vintage.engine.execution.RunnerExecutor.execute(RunnerExecutor.java:42) at org.junit.vintage.engine.VintageTestEngine.executeAllChildren(VintageTestEngine.java:80) at org.junit.vintage.engine.VintageTestEngine.execute(VintageTestEngine.java:72) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:107) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:88) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:54) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:67) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:52) at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:114) at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:86) at org.junit.platform.launcher.core.DefaultLauncherSession$DelegatingLauncher.execute(DefaultLauncherSession.java:86) at org.junit.platform.launcher.core.SessionPerRequestLauncher.execute(SessionPerRequestLauncher.java:53) at com.intellij.junit5.JUnit5IdeaTestRunner.startRunnerWithArgs(JUnit5IdeaTestRunner.java:57) at com.intellij.rt.junit.IdeaTestRunner$Repeater$1.execute(IdeaTestRunner.java:38) at com.intellij.rt.execution.junit.TestsRepeater.repeat(TestsRepeater.java:11) at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:35) at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:232) at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:55) Process finished with exit code -1
07-08
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值