Class: RcovBuilder

Inherits:
Object
  • Object
show all
Includes:
Utils
Defined in:
lib/rcov_builder.rb

Overview

Construction de la tache rcov (couverture des tests sur le code)
author: Vincent Dubois
date: 06 fevrier 2009

Instance Method Summary collapse

Methods included from Utils

build_name, erb_run, flog_caracteristics, flog_score_to_css_style, percent_to_css_style, run_command, verify_gem_presence

Instance Method Details

#build(project_name, auto_install, proxy_option) ⇒ Object

Implementation de la construction de la tache



20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/rcov_builder.rb', line 20

def build(project_name, auto_install, proxy_option)
  # On verifie la presence de rcov
  Utils.verify_gem_presence("rcov", auto_install, proxy_option)
  # On lance la generation
  puts " Building rcov code coverage report..."
  rcov_pass = Utils.run_command("rcov --rails --exclude rcov,rubyforge,builder,mime-types,xml-simple test/**/*_test.rb")
  if rcov_pass.index("Finished in").nil?
    raise " Execution of rcov failed with command 'rcov --rails --exclude rcov,rubyforge,builder,mime-types,xml-simple test/**/*_test.rb'.\n BUILD FAILED."
  end
  # On recupere le rapport genere
  Dir.mkdir "#{Continuous4r::WORK_DIR}/rcov"
  FileUtils.mv("coverage", "#{Continuous4r::WORK_DIR}/rcov/")
end

#prerequisite_met?Boolean

Prérequis à la tâche

Returns:

  • (Boolean)


10
11
12
# File 'lib/rcov_builder.rb', line 10

def prerequisite_met?
  Dir.glob("test/**/*_test.rb").length > 0
end

#prerequisite_unmet_messageObject

Dans le cas de l’erreur de prérequis



15
16
17
# File 'lib/rcov_builder.rb', line 15

def prerequisite_unmet_message
  " No file matching the [test/**/*_test.rb] pattern. Rcov task will be ignored."
end

#quality_indicator_nameObject

Nom de l’indicateur de qualite



42
43
44
# File 'lib/rcov_builder.rb', line 42

def quality_indicator_name
  "tests coverage"
end

#quality_percentageObject

Methode qui permet d’extraire le pourcentage de qualite extrait d’un builder



35
36
37
38
39
# File 'lib/rcov_builder.rb', line 35

def quality_percentage
  require 'hpricot'
  doc = Hpricot(File.read("#{Continuous4r::WORK_DIR}/rcov/coverage/index.html"))
  (doc/'tt[@class^="coverage_code"]')[0].inner_text.split(/%/)[0]
end