RCov начал анализировать загруженные библиотеки (включая сам Rdoc) - при использовании rvm (Ruby Version Manager) - PullRequest
3 голосов
/ 11 июня 2010

Контекст

  • rcov 0.9.8 2010-02-28
  • ruby ​​1.8.7 (2009-06-12 patchlevel 174) [i686-darwin10.3.0]
  • рвм 0.1.38, Уэйн Э. Сегин (wayneeseguin@gmail.com) [http://rvm.beginrescueend.com/]
  • Системный Ruby (система использования rvm): ruby ​​1.8.7 (уровень обновления 24-01 2010-10-10) [i686-darwin10]

Файлы

Тестовая установка - это папка 'lib', содержащая один файл, который определяет класс, папки 'test' и 'test / sub_test', с 'sub_test', содержащим один 'test_example_lib.rb' и Rakefile, подобный этому :

require 'rcov/rcovtask'

task :default => [:rcov]

desc "RCov"
Rcov::RcovTask.new do | t |
    t.test_files = FileList[ 'test/**/test_*.rb' ]
end

Результат

#rake
(in /Users/stephan/tmp/rcov_example)
rm -r coverage
Loaded suite /Users/stephan/.rvm/gems/ruby-1.8.7-p174/bin/rcov
Started
.
Finished in 0.000508 seconds.

1 tests, 2 assertions, 0 failures, 0 errors
+----------------------------------------------------+-------+-------+--------+
|                  File                              | Lines |  LOC  |  COV   |
+----------------------------------------------------+-------+-------+--------+
|...ms/rcov-0.9.8/lib/rcov/code_coverage_analyzer.rb |   271 |   156 |   5.1% |
|...ems/rcov-0.9.8/lib/rcov/differential_analyzer.rb |   116 |    82 |   9.8% |
|lib/example_lib.rb                                  |    16 |    11 |  72.7% |
+----------------------------------------------------+-------+-------+--------+
|Total                                               |   403 |   249 |   9.6% |
+----------------------------------------------------+-------+-------+--------+
9.6%   3 file(s)   403 Lines   249 LOC

Вопрос

Почему здесь анализируется сам RCov? Я ожидал бы этого (и это не происходит при использовании 'rvm use system'). На самом деле, похоже, это связано с тем, что я использую Ruby, установленный через rvm.

1 Ответ

3 голосов
/ 11 июня 2010

Добавить некоторые исключения в rcov:

- исключить / gems /, / Library /, / usr /, spec, lib / tasks

require 'rcov/rcovtask'

task :default => [:rcov]

desc "RCov"
Rcov::RcovTask.new do | t |
    t.test_files = FileList[ 'test/**/test_*.rb' ]
    t.rcov_opts << '--exclude /gems/,/Library/,/usr/,spec,lib/tasks'
end
...