Testing with rake is REALLY time consuming! Every time I have to run a test, it eat up something like 4 to 6 seconds, only for start up O_O There''s nothing we can do to speed up? Perhaps something like spork? -- Posted via http://www.ruby-forum.com/. -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit https://groups.google.com/groups/opt_out.
Use either spark or parallel_tests Dheeraj Kumar On Tuesday 31 July 2012 at 11:11 PM, Salvatore Pelligra wrote:> Testing with rake is REALLY time consuming! Every time I have to run a > test, it eat up something like 4 to 6 seconds, only for start up O_O > > There''s nothing we can do to speed up? Perhaps something like spork? > > -- > Posted via http://www.ruby-forum.com/. > > -- > You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. > To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org (mailto:rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org). > To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org (mailto:rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org). > For more options, visit https://groups.google.com/groups/opt_out. > >-- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit https://groups.google.com/groups/opt_out.
Hello Salvatore, I think using things like spork or the like is just a band-aid and they are not a solution to the real problem which is the design and mixing things all together in rails provided and known things, specially controllers and models. If we have good design with Single Responsibility Principle and Separation of Concerns we can have incredibly fast tests with focused pieces in our design. And we only need rake or those stuff for running our rails-specific tests (like controller tests, model tests, etc.) and those tests wont need to be run as frequently as domain-logic tests. domain-logic tests should be run so frequently during the red-green-refactor cycle all the time and we should benefit from the quick feedback and other things which are provided by having fast tests. I recommend you to watch this interesting talk by Corey Haines -> http://arrrrcamp.be/videos/2011/corey-haines---fast-rails-tests/ it''ll be great explanation of the things I''ve just mentioned with perfect details and examples. Hope that helps. Best Regards -- Sam Serpoosh Software Developer: http://masihjesus.wordpress.com Twitter @masihjesus -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit https://groups.google.com/groups/opt_out.
On Tuesday, 31 July 2012 17:57:59 UTC-4, @masihjesus wrote:> > Hello Salvatore, > > I think using things like spork or the like is just a band-aid and > they are not a solution to the real problem which is the design and > mixing things all together in rails provided and known things, > specially controllers and models. If we have good design with Single > Responsibility Principle and Separation of Concerns we can have > incredibly fast tests with focused pieces in our design. >Oh just stop it. Bending your app into a pretzel to get faster tests is the "band-aid". Tools like Spork address a single issue - "environment reloading is expensive" - with a simple solution, not reloading when it isn''t needed. That''s *far* more useful, especially if you''re a developer on an *existing* app and don''t have the luxury of rewriting everything into Object-Oriented Nirvana. --Matt Jones -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To view this discussion on the web visit https://groups.google.com/d/msg/rubyonrails-talk/-/DiL738KsmcEJ. For more options, visit https://groups.google.com/groups/opt_out.
> > > Oh just stop it. Bending your app into a pretzel to get faster tests is > the "band-aid". >Really? it''s not about bending app into pretzel, it''s about designing the app in a way that each part has only one reason to change. and not making things depend on stuff that they don''t have anything to do with them. I think shoving lots of things into models and controllers is not a good idea and we''ll end up with God classes and modules which will change for lots of different reasons. BTW it''s not for getting fast tests. in TDD when it''s hard to write tests or the tests are slow when they should not (when they don''t need rails for instance) they''re shouting about the problems in the design it''s like an alarm. And we should pay attention to this quick feedback and do something about it otherwise it''ll get worse and worse.> Tools like Spork address a single issue - "environment reloading is > expensive" - with a simple solution, not reloading when it isn''t needed. > That''s *far* more useful, especially if you''re a developer on an *existing* > app and don''t have the luxury of rewriting everything into Object-Oriented > Nirvana. >I completely agree with you that not loading things when they are not needed is a great solution. and if you think about it this whole design idea for putting things where they belong and not in models and controllers is doing this too. You''re not depending a logic to ActiveRecord or ApplicationController ergo, you''re not loading things that you don''t need at the moment and you don''t depend upon things that you don''t have too. Of course doing this is harder in an existing application but trying to improve the design toward this style in small steps and using the existing SLOW tests to make sure we''re not breaking things is a good thing to do. Until we end up with a great design with extracted domain-logic modules in their own place and having incredibly fast isolated tests for them. (That''s my idea and probably I''m wrong though ;):D) Good Luck ;) Best Regards -- Sam Serpoosh Software Developer: http://masihjesus.wordpress.com Twitter @masihjesus -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit https://groups.google.com/groups/opt_out.
I agree with doing fast, isolated test and follow the single responsibility principle, however my problem with rake & rails is not the execution time of tests, but the start up of rake instead. I''m trying to use Test Driven Design, so I run test a lot and it''s a pain if every time I lost 6+ seconds for ONLY rake test start up; inadmissible. I think culprit is not rake itself, but start up of rails'' environment. Now, I''ve found the spork-testunit gem, not user-friendly as "rake test", but a lot more faster and test execute in a blink of eyes: 0.5 sec VS 7 sec. For me, that''s the solution. -- Posted via http://www.ruby-forum.com/. -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit https://groups.google.com/groups/opt_out.