JUnit的错误: “无法加载的ApplicationContext”
问题描述:
似乎没有任何工作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
答
在我们意识到构建文件丢失了有关测试的信息后,问题就解决了。诸如“app.properties”和“applicationContext”之类的信息未被复制到测试资源中。从技术上讲,这些都不在类路径中。
答
需要@RunWith(SpringJUnit4ClassRunner.class)
后使用@ContextConfiguration(locations = { "file:./src/main/resources/ApplicationContext.xml" })
。并在/src/test/java/your-package-name
创建test.java文件。
答
您必须在类路径中指定应用程序上下文位置。 src/main
被添加到类路径中。因此,您只需指定webapp/WEB-INF/applicationContext.xml
如下:@ContextConfiguration(locations = {"webapp/WEB-INF/applicationContext.xml"})
。
不,它表示*并提供详细的错误消息*,例如说明它试图找到但不能找到的bean。发布该消息。在这种情况下,可能是因为你的'applicationContext.xml'不在类路径*中的任何一个位置。如果您是Spring的新手,我强烈建议您使用Spring Boot,并遵循其约定(包括不使用遗留XML),直到您更熟悉Spring为止。 – chrylis