class Testplan::Build
Public Class Methods
build_platform_exec_strings(platform, format, execute_all_at_once)
click to toggle source
# File lib/testplan.rb, line 41 def self.build_platform_exec_strings(platform, format, execute_all_at_once) envstring = make_env_string(platform) estrings = [] if execute_all_at_once print "\nRunning all testcases at once with ENV: #{envstring}\n" exec_string = "#{envstring}bundle exec rake #{format.to_s} SPEC_OPTS=\"" @@config[:platforms][platform][:cases].each do | acase | exec_string += " -e #{acase} " print " - testcase #{acase}\n" end exec_string += "\"" estrings << exec_string else @@config[:platforms][platform][:cases].each do | acase | exec_string = "#{envstring}bundle exec rake #{format.to_s} SPEC_OPTS=\"-e #{acase}\"" print "\nRunning testcase #{acase} with ENV: #{envstring}\n" estrings << exec_string end end estrings end
execute_strings(exec_strings)
click to toggle source
# File lib/testplan.rb, line 72 def self.execute_strings(exec_strings) exit_code = 0 exec_strings.each do |estring| p estring exit_code += 1 unless system estring end if exit_code == 1 raise 'At least one test failed' elsif exit_code > 1 raise "There were #{exit_code} failed tests." end exit_code end
init()
click to toggle source
# File lib/testplan.rb, line 37 def self.init @@config = $initconf.call end
make_env_string(platform)
click to toggle source
# File lib/testplan.rb, line 95 def self.make_env_string(platform) envarr = {} @@config[:platforms][platform].each do | k,v| envarr[k.to_s] = v unless k == :cases end case RbConfig::CONFIG['host_os'] when /mswin|msys|mingw|cygwin|bccwin|wince|emc/ envstring = make_env_string_win(envarr) else envstring = make_env_string_unix(envarr) end envstring end
make_env_string_unix(envarr)
click to toggle source
# File lib/testplan.rb, line 111 def self.make_env_string_unix(envarr) envstr='' envarr.each do | varname,varvalue| envstr+= "#{varname.upcase}='#{varvalue}' " end return envstr end
make_env_string_win(envarr)
click to toggle source
# File lib/testplan.rb, line 119 def self.make_env_string_win(envarr) envstr='' envarr.each do | varname,varvalue| envstr+= "set #{varname.upcase}=#{varvalue} &" end return envstr end
plan_in_format(plan, format, execute_all_at_once = false)
click to toggle source
# File lib/testplan.rb, line 19 def self.plan_in_format(plan, format, execute_all_at_once = false) self.init validate_plan_name(plan) exec_strings = [] @@config[:testplans][plan].each do |platform| exec_strings += self.build_platform_exec_strings(platform, format, execute_all_at_once) end return self.execute_strings(exec_strings) end
platform_in_format(platform, format, execute_all_at_once = false)
click to toggle source
# File lib/testplan.rb, line 31 def self.platform_in_format(platform, format, execute_all_at_once = false) self.init exec_strings = self.build_platform_exec_strings(platform, format, execute_all_at_once) return self.execute_strings(exec_strings) end
validate_plan_name(plan_name)
click to toggle source
# File lib/testplan.rb, line 89 def self.validate_plan_name(plan_name) if !@@config[:testplans].has_key?(plan_name) raise 'Plan name does not exist' end end