本文共 1022 字,大约阅读时间需要 3 分钟。
Maven的Surefire插件,使用了很长时间,尽快有时运行存在一些问题(例如before、after中的内容未执行),但大多顺利的解决了。今天亮亮在项目中遇到Surefire并发执行的问题,自己着手从实践测试和源代码的角度来分析。
附:各插件地址:
1、实践:
<forkMode>always</forkMode>
Maven运行测试用例时,是通过调用maven的surefire插件并fork一个子进程来执行用例的。forkmode属性中指明是要为每个测试创建一个进程,还是所有测试在同一个进程中完成。
forkMode 可设置值有 “never”, “once”, “always” 和 “pertest”。
pretest: 每一个测试创建一个新进程,为每个测试创建新的JVM是单独测试的最彻底方式,但也是最慢的,不适合hudson上持续回归
once:在一个进程中进行所有测试。once为默认设置,在Hudson上持续回归时建议使用默认设置。
always:在一个进程中并行的运行脚本,Junit4.7以上版本才可以使用,surefire的版本要在2.6以上提供这个功能,其中 threadCount:执行时,指定可分配的线程数量。只和参数parallel配合使用有效。默认:5。
<forkMode>always</forkMode>
<parallel>methods</parallel>
<threadCount>4</threadCount>
实践代码:待续
本文转自 tianya23 51CTO博客,原文链接:http://blog.51cto.com/tianya23/672338,如需转载请自行联系原作者