我对这样的junit测试有问题。出于某种原因,spring上下文文件只有放在maven项目的src/main/resources文件夹中才能工作。Intellij没有给我任何警告,但是来自mvn和ide炸弹的junit测试运行器都没有给我任何警告。
这两种情况下的代码和输出如下:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration({"classpath:/test-applicationContext.xml"})
public class DataSharingTest {
AuthTokenService authTokenService;
@Autowired
public void setAuthTokenService(AuthTokenService authTokenService) {
this.authTokenService = authTokenService;
}
@Test
public void MyTest(){
System.out.println(authTokenService);
}
}
2014-07-29 16:44:18,061 main ERROR TestContextManager Caught exception while allowing TestExecutionListener [org.springframework.test.context.support.DependencyInjectionTestExecutionListener@69e328e0] to prepare test instance [com.jg.datasharing.DataSharingTest@4090c06f]
java.lang.IllegalStateException: Failed to load ApplicationContext
Caused by: org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from class path resource [test-applicationContext.xml]; nested exception is java.io.FileNotFoundException: class path resource [test-applicationContext.xml] cannot be opened because it does not exist. If I try a wildcard in the path it will stop complaining about file not found but will compalain that the bean is missing.
2014-07-29 16:46:53,564 main INFO lBeanDefinitionReader Loading XML bean definitions from class path resource [test-applicationContext.xml]
2014-07-29 16:46:53,778 main INFO ricApplicationContext Refreshing org.springframework.context.support.GenericApplicationContext@7426dbec: startup date [Tue Jul 29 16:46:53 EDT 2014]; root of context hierarchy
2014-07-29 16:46:53,904 main INFO ltListableBeanFactory Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@19202d69: defining beans [authTokenService,org.springframework.context.annotation.internalConfigurationAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalRequiredAnnotationProcessor,org.springframework.context.annotation.internalCommonAnnotationProcessor,org.springframework.context.annotation.ConfigurationClassPostProcessor.importAwareProcessor]; root of factory hierarchy
com.jg.security.token.auth.JwtAuthTokenService@1380cf2a
2014-07-29 16:46:53,995 Thread-1 INFO ricApplicationContext Closing org.springframework.context.support.GenericApplicationContext@7426dbec: startup date [Tue Jul 29 16:46:53 EDT 2014]; root of context hierarchy
2014-07-29 16:46:53,996 Thread-1 INFO ltListableBeanFactory Destroying singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@19202d69: defining beans [authTokenService,org.springframework.context.annotation.internalConfigurationAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalRequiredAnnotationProcessor,org.springframework.context.annotation.internalCommonAnnotationProcessor,org.springframework.context.annotation.ConfigurationClassPostProcessor.importAwareProcessor]; root of factory hierarchy
Process finished with exit code 0
为什么在测试上下文类路径中找不到该文件?
检查是否将测试/资源添加为类路径。您可以在eclipse IDE中进行验证,如下所示。
右键单击项目->Properties->Java build path->在Sources选项卡中,您应该找到{proejct}/src/test/resources(包含全部选项)
如果找不到该选项,可以手动添加目录,也可以按如下方式配置pom.xml
<build>
<testResources>
<testResource>
<directory>${basedir}/src/test/resources</directory>
</testResource>
</testResources>
</build>
我有一个java,gradle项目。我的少年 选择一些配置 Junit中拾取此文件的代码是 当我奔跑时 这个很好用。Junit能够从csv文件中拾取数据。 当我在Eclipse中运行JUnit时,即通过Shift Alt X T,然后JUnit以空指针异常中断。 我明白原因。当我在eclipse中运行Junit时,它会在同一个文件夹中查找该文件,但没有找到它,因此失败。但是,当我使用gradle运
我有一个目录结构如下的maven模块,我想在中获取的路径 我使用进行了尝试,但它给出了一个空值。 无法获取资源的路径
我在我的maven项目中的src/main/资源下放置了一个文件,文件名只是temp.txt. 当我试图打开文件时: 我得到一个错误: src/main/资源下的所有文件都放在maven下类路径的根文件夹中。那么为什么程序不能在这里找到文件呢?
我有一个maven Spring项目,里面有文件。如何在SpringMVC控制器中读取它。 我正在使用 但是is.
新手来了!我在SO上发现了很多类似的问题,但没有一个给我一个明确的答案。 我尝试过的一个可能的解决方案是不运行这些脚本(从'classpath:db/schema.sql'中删除init=runscript\\从'classpath:db/data.sql'中删除runscript),在测试之前以编程方式创建一些对象并将它们持久化到数据库,然后编写test,但我认为从脚本填充数据比在每个测试类中编
问题内容: 我试图用下面的抽象类在src / test / resources类路径中加载spring配置文件: 我在src / test / resources中有applicationContext.xml文件,但spring无法加载它。 谢谢。 问题答案: 确切地说,是类路径上的 测试输出目录 ()的内容,而不是。但资源下被复制到 测试输出目录 由 目标(这是默认绑定的 阶段)。 话虽如此,