On 8/16/07, Rich <richpoir...@gmail.com> wrote:
> On Aug 15, 12:41 am, richpoir...@gmail.com wrote:
> > On Aug 14, 6:40 pm, Jim Weirich <j...@weirichhouse.org> wrote:
> > > unknown wrote:
> > > > Israkesupposed to be reallyslow?
> > > > I'm using InstantRails and runningrakein a project with one unit
> > > > test and two functional tests and it takes 33 seconds total. Is that
> > > > normal? It seems reallyslowto me.
> > > > When I turn on trace I can see that it spends most of its time in
> > > > "Execute environment" and loading the test files:
> > > > C:/InstantRails/ruby/bin/ruby -Ilib;test "C:/InstantRails/ruby/lib/
> > > > ruby/gems/1.8/gems/rake-0.7.2/lib/rake/rake_test_loader.rb" "test/unit/
> > > > user_test.rb"
> > > > Anyone else have this problem or is it normal? Thanks.
> > > Rakein and of itself is quite fast. There are two types of things that
> > > canslowyou down.
> > > (1) Executing the Rakefile. If you have lots of tasks or complex
> > > dependencies, then whatever time it takes to resolve those can build up
> > > andslowdown everyrakecommand.
> > > (2)Slowtasks. Some tasks inrakeare naturelyslow. Slowtakes make
> > > anything that depends upon themslowas well.
> > > I assume you are working in Rails? Add this to your top level Rakefile:
> > > task :noop
> > > Then time the "rakenoop" command. This will be the time it takesrake
> > > to run essentially a do nothing task and will give you a sense of the
> > > general Rakefile overhead.
> > > Then time "rakeenvironment". This task loads the rails environment and
> > > can take some time. The environment task is a dependency of most rails
> > > relatedraketasks in a Rails project.
> > > In the project I'm currently working on, "rakenoop" takes under a
> > > second. "rakeenvironment" takes nearly 3 seconds. ("rakenoop" in a
> > > lightweight non-rails project takes under 0.2 seconds).
> > > It sounds like the environment task on your system is painfullyslow.
> > > Is it doing anything unusual?
> > > -- Jim Weirich
> > > --
> > > Posted viahttp://www.ruby-forum.com/.
> > Thanks for the replies. Yes I'm working with rails. I think you are
> > both right. Running a single unit test withoutraketakes about 11
> > seconds (even though it says it finished in 0.118 seconds). The test
> > simply creates a new user in my User model. So maybe it's taking a
> > while to connect to my mysql db? I'll have to investigate that (not
> > sure how to though).rakeenvironment takes about 13 seconds. Where is
> > the environment task defined? I'd like to take a look at it to see
> > what it's doing. Usingraketo run that one unit test takes 24
> > seconds, so it's definitely a combination of the environment task
> > being painfullyslowand the test itself beingslowtoo.
> > Thanks again for the help Jim and Ryan.
> Ok I've narrowed down the environment part of the problem. What's
> taking long is the require_frameworks method in rails' Initializer.
> The active_record, action_controller and action_web_services
> frameworks take a while (a few seconds each) to load. So now the
> question is why? I'm not sure where to look to dig deeper into this,
> i.e., see what the require method is actually doing. Any ideas?
> I still have to look into why the test itself isslowtoo.
Its normally a good idea to take out actual db connections when
running tests. Did you look into mocha or something?