coverage で、スレッド内で動作したコードが数えられないようなのですが、
そういうものなんでしたっけ?

% cat z.rb
Thread.new {
  100.times {
    1 + 1
  }
}.join
% ./ruby -rcoverage -ve '
Coverage.start
load "z.rb"
p Coverage.result
'
ruby 1.9.2dev (2010-01-03 trunk 26233) [i686-linux]
{"z.rb"=>[1, 0, 0, nil, nil]}

スレッドでなければ数えられます。

% cat z2.rb
100.times {
  1 + 1
}
% ./ruby -rcoverage -ve '
Coverage.start
load "z2.rb"
p Coverage.result
'
ruby 1.9.2dev (2010-01-03 trunk 26233) [i686-linux]
{"z2.rb"=>[1, 100, nil]}
-- 
[田中 哲][たなか あきら][Tanaka Akira]