2017-06-26 95 views
0

似乎没有任何工作JUnit的错误: “无法加载的ApplicationContext”

我试图运行简单的测试:

@RunWith(SpringJUnit4ClassRunner.class) 
@ContextConfiguration(locations = {"/applicationContext.xml"}) 
@Transactional 
public class EmailServiceTest { 

我也试过:

@RunWith(SpringJUnit4ClassRunner.class) 
@ContextConfiguration(locations = {"src/main/webapp/WEB-INF/applicationContext.xml"}) 
@Transactional 
public class EmailServiceTest { 

沿用几个不同的东西代替“位置”,比如“classpath”和“file”。

的 “ApplicationContext” 中位于:

src 
    main 
     webapp 
      WEB-INF 
       applicationContext.xml 

但JUnit测试还说:无法加载的ApplicationContext

+0

不,它表示*并提供详细的错误消息*,例如说明它试图找到但不能找到的bean。发布该消息。在这种情况下,可能是因为你的'applicationContext.xml'不在类路径*中的任何一个位置。如果您是Spring的新手,我强烈建议您使用Spring Boot,并遵循其约定(包括不使用遗留XML),直到您更熟悉Spring为止。 – chrylis

回答

0

在我们意识到构建文件丢失了有关测试的信息后,问题就解决了。诸如“app.properties”和“applicationContext”之类的信息未被复制到测试资源中。从技术上讲,这些都不在类路径中。

0

需要@RunWith(SpringJUnit4ClassRunner.class)后使用@ContextConfiguration(locations = { "file:./src/main/resources/ApplicationContext.xml" })。并在/src/test/java/your-package-name创建test.java文件。

0

您必须在类路径中指定应用程序上下文位置。 src/main被添加到类路径中。因此,您只需指定webapp/WEB-INF/applicationContext.xml如下:@ContextConfiguration(locations = {"webapp/WEB-INF/applicationContext.xml"})

相关问题