Class: Qualspec::Suite::Runner

Inherits:
Object
  • Object
show all
Defined in:
lib/qualspec/suite/runner.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(definition) ⇒ Runner

Returns a new instance of Runner.



10
11
12
13
14
15
16
17
18
# File 'lib/qualspec/suite/runner.rb', line 10

def initialize(definition)
  @definition = definition.is_a?(String) ? Suite.find(definition) : definition
  @results = Results.new(@definition.name)
  @judge = Qualspec.judge

  @definition.candidates_list.each do |c|
    @results.candidate_models[c.name] = c.model
  end
end

Instance Attribute Details

#definitionObject (readonly)

Returns the value of attribute definition.



8
9
10
# File 'lib/qualspec/suite/runner.rb', line 8

def definition
  @definition
end

#resultsObject (readonly)

Returns the value of attribute results.



8
9
10
# File 'lib/qualspec/suite/runner.rb', line 8

def results
  @results
end

Instance Method Details

#run(progress: true) ⇒ Object



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/qualspec/suite/runner.rb', line 20

def run(progress: true)
  variants = build_variants
  temperatures = @definition.temperature_list

  total_iterations = @definition.scenarios_list.size * variants.size * temperatures.size
  current = 0

  @definition.scenarios_list.each do |scenario|
    variants.each do |variant|
      temperatures.each do |temperature|
        current += 1
        log_iteration_progress(current, total_iterations, scenario, variant, temperature) if progress

        run_scenario_with_variant(scenario, variant, temperature, progress: progress)

        yield(@results) if block_given?
      end
    end
  end

  @results.finish!
  $stderr.puts if progress # Clear progress line
  @results
end