2017-06-07 62 views
2

我试图加快测试,到目前为止做了像删除不必要的数据库写入(使用新的而不是创建和不使用factorygirl,更少的功能测试,结合测试),当我单独运行文件时,我得到了减少及时。但是,当我运行整个测试套件时,我最终得到的时间大致相同,有时候我甚至会在我的改进测试中得到较慢的运行时间。准确测量rspec /水豚测试时间?

任何方法来准确测量?

+0

这可能有助于[show-runtime-for-each-rspec-example](https://stackoverflow.com/questions/4856500/show-runtime-for - 每个-rspec的-示例) –

回答

4

换掉新的,而不是与FactoryGirl创建是把婴儿扔出去的洗澡水。如果你不需要持久化对象,你可以使用FactoryGirl的构建或build_stubbed,并且在保持参数默认值的同时,你将获得性能上的节省。除此之外,你所做的所有性能调整真的被实际需要的时间所淹没在浏览器中做事情,以及资产编译(特别是在少量的测试中),所以你真的不会节省那么多。如果性能是你最关心的事情,那么最好的办法就是尽可能在单元测试中进行测试,然后将大部分功能测试通过你的应用程序限制在快乐的道路上。

如果您仍想查找最慢的测试以确保您没有在等待“不存在元素”而不是“元素不存在”并优化它们,您可以指定--profile命令行选项rspec或在RSpec配置中指定'profile_examples'https://relishapp.com/rspec/rspec-core/docs/configuration/profile-examples