[Rake-devel] shhh
Jim Weirich
jim.weirich at gmail.com
Fri Mar 13 18:01:07 EDT 2009
On Mar 13, 2009, at 11:48 AM, Alex Chaffee wrote:
> Rake is too loud.
>
> It's also too quiet when it should be louder, forcing me to run it
> again
> with --trace, which makes it *way* too loud.
>
> Please let me explain.
>
> Here's what a successful test run looks like for my current project:
>
>
> Pepper:moodlog chaffee$ rake
> (in /Users/chaffee/dev/moodlog)
> /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby
> -I"/Users/chaffee/dev/moodlog/lib" -I"/Users/chaffee/dev/moodlog/test"
> "/Library/Ruby/Gems/1.8/gems/rake-0.8.4/lib/rake/rake_test_loader.rb"
> "test/unit/address_test.rb" "test/unit/address_widget_test.rb"
> "test/unit/color_test.rb" "test/unit/feeler_test.rb"
> "test/unit/line_test.rb" "test/unit/mailman_test.rb"
> "test/unit/moment_test.rb" "test/unit/mood_test.rb"
> "test/unit/person_mailer_test.rb" "test/unit/person_test.rb"
> "test/unit/schedule_feeler_test.rb" "test/unit/schedule_test.rb"
> "test/unit/urlencode_test.rb"
> Loaded suite
> /Library/Ruby/Gems/1.8/gems/rake-0.8.4/lib/rake/rake_test_loader
> Started
> ....................................................................................................................................................
> Finished in 2.343631 seconds.
>
> 148 tests, 2416 assertions, 0 failures, 0 errors
> /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby
> -I"/Users/chaffee/dev/moodlog/lib" -I"/Users/chaffee/dev/moodlog/test"
> "/Library/Ruby/Gems/1.8/gems/rake-0.8.4/lib/rake/rake_test_loader.rb"
> "test/functional/addresses_controller_test.rb"
> "test/functional/colors_controller_test.rb"
> "test/functional/feelers_controller_test.rb"
> "test/functional/home_controller_test.rb"
> "test/functional/moments_controller_test.rb"
> "test/functional/moods_controller_test.rb"
> "test/functional/people_controller_test.rb"
> "test/functional/schedules_controller_test.rb"
> "test/functional/sessions_controller_test.rb"
> Loaded suite
> /Library/Ruby/Gems/1.8/gems/rake-0.8.4/lib/rake/rake_test_loader
> Started
> ..........................................................................................
> Finished in 1.911496 seconds.
>
> 90 tests, 221 assertions, 0 failures, 0 errors
> /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby
> -I"/Users/chaffee/dev/moodlog/lib" -I"/Users/chaffee/dev/moodlog/test"
> "/Library/Ruby/Gems/1.8/gems/rake-0.8.4/lib/rake/rake_test_loader.rb"
>
>
> And here's what I'd like it to look like:
>
> Pepper:moodlog chaffee$ rake
> Running unit tests.
> Started
> ....................................................................................................................................................
> Finished in 2.343631 seconds.
>
> 148 tests, 2416 assertions, 0 failures, 0 errors
>
> Running functional tests.
> Started
> ..........................................................................................
> Finished in 1.911496 seconds.
>
> 90 tests, 221 assertions, 0 failures, 0 errors
>
>
> See what I mean?
>
> Also, when there's a test failure, I'd like to see it and its stack
> trace
> immediately, without having to rerun with "--trace".
The printout of the stack trace for a broken test is done by
Test::Unit, not Rake. Using trace to debug a broken test is generally
unhelpful (i.e. it just points you to the code that runs the test
suite).
> As I see it, rake has kind of mixed up the expected meanings of the
> --quiet,
> --silent, --verbose and --trace flags, and the Rake Test task mixes
> them up
> even further, and outputs a bunch of stuff we rarely if ever care
> about
> while suppressing stuff we always care about.
>
> I'd be happy to take a crack at a proposal and a solution in code,
> but I'd
> like to get an opinion from this group (and hopefully Jim Weirich)
> first.
>
> The most important thing, in my opinion, is to disentangle the two
> meanings
> of "--trace", since my preference is to be able to show backtraces
> but *not*
> show task traces. Next up would be to take out the current directory
> and
> full list of test.rb targets except in case of emergency verbosity.
> (Really,
> are they ever useful except when debugging your rakefile or rake
> itself?)e
The Rake code runs in a (possibly) different current directory than
the directory where the rake command itself was invoked. At the time,
I felt that was unusual enough to make it clear where rake decided to
run. Maybe this is no longer true.
Regarding the full list of tests, set the verbose flag in the test
task definition. This should be defaulting to false, so you must be
explicitly setting it to true.
Regarding the "Loading Suite ..." message, this is printed by
Test::Unit, but it looks like it can be controlled via an output
level. I'm not quite sure how to influence its setting, but I suspect
it can be done. I would certainly entertain a patch to allow this to
be controlled from the testtask definition.
> P.S. Is Jim even using this list anymore? I notice there was a release
> recently without an announcement on this list.
--
-- Jim Weirich
-- jim.weirich at gmail.com
More information about the Rake-devel
mailing list