测试 有没有可能做到测试并行化

ibachue · 2013年04月01日 · 最后由 ery 回复于 2013年04月01日 · 3649 次阅读

诸神啊,

由于我们项目略大,测试用例略多,跑单元测试,功能测试花费时间太久了(大约要一刻钟)。我觉得要提高速度,可能需要尝试把 Rails 串行执行测试用例的方式改成并行执行。不知道大家以前有没有做过类似的事情,有没有好的解决方案,小弟可以学学。

谢谢大家!

我也很关心这个问题

#1 楼 @fredwu 看起来不错 thx

我尝试了一下 速度提高了将近一倍 从 9 分钟降到了 5 分钟 但是 使用 sunspot 的查询测试,出现了报错。 想一想,两个测试进程使用同一个 sunspot 数据库,当然会出错啦。

#4 楼 @ery 没有用 transaction 嘛?

#5 楼 @iBachue 你是说 sunspot 的 transaction 吗?没用过,也没听说过呀。

#6 楼 @ery 看了下 github 貌似压根不是 database 好吧 你这个 case 比我的还棘手。。

换 ssd 硬盘的机器试试

#7 楼 @iBachue 我说的 sunspot 数据库,其实不是一个真正意义上的数据库,而是 sunspot 自己维护的一堆数据文件。

#8 楼 @ywjno 不可能的 我们是 CI 环境执行的 能不给虚拟机已经不错了。。

根据官网的说明修改了 sunspot 的配置后,测试全部通过。

我们在测试的时候使用了 turn(测试结果是彩色的), 但是,parallel_tests 输出的结果是没有颜色的。 可能是 parallel_tests 使用了重定向的原因。

#8 楼 @ywjno 我换过 ssd 硬盘,对测试速度提升不大,从 11 分钟变成了 9 分钟。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号