Class: TestmetricsRspec

Inherits:
RSpec::Core::Formatters::BaseFormatter
  • Object
show all
Defined in:
lib/testmetrics_rspec/rspec2.rb,
lib/testmetrics_rspec/rspec3.rb,
lib/testmetrics_rspec/persist.rb

Defined Under Namespace

Modules: Persist

Constant Summary collapse

BRANCH_VARS =
["TRAVIS_BRANCH", "CIRCLE_BRANCH", "CI_COMMIT_REF_NAME", "BRANCH_NAME"]
SHA_VARS =
["TRAVIS_COMMIT", "CIRCLE_SHA1", "CI_COMMIT_SHA", "REVISION"]

Instance Method Summary collapse

Instance Method Details

#ci_platformObject



63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
# File 'lib/testmetrics_rspec/rspec2.rb', line 63

def ci_platform
  correct_var = SHA_VARS.find do |var| ENV[var] != nil end
  case correct_var
  when "TRAVIS_COMMIT"
    "Travis CI"
  when "CIRCLE_SHA1"
    "Circle CI"
  when "CI_COMMIT_SHA"
    "Gitlab CI"
  when "REVISION"
    "Semaphore CI"
  else
    "Unknown"
  end
end

#dump_summary(notification) ⇒ Object

This sends the “end” message to testmetrics



43
44
45
46
47
48
# File 'lib/testmetrics_rspec/rspec3.rb', line 43

def dump_summary(duration, example_count, failure_count, pending_count)
  # Send results in microseconds
  @results[:total_run_time] = (duration * 1_000_000).round(0)
  TestmetricsRspec::Persist.call(@results)
  super
end

#git_branchObject



52
53
54
55
# File 'lib/testmetrics_rspec/rspec2.rb', line 52

def git_branch
  correct_var = BRANCH_VARS.find do |var| ENV[var] != nil end
  correct_var.nil? ? "Unknown" : ENV[correct_var]
end

#git_shaObject



58
59
60
61
# File 'lib/testmetrics_rspec/rspec2.rb', line 58

def git_sha
  correct_var = SHA_VARS.find do |var| ENV[var] != nil end
  correct_var.nil? ? "Unknown" : ENV[correct_var]
end

#start(notification) ⇒ Object

This sends the “start” message to testmetrics



5
6
7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/testmetrics_rspec/rspec3.rb', line 5

def start(example_count)
  results = {
    key: ENV['TESTMETRICS_PROJECT_KEY'],
    branch: git_branch,
    sha: git_sha,
    metadata: {
      ruby_version: RUBY_VERSION,
      ci_platform: ci_platform
    },
    tests: []
  }
  TestmetricsRspec::Persist.call(results)
  super
end

#stop(notification) ⇒ Object



17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/testmetrics_rspec/rspec2.rb', line 17

def stop
  @results = {
    key: ENV['TESTMETRICS_PROJECT_KEY'],
    branch: git_branch,
    sha: git_sha,
    metadata: {
      ruby_version: RUBY_VERSION,
      ci_platform: ci_platform
    },
    tests: tests
  }
  super
end