class Minitest::Reporters::Ws::Reporter

A reporter based on rspec-web by RyanScottLewis

@see github.com/RyanScottLewis/rspec-web

Constants

EMOJI

Attributes

client[RW]
metadata[RW]
test_count[RW]
timestamp[RW]

Public Class Methods

new(opts = {}) click to toggle source

MUTEX on MiniTest::ReporterRunner?

# File lib/minitest/reporters/ws/reporter.rb, line 24
def initialize(opts = {})

  @config = conf = ::Minitest::Reporters::Ws::Client::DEFAULT_CONFIG
  @emoji = EMOJI.merge(opts.fetch(:emoji, {}))

  init_counts
  init_suite_counts
end

Public Instance Methods

after_suite(suite) click to toggle source
# File lib/minitest/reporters/ws/reporter.rb, line 59
def after_suite(suite)
  if @test_count > 1
    @suites_results.each_key { |k| @suites_results[k] += @results[k] }
    print_after_suite(suite)
  end
end
after_suites(suites, type) click to toggle source
# File lib/minitest/reporters/ws/reporter.rb, line 50
def after_suites(suites, type)
  print_after_suites
  client.close
end
after_test(suite,test) click to toggle source
# File lib/minitest/reporters/ws/reporter.rb, line 72
def after_test(suite,test)
  @test_count += 1
  @suite_test_count += 1
end
before_suite(suite) click to toggle source
# File lib/minitest/reporters/ws/reporter.rb, line 55
def before_suite(suite)
  init_counts
end
before_suites(suite, type) click to toggle source

MINITEST HOOKS

# File lib/minitest/reporters/ws/reporter.rb, line 40
def before_suites(suite, type)
  init_client
  set_timestamp
  set_metadata
  init_suite_counts
  client.identify
  total_tests = metadata[:test_count]
  start_new_iteration(total_tests) if total_tests > 0
end
before_test(suite,test) click to toggle source
# File lib/minitest/reporters/ws/reporter.rb, line 66
def before_test(suite,test)
  # need to move towards using metadata[:test_count], etc
  @test_count ||= 0
  @suite_test_count ||= 0
end
error(suite, test, test_runner) click to toggle source
# File lib/minitest/reporters/ws/reporter.rb, line 97
def error(suite, test, test_runner)
  @results['E'] += 1
  print_err(suite,test,test_runner)
  add_to_erring(to_metadata(runner, test_runner))
end
failure(suite, test, test_runner) click to toggle source
# File lib/minitest/reporters/ws/reporter.rb, line 91
def failure(suite, test, test_runner)
  @results['F'] += 1
  print_fail(suite,test,test_runner)
  add_to_failing(to_metadata(runner, test_runner))
end
init_client() click to toggle source
# File lib/minitest/reporters/ws/reporter.rb, line 33
def init_client
  client
  #find_or_create_client(conf)
end
pass(suite, test, test_runner) click to toggle source

MINITEST PASS/FAIL/ERROR/SKIP

# File lib/minitest/reporters/ws/reporter.rb, line 79
def pass(suite, test, test_runner)
  @results['P'] += 1
  print_pass(suite,test,test_runner)
  add_to_passing(to_metadata(runner, test_runner))
end
skip(suite, test, test_runner) click to toggle source
# File lib/minitest/reporters/ws/reporter.rb, line 85
def skip(suite, test, test_runner)
  @results['S'] += 1
  print_skip(suite,test,test_runner)
  add_to_pending(to_metadata(runner, test_runner))
end

Private Instance Methods

init_count_hash() click to toggle source
# File lib/minitest/reporters/ws/reporter.rb, line 165
def init_count_hash
  { 'P' => 0,
    'E' => 0,
    'F' => 0,
    'S' => 0 }
end
init_counts() click to toggle source
# File lib/minitest/reporters/ws/reporter.rb, line 177
def init_counts
  @test_count = 0
  @results = init_count_hash
end
init_suite_counts() click to toggle source
# File lib/minitest/reporters/ws/reporter.rb, line 172
def init_suite_counts
  @suites_test_count = 0
  @suites_results = init_count_hash
end
set_metadata() click to toggle source
# File lib/minitest/reporters/ws/reporter.rb, line 145
def set_metadata
  @metadata = {
    test_options: unit_runner.options,
    test_count: unit_runner.test_count,
    #replace @timestamp?
    #start_time: unit_runner.suites_start_time.to_i
  }

  # updated after tests run
  #[runner.test_count,
  # runner.assertion_count,
  # runner.failures,
  # runner.errors,
  # runner.skips]
end
set_timestamp() click to toggle source
# File lib/minitest/reporters/ws/reporter.rb, line 161
def set_timestamp
  @timestamp = Time.now.to_i
end
to_metadata(runner, test_runner = nil) click to toggle source
# File lib/minitest/reporters/ws/reporter.rb, line 182
def to_metadata(runner, test_runner = nil)
  { minitest: metadata,
    test: test_runner,
    runner: runner }
end
unit_runner() click to toggle source

def global_client

::Minitest::Reporters::Ws.class_variable_get("@@client")

end

def set_global_client©

::Minitest::Reporters::Ws.class_variable_set("@@client", c)

end

def global_client?

::Minitest::Reporters::Ws.class_variable_defined?("@@client")

end

# File lib/minitest/reporters/ws/reporter.rb, line 141
def unit_runner
  ::Minitest::Unit.runner
end