class Busser::Command::Test

Test command.

@author Fletcher Nichol <fnichol@nichol.ca>

Public Instance Methods

perform() click to toggle source
# File lib/busser/command/test.rb, line 33
def perform
  Busser::Plugin.runner_plugins(plugins).each do |runner_path|
    runner = File.basename(runner_path)
    next if skip_runner?(runner)
    klass = ::Thor::Util.camel_case(runner)

    banner "Running #{runner} test suite"
    Busser::Plugin.require!(runner_path)
    prepare_suite(runner)
    invoke Busser::Plugin.runner_class(klass)
  end
end

Private Instance Methods

prepare_suite(runner) click to toggle source
# File lib/busser/command/test.rb, line 52
def prepare_suite(runner)
  run_prepare_sh(runner)
  run_prepare_recipe(runner)
end
run_prepare_recipe(runner) click to toggle source
# File lib/busser/command/test.rb, line 66
def run_prepare_recipe(runner)
  prepare_recipe = suite_path(runner).join("prepare_recipe.rb")

  if prepare_recipe.exist?
    warn "Apologies, but Busser no longer supports the" +
      " prepare_recipe.rb file. Please use prepare.sh and optionally" +
      " shell out to chef-apply in an Omnibus installation."
  end
end
run_prepare_sh(runner) click to toggle source
# File lib/busser/command/test.rb, line 57
def run_prepare_sh(runner)
  prepare_sh_script = suite_path(runner).join("prepare.sh")

  if prepare_sh_script.exist?
    banner "Preparing #{runner} suite with #{prepare_sh_script}"
    run!("/bin/sh #{prepare_sh_script}")
  end
end
skip_runner?(runner) click to toggle source
# File lib/busser/command/test.rb, line 48
def skip_runner?(runner)
  runner == "dummy" && ! Array(plugins).include?("dummy")
end