我们有如下的项目布局。项目布局和弹簧测试支持问题
SRC
的src/test/java下
的src /测试/资源
,我们不能添加的src/main /(Java,资源)的代码,因为原先所做的更新发育的。
的src /测试/ Java是具有在相同的封装两个单元和集成测试作为被测类在src文件夹。
单元测试是在当前设置运行良好,但问题是与运行集成测试。
集成测试运行完全正常时的测试类和配置文件一起端类测试,在src文件夹和相同的包类。
但是当我把测试类放在src /测试/ java和配置文件放在src /测试/资源测试失败,因为上下文初始化问题上运行。
请注意以下有关ENV设置
1生成输出文件夹的所有SRC,SRC /测试/ JAVA和src /测试/资源只有src文件夹。
2我使用的classpath *:指定配置的位置,否则春天未能找到资源文件夹中的配置文件。
@ContextConfiguration(locations={"classpath*:applicationContext_getCorpAcctPrefDetailsSP.xml"})
3都尝试@Autowired和setter基于DI为测试类
> (i). in case of @Autowired i get error for depedency saying
No unique bean of type GetCorpAccountPreferencesDetailsSP is defined expected at least 1 matching bean
also i am using base package scan
> (ii). in case of Setter based DI context get initialized and unit test run but all the dependencies injected are null in test class.
请expalin什么,可能使问题和任何解决方案。
正如一切,当集成测试是在src文件夹旁边类测试工作正常。
当spring创建上下文作为测试下的类与测试不在同一个源文件夹中时,我怀疑不同的源文件夹(src和test)产生问题。
感谢 nBhati
嗨马特,问题只与classpath有关。 1>我使用eclipse构建项目,并且它不在src/test/resources中复制资源以输出文件夹(src)。任何解决此问题的方法2>如果您可以解释classpath * :,它使Spring的查找资源的方式有什么区别@ContextConfiguration(locations = {“classpath *:applicationContext_getCorpAcctPrefDetailsSP.xml”})谢谢 – nBhati