<div dir="ltr">Hi Jon, <div><br></div><div>First up, thanks for Spring (amongst your many other contributions!) it's a really useful gem!</div><div><br></div><div>I believe your first question is one I need to find the answer to. I'm unsure as to the root cause of the slowness although as you suspect there are many factories being used so I think this is going to be a huge problem although a difficult one to solve as there are so many! </div>
<div><br></div><div>There are quite a few functional/ "integration" tests, none of which I've seen so far using capybara. I think splitting the tests up is a good plan, we're using Guard so we do get fast-ish feedback but ideally I'd like the whole suite to run in < 10 minutes. The limit on the <a href="http://drone.io">drone.io</a> CI server is 15 minutes so the first job is to get it to run on there! </div>
<div><br></div><div>With regards to the factories, what do you recommend instead? Simpler objects with less coupling to Rails? </div><div><br></div><div>Thanks for your input!</div><div><br></div><div>Tom</div></div><div class="gmail_extra">
<br><br><div class="gmail_quote">On 4 December 2013 22:43, Jon Leighton <span dir="ltr"><<a href="mailto:j@jonathanleighton.com" target="_blank">j@jonathanleighton.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hello there,<br>
<div><div class="h5"><br>
On 04/12/13 22:20, Mr Jaba wrote:<br>
> I've recently taken ownership of a new project with a large test suite<br>
> (2000ish tests), and the overall run time is around 30 minutes which is<br>
> certainly less than ideal!<br>
><br>
> Now I know the general approach to "Fast Rails Tests" but taking the<br>
> time to refactor the whole test suite is a bit too much right now. I'm<br>
> wondering if anyone has experience of transforming a test suite of this<br>
> magnitude to something a bit speedier? If so how did you go about it?<br>
> What tips, tricks and techniques can you share?<br>
><br>
> A bit more info:<br>
><br>
> - Test::Unit tests, moving to Minitest<br>
> - Rails 3.2.16<br>
> - Running parallel_tests shaved 5 mins off the time<br>
> - Using Spring to reduce Rails load time.<br>
><br>
> Any advice gratefully received!<br>
<br>
</div></div>I think you need to provide some more information :) What's making it<br>
take so long - the sheer number of tests or what the tests are doing? Do<br>
you have certain types of tests that are taking a large portion of the<br>
time (e.g. Capybara tests?) Are you using factories? In my experience<br>
factories are an easy cause of a slow test suite.<br>
<br>
One thing to think about is whether you can break up your test suite.<br>
For example in the application I work on, we have unit/integration tests<br>
which run in about 25 seconds on my machine. I frequently run these<br>
during development and they often alert me to problems. But I rarely run<br>
the full set of capybara tests which takes several minutes - I let the<br>
CI do that and run failing tests individually where necessary. This<br>
achieves a decent balance of fast feedback for development without<br>
throwing away the safety net of proper full-stack tests.<br>
<br>
Jon<br>
_______________________________________________<br>
Chat mailing list<br>
<a href="mailto:Chat@lists.lrug.org">Chat@lists.lrug.org</a><br>
<a href="http://lists.lrug.org/listinfo.cgi/chat-lrug.org" target="_blank">http://lists.lrug.org/listinfo.cgi/chat-lrug.org</a><br>
</blockquote></div><br></div>