[LRUG] Large Slow Test Suites
James McCarthy
james2mccarthy at gmail.com
Wed Dec 4 15:00:20 PST 2013
I'd try it with no internets and catch any stupid test touching api's, then look at factories,
if it's using factory girl you've got some opportunities http://robots.thoughtbot.com/use-factory-girls-build-stubbed-for-a-faster-test
If it's using devise, reduce the stretch in your test helper; Devise.stretches = 1
Where is the most time going to model, controller or integration? Is it disproportionate?
J.
Sent from my iPad
> On 4 Dec 2013, at 17:43, Jon Leighton <j at jonathanleighton.com> wrote:
>
> Hello there,
>
>> On 04/12/13 22:20, Mr Jaba wrote:
>> I've recently taken ownership of a new project with a large test suite
>> (2000ish tests), and the overall run time is around 30 minutes which is
>> certainly less than ideal!
>>
>> Now I know the general approach to "Fast Rails Tests" but taking the
>> time to refactor the whole test suite is a bit too much right now. I'm
>> wondering if anyone has experience of transforming a test suite of this
>> magnitude to something a bit speedier? If so how did you go about it?
>> What tips, tricks and techniques can you share?
>>
>> A bit more info:
>>
>> - Test::Unit tests, moving to Minitest
>> - Rails 3.2.16
>> - Running parallel_tests shaved 5 mins off the time
>> - Using Spring to reduce Rails load time.
>>
>> Any advice gratefully received!
>
> I think you need to provide some more information :) What's making it
> take so long - the sheer number of tests or what the tests are doing? Do
> you have certain types of tests that are taking a large portion of the
> time (e.g. Capybara tests?) Are you using factories? In my experience
> factories are an easy cause of a slow test suite.
>
> One thing to think about is whether you can break up your test suite.
> For example in the application I work on, we have unit/integration tests
> which run in about 25 seconds on my machine. I frequently run these
> during development and they often alert me to problems. But I rarely run
> the full set of capybara tests which takes several minutes - I let the
> CI do that and run failing tests individually where necessary. This
> achieves a decent balance of fast feedback for development without
> throwing away the safety net of proper full-stack tests.
>
> Jon
> _______________________________________________
> Chat mailing list
> Chat at lists.lrug.org
> http://lists.lrug.org/listinfo.cgi/chat-lrug.org
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lrug.org/pipermail/chat-lrug.org/attachments/20131204/391576e8/attachment-0003.html>
More information about the Chat
mailing list