关于JUNIT4 中的多线程测试的疑惑
2009-02-18 10:11
288 查看
传说junit4可以进行多线程测试,但是我一直没有找到如何使用注解测试,只有把多线程吓到测试用例里面进行测试,但是不测不知道,一测发现一个大问题,呵呵。代码如下
测试结果是在运行到sexc.shutdown();也就是测试用例的最后一行执行完以后以后,线程池里面正在执行的线程也全部关闭掉,注意,这里不是释放线程,而是直接关闭线程池里面的线程,呵呵,奇怪吧,想了许久我猜测是一个测试用例执行完成以后JUNIT4会直接关闭主线程,这样一来的话主线程下的所有操作就全部OVER,不知道我的推测是不是正确的,现在也没有时间去看JUNIT4的源码,以后有时间再去研究研究。如果哪位高手看到这个文章,然后又知道其中原理的话请告之我一声,我的邮箱是coffee_hc@163.com。如果有其他的解决办法也可以邮件告之一声,小弟不胜感激。最后这个问题我还是没有解决,只有直接写main方法来执行测试了,郁闷啊!
]@Test public void hibernatePool() { ApplicationContext ctx = new ClassPathXmlApplicationContext("test/spring_hibernate.xml"); // 启用线程池,模拟tomcat服务器线程池 ExecutorService sexc = Executors.newFixedThreadPool(100); for (int i = 0; i < 10000; i++) { ModelDaoIF dao = (ModelDaoIF) ctx.getBean("SimpleModelDao"); Work work = new HibernatePooxTest().new Work(); work.setDao(dao); sexc.execute(work); } sexc.shutdown(); }
测试结果是在运行到sexc.shutdown();也就是测试用例的最后一行执行完以后以后,线程池里面正在执行的线程也全部关闭掉,注意,这里不是释放线程,而是直接关闭线程池里面的线程,呵呵,奇怪吧,想了许久我猜测是一个测试用例执行完成以后JUNIT4会直接关闭主线程,这样一来的话主线程下的所有操作就全部OVER,不知道我的推测是不是正确的,现在也没有时间去看JUNIT4的源码,以后有时间再去研究研究。如果哪位高手看到这个文章,然后又知道其中原理的话请告之我一声,我的邮箱是coffee_hc@163.com。如果有其他的解决办法也可以邮件告之一声,小弟不胜感激。最后这个问题我还是没有解决,只有直接写main方法来执行测试了,郁闷啊!
相关文章推荐
- 我的工程-关于测试程序的多线程
- 关于多线程内存分配的疑惑
- 关于scanf的疑惑以及测试结果
- 关于EMI多线程分段测试方法的说明
- 《Java测试》关于Map遍历移除在多线程下的测试
- 关于PHP的多线程扩展pcntl的一些测试
- 关于Db4o的查询测试及疑惑
- JUnit4 多线程执行测试用例
- 关于C#多线程的学习和一点疑惑
- [置顶] jmeter关于模拟多线程压力测试
- Junit4单元测试 (二) GroboUtils进行多线程测试
- 关于JUNIT的多线程测试问题
- JUnit4 多线程执行测试用例
- 关于多线程共享数据的一些疑惑
- JUnit4---实践三:支持多线程,失败重试执行测试case的方法
- 第四回 关于多线程渲染(续--测试数据)
- junit4 测试 spring3
- 实验二:关于梭哈游戏的代码的测试
- 关于多线程中锁的理解
- 关于异步与多线程的区别