Module: Jericho

Defined in:
lib/jericho.rb,
lib/jericho/version.rb

Constant Summary collapse

VERSION =
"0.2.3"

Class Method Summary collapse

Class Method Details

.comparison_reporter(list_of_scenarios_reports1, list_of_scenarios_reports2) ⇒ Object



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/jericho.rb', line 18

def self.comparison_reporter(list_of_scenarios_reports1, list_of_scenarios_reports2)
  failed_tests = list_of_scenarios_reports2.select { |k, v| v == 'Failed' }.map do |k, v|
    {
      test_name: k === '' ? k = 'Background' : k,
      actual_status: v,
      previous_status: list_of_scenarios_reports1[k]
    }.reject { |_k, v| v.nil? }
  end

  {
    passed: list_of_scenarios_reports2.size - failed_tests.size,
    failed: failed_tests.size,
    failed_tests: failed_tests
  }
end

.purifyObject



34
35
36
37
38
39
# File 'lib/jericho.rb', line 34

def self.purify
  arr = Dir['*.json'].sort!
  arr.length <= 1 ? parsed_report1 = {} : parsed_report1 = JSON.parse(File.read(arr[-2]))
  parsed_report2 = JSON.parse(File.read(arr.last))
  purify = comparison_reporter(reporter(parsed_report1), reporter(parsed_report2))
end

.repentObject



41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
# File 'lib/jericho.rb', line 41

def self.repent
  client = Slack::Web::Client.new
  client.chat_postMessage(
    channel: '#autotests',
    text:
    "Test run purifys for #{$driver.caps[:deviceName]}, #{$driver.caps[:platformName]} #{$driver.caps[:platformVersion]}:
    Passed tests count: #{purify[:passed]},
    Failed tests count: #{purify[:failed]},",
    attachments: [
      {
       text: "*Failed tests*:
#{'Test name and previous status:' + ("\n") + purify[:failed_tests].map { |t| t.values_at(:test_name, :previous_status) }.join("\n") }
        ",
      color: 'danger'
    }
    ],
    mrkdwn: true,
    as_user: true,
  )
end

.reporter(parsed_report) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
16
# File 'lib/jericho.rb', line 4

def self.reporter(parsed_report)
  list_of_scenarios_reports = {}
  parsed_report.each do |element|
    element['elements'].each do |scenario|
      scenario_status = 'Passed'
      scenario['steps'].each do |step|
        scenario_status = 'Failed' if step['result']['status'] != 'passed'
      end
      list_of_scenarios_reports[(scenario['name']).to_s] = scenario_status
    end
  end
  list_of_scenarios_reports
end