Railsters: The Rails test engine contains otherwise flawless error handling. So, after being bedeviled by intermittent "Test failure" abnormal test terminations, I finally got around to --trace-ing the problem, and when I found it the clumsiness surprised me: desc 'Test all units and functionals' task :test do Rake::Task["test:units"].invoke rescue got_error = true Rake::Task["test:functionals"].invoke rescue got_error = true if File.exist?("test/integration") Rake::Task["test:integration"].invoke rescue got_error = true end raise "Test failures" if got_error end What that means is, if any test_ case fails, we see a healthy error message, but if the test rig itself fails, 'rescue got_error = true' will throw away the e.message and e.backtrace, and the raise "Test failures" will provide an irrelevant error message and backtrace. I'm going to copy this task :test into my lib/tasks/project.rake file, and replace the error hiding with a real error handling block. Further, if the test rig itself has failed, I don't care to keep running any more tests, so I won't bother with the system that tolerates their faults. Why was this method so clumsy, and hasn't anyone asked for an upgrade on it yet? -- Phlip http://www.greencheese.us/ZeekLand <-- NOT a blog!!!
on 2007-03-18 04:29
on 2007-03-18 06:21
this has been fixed in rails 1.2.3 -Tim
on 2007-03-18 06:40
dysinger wrote: > this has been fixed in rails 1.2.3 -Tim Thanks! And to think that just this morning I ran 'gem install -v=1.2.2 rails --include-dependencies', just to sync all my versions on all my computers... ;-) -- Phlip http://www.greencheese.us/ZeekLand <-- NOT a blog!!!