class Korinthenkacker::CLI

Public Instance Methods

builds(jobname) click to toggle source
# File lib/korinthenkacker/cli.rb, line 26
def builds(jobname)
  reports = test_reports(jobname, options.limit)
  reporter(options.simple).print_builds_report(reports)
end
failed_scenarios(jobname, build=nil) click to toggle source
# File lib/korinthenkacker/cli.rb, line 34
def failed_scenarios(jobname, build=nil)
  failed_cases = failed_cases_for(jobname, build)
  reporter(options.simple).print_scenario_reports(failed_cases)
end
flaky_scenarios(jobname) click to toggle source
# File lib/korinthenkacker/cli.rb, line 42
def flaky_scenarios(jobname)
  failed_cases = failed_cases_for(jobname)
  flaky_cases = flaky_filter.filter(failed_cases)
  reporter(options.simple).print_scenario_reports(flaky_cases)
end
jobs() click to toggle source
# File lib/korinthenkacker/cli.rb, line 18
def jobs
  jobs = api.jobs['jobs'].map { |job| JobInfo.new(job) }
  reporter(options.simple).print_jobs_report(jobs)
end
report(*jobs) click to toggle source
# File lib/korinthenkacker/cli.rb, line 50
def report(*jobs)
  jobs.each do |job|
    puts job
    failed_scenarios(job, nil)
  end
end
verify(*jobs) click to toggle source
# File lib/korinthenkacker/cli.rb, line 58
def verify(*jobs)
  jobs.each do |job|
    reports = test_reports(job, 1)
    exit(1) if reports.empty? || !reports.first.success?
  end
end

Private Instance Methods

api() click to toggle source
# File lib/korinthenkacker/cli.rb, line 94
def api
  @api ||= API.new(Configuration.jenkins_url)
end
failed_cases_for(jobname, build=nil) click to toggle source
# File lib/korinthenkacker/cli.rb, line 67
def failed_cases_for(jobname, build=nil)
  test_reports = build.nil? ? test_reports(jobname, options.limit) : [test_report(jobname, build)]
  failed_filter.filter(test_reports.map(&:cases).flatten)
end
failed_filter() click to toggle source
# File lib/korinthenkacker/cli.rb, line 86
def failed_filter
  @failed_filter ||= Filters::Failed.new
end
flaky_filter() click to toggle source
# File lib/korinthenkacker/cli.rb, line 90
def flaky_filter
  @flaky_filter ||= Filters::Flaky.new
end
reporter(simple=false) click to toggle source
# File lib/korinthenkacker/cli.rb, line 82
def reporter(simple=false)
  @reporter ||= simple ? Reporters::Simple.new : Reporters::Verbose.new
end
test_report(jobname, build) click to toggle source
# File lib/korinthenkacker/cli.rb, line 72
def test_report(jobname, build)
  TestReport.new(jobname, build, api.test_report(jobname, build))
end
test_reports(jobname, limit=nil) click to toggle source
# File lib/korinthenkacker/cli.rb, line 76
def test_reports(jobname, limit=nil)
  job_info = JobInfo.new(api.job(jobname))
  builds = limit ? job_info.build_numbers.first(limit) : job_info.build_numbers
  builds.map { |build| test_report(jobname, build) rescue nil }.compact # TODO: proper catching
end