spring和testng的整合
来源:互联网 发布:mysql入门教程视频 编辑:程序博客网 时间:2024/06/05 02:11
项目中用到了testNG作为单元测试工具,至于testNG对比junit有啥好处不太清楚,至少从程序员写testcase来说似乎和junit 4.x并没有太大的区别。但是据说和一些测试工具整合的时候比较方便。ok,这不是重点。
Spring专门为Junit testNG提供了一套测试集成接口类——AbstractSpringContextTests类,对于testNG就是其子类:AbstractTestNGSpringContextTests。Spring和testNG整合后,进行单元测试的时只要test类继承该类,就可以方便的使用spring注入。实现了spring和testNG的无缝整合,我们可以像写普通类那样测试被spring IoC容器所管理的类(否则我们必须在开始执行单元测试前重新加载Spring beanfactory,再用getBean("xxx")的方式获取IoC容器中类。)
除此以外,对测试类spring beanfactory缓存,使得多个测试类之间可以共享同一个的beanfactory实例,从而减少了重复生成beanfactory,提高了运行效率。
继承该类的测试用例在spring管理的事务中进行,测试完后对数据库的记录不会造成任何影响。你对数据库进行一些操作后,它会自动把数据库回滚,这样就保证了你的测试对于环境没有任何影响
集成代码如下
其中最重要的就是@ContextConfiguration。默认的从classpath目录下读取applicationContext.xml作为spring的启动配置文件(对应ClassPathXmlApplicationContext?)。
等同于(locations={"classpath:applicationContext1.xml"})。因此必须确保spring的配置文件在classpath中。
如果有多个spring配置,用逗号进行分隔(locations={"applicationContext.xml", "/applicationContex_transaction.xml"})
另外一种采用filepath定位spring配置文件(对应FileSystemXmlApplicationContext?).
比如在web项目中将相应的配置文件放到WEB-INF目录下"file:WebRoot/WEB-INF/config/applicationContext.xml",或者可以指定绝对路径。
实际问题:
项目中,将配置放在了web-inf/config/目录下对应的xml文件中,但是又在xml文件中对web-inf/config/properties/目录下的几个包括log4j.properties在内的几个properties文件进行了引用。
如果使用file方式指定spring配置文件位置的话,当加载到xml文件中引用的property文件时就会报文件找不到。因为仅仅指定采用file方式读取xml文件,对于对于property文件仍然会去classpath搜索。
解决方法
将Webroot加入到项目的classpath目录中。
或者更好的做法是指定在运行testNG测试时,将webroot加入到classpath中。
Eclipse中 run/run configuration菜单中进行配置
- spring和testng的整合
- testng和spring的整合
- spring集成TestNG【spring和testng的整合】
- spring整合testng和junit
- testng+spring整合
- 整合ant ivy 和testng
- WebWork 和 spring 的整合
- Webwork 和 spring 的整合
- jsf和spring的整合
- hibernate和spring的整合
- dwr和spring的整合
- spring 和hibernate的整合
- struts和spring的整合
- iBatis和Spring的整合
- struts2和spring的整合
- Webwork 和spring的整合
- struts和spring的整合!
- Flex和Spring的整合
- 从注册表删除桌面上不能删除的图标
- tcpdump 用法详解
- 壮志畅——写给2010世界杯依旧奋战的壮士们
- Quartus II 各个版本下载
- 北漂的那些日子
- spring和testng的整合
- JOJ1064: Caeser Comes Back
- mysql 时间函数用法 集合 【转】
- c++ vector用法
- Apache绑定域名详解
- 周末开心
- j2me 同时播放2个MP3文件
- 浏览器的兼容
- ::有问题(关于全局变量)