测试积点老人 发表于 2019-12-9 10:47:51

springboot进行单元测试报错

springboot进行单元测试报错,求各位大佬指点迷津
报错信息:

<p>java.lang.IllegalStateException: Failed to load ApplicationContext</p><p>at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:125)
at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:108)
at org.springframework.test.context.web.ServletTestExecutionListener.setUpRequestContextIfNecessary(ServletTestExecutionListener.java:190)
at org.springframework.test.context.web.ServletTestExecutionListener.prepareTestInstance(ServletTestExecutionListener.java:132)
at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:246)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:227)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:289)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:291)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:246)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:97)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:190)
at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)</p>

梦想家 发表于 2019-12-10 09:29:34

没有加载ApplicationContext.xml

bellas 发表于 2019-12-10 09:39:09

是不是版本不对?

qqq911 发表于 2019-12-10 11:42:36

环境没配置好

jingzizx 发表于 2019-12-10 12:25:52

感觉像配置有问题

litingting0214 发表于 2019-12-10 14:42:39

重新配置一下环境

海海豚 发表于 2019-12-10 15:12:22

https://blog.csdn.net/baofengyu90/article/details/86500016参考下这个

Miss_love 发表于 2019-12-14 14:27:57

支持下

旺达 发表于 2020-5-22 11:08:02

其实就是 Springboot 项目的启动类 和 单元测试类的包名必须相同,如下所示:

红框部分的包名必须相同,我的不相同,所以报错了,改为同一个就好了。

旺达 发表于 2020-5-22 11:10:51

下面附单元测试的代码:
单元测试pom:
<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-test</artifactId>
      <scope>test</scope>
</dependency>
定义一个测试基类:
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest
public abstract class BaseTest {

}
而后其他的测试类继承该类就可以了,非常方便。
业务测试类:
public class SettleFacadeTest extends BaseTest{
       
        @Resource
        ISettleQueryFacade settleQueryFacade;

      @Test
        public void queryDetailList(){
          List<SettleDetail> detailList = settleQueryFacade.queryDetailList();       
        }
}


页: [1]
查看完整版本: springboot进行单元测试报错