[英]project layout and spring-test support issues
我们的项目布局如下。
src
src /测试/ java
src / test / resources
由于早期开发已经完成,因此我们无法为代码添加src / main /(java,resources)。
src / test / java与src文件夹中的被测类在同一个程序包中包含单元测试和集成测试。
在当前设置中,单元测试运行良好,但是集成测试运行存在问题。
当测试类和配置文件与被测类一起位于src文件夹中且与类相同的程序包时,集成测试运行得很好。
但是当我将测试类放在src / test / java中并将配置文件放在src / test / resources中时,由于上下文初始化问题,测试无法运行。
请注意以下有关环境设置
1为所有src构建输出文件夹,src / test / java和src / test / resources仅是src文件夹。
2我正在使用classpath *:指定配置位置,否则spring无法在资源文件夹中找到配置文件。
@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.
请说明可能是问题的原因以及任何解决方案。
当集成测试位于被测类旁边的src文件夹中时,一切工作正常。
我怀疑当spring作为被测类创建上下文不在与test相同的源文件夹中时,differect源文件夹(src和test)创建问题。
谢谢nBhati
在运行时,Spring不在乎(或不知道)原始源代码所在的文件夹。重要的是类路径-哪些编译文件和哪些资源文件夹放在类路径中。 如果您遇到关于在运行测试时找不到的XML文件的错误,则强烈建议在运行测试时这些XML文件不在类路径中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.