准确测量rspec/水豚测试时间?



我正在尝试加快测试速度,到目前为止已经做了一些事情,例如删除不必要的数据库写入(使用new而不是create,不使用factorygirl,更少的功能测试,组合测试)当我单独运行文件时,我减少了时间。

但是,当我运行整个测试套件时,我最终得到大致相同的时间,有时我最终甚至会在改进的测试中得到更慢的运行时间。

有什么方法可以准确测量这一点吗?

用 FactoryGirl 交换新的而不是创造是把婴儿和洗澡水一起扔出去。如果你不需要持久化的对象,你可以使用FactoryGirl的构建或build_stubbed,你将获得性能节省,同时仍然保持参数默认值等。 除此之外,您所做的所有性能调优实际上都被在浏览器中执行操作所需的实际时间和资产编译(尤其是在少量测试中)所淹没,因此您真的不会节省那么多。 如果你关心的是性能,最好的办法是在单元测试中尽可能多地进行测试,然后将大多数功能测试限制在应用中的快乐路径上。

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

最新更新