问题描述
我有一个测试,测试运行时加载的类中的一些 Bean 可以添加到 ApplicationContext。
执行测试时出现以下异常
Caused by: java.lang.IllegalArgumentException: Could not find class [TestExtension]
at org.springframework.util.ClassUtils.resolveClassName(ClassUtils.java:334)
at org.springframework.boot.test.mock.mockito.MockitoPostProcessor.getConfigurationClasses(MockitoPostProcessor.java:147)
at org.springframework.boot.test.mock.mockito.MockitoPostProcessor.postProcessbeanfactory(MockitoPostProcessor.java:134)
at org.springframework.boot.test.mock.mockito.MockitoPostProcessor.postProcessbeanfactory(MockitoPostProcessor.java:128)
at org.springframework.context.support.PostProcessorRegistrationDelegate.invokebeanfactoryPostProcessors(PostProcessorRegistrationDelegate.java:299)
at org.springframework.context.support.PostProcessorRegistrationDelegate.invokebeanfactoryPostProcessors(PostProcessorRegistrationDelegate.java:178)
at org.springframework.context.support.AbstractApplicationContext.invokebeanfactoryPostProcessors(AbstractApplicationContext.java:751)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:569)
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:767)
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:759)
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:426)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:326)
at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:123)
at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:99)
at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:124)
... 52 more
Caused by: java.lang.classNotFoundException: TestExtension
at java.net.urlclassloader.findClass(urlclassloader.java:382)
at java.lang.classLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
at java.lang.classLoader.loadClass(ClassLoader.java:357)
at java.lang.class.forName0(Native Method)
at java.lang.class.forName(Class.java:348)
at org.springframework.util.ClassUtils.forName(ClassUtils.java:284)
at org.springframework.util.ClassUtils.resolveClassName(ClassUtils.java:324)
... 66 more
似乎 MockitoPostProcessor
试图从错误的类加载器加载我动态加载的类。有没有办法
- 告诉 Spring 在加载类时使用哪个类加载器或
- 为此测试禁用
SpringPostProcessor
(似乎来自spring.factories
,我不知道如何禁用它)。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)