Class: NCoverConsole

Inherits:
Object
  • Object
show all
Includes:
Albacore::RunCommand, Albacore::Task
Defined in:
lib/albacore/ncoverconsole.rb

Instance Attribute Summary collapse

Attributes included from Albacore::RunCommand

#command, #working_directory

Attributes included from Logging

#current_log_device, #logger

Instance Method Summary collapse

Methods included from Albacore::RunCommand

#get_command, #run_command

Methods included from AttrMethods

#attr_array, #attr_hash

Methods included from Albacore::Task

clean_dirname, create_rake_task, include_config, included

Methods included from UpdateAttributes

#<<, #update_attributes

Methods included from YAMLConfig

#configure, #load_config_by_task_name

Methods included from Logging

#create_logger, #log_device=, #log_level, #log_level=

Methods included from Failure

#fail_with_message

Constructor Details

#initializeNCoverConsole

Returns a new instance of NCoverConsole.



11
12
13
14
15
16
17
18
19
20
# File 'lib/albacore/ncoverconsole.rb', line 11

def initialize
  @register_dll = true
  @output = {}
  @cover_assemblies = []
  @exclude_assemblies = []
  @exclude_attributes = []
  @coverage = []
  super()
  update_attributes Albacore.configuration.ncoverconsole.to_hash
end

Instance Attribute Details

#testrunnerObject

Returns the value of attribute testrunner.



7
8
9
# File 'lib/albacore/ncoverconsole.rb', line 7

def testrunner
  @testrunner
end

Instance Method Details

#build_coverage_list(coverage) ⇒ Object



65
66
67
# File 'lib/albacore/ncoverconsole.rb', line 65

def build_coverage_list(coverage)
  "//coverage-type \"#{coverage.join(', ')}\""
end

#build_output_options(output) ⇒ Object



52
53
54
55
56
57
58
# File 'lib/albacore/ncoverconsole.rb', line 52

def build_output_options(output)
  options = []
  output.each do |key, value|
    options << "//#{key} #{value}"
  end
  options.join(" ")
end

#build_parameter_list(param_name, list) ⇒ Object



60
61
62
63
# File 'lib/albacore/ncoverconsole.rb', line 60

def build_parameter_list(param_name, list)
  list = list.map{|asm| "\"#{asm}\""}.join(';')
  "//#{param_name} #{list}"
end

#check_for_testrunnerObject



44
45
46
47
48
49
50
# File 'lib/albacore/ncoverconsole.rb', line 44

def check_for_testrunner
  return true if (!@testrunner.nil?)
  msg = 'testrunner cannot be nil.'
  @logger.info msg
  fail
  return false
end

#executeObject



26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/albacore/ncoverconsole.rb', line 26

def execute
  return unless check_for_testrunner
  
  command_parameters = []
  command_parameters << "//reg" if @register_dll
  command_parameters << build_output_options(@output) unless @output.nil?
  command_parameters << build_parameter_list("assemblies", @cover_assemblies) unless @cover_assemblies.empty?
  command_parameters << build_parameter_list("exclude-assemblies", @exclude_assemblies) unless @exclude_assemblies.empty?
  command_parameters << build_parameter_list("exclude-attributes", @exclude_attributes) unless @exclude_attributes.empty?
  command_parameters << build_coverage_list(@coverage) unless @coverage.empty?
  command_parameters << @testrunner.get_command_line
  
  result = run_command "NCover.Console", command_parameters.join(" ")
  
  failure_msg = 'Code Coverage Analysis Failed. See Build Log For Detail.'
  fail_with_message failure_msg if !result
end

#no_registrationObject



22
23
24
# File 'lib/albacore/ncoverconsole.rb', line 22

def no_registration
  @register_dll = false
end