jericho 0.1.4 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 172d70e0b67b820c3ed6d34a84af1a43d71a47d4
4
- data.tar.gz: 2799812aa95803014db3103ef3077f88188ed0f2
2
+ SHA256:
3
+ metadata.gz: b5a5435e3f39b0e0073eca55c1764891ccc566157f90c3f67085a50db4db2e10
4
+ data.tar.gz: ae906c5404be57c3ecddac037a0d040b160121982d7df0698be38dc95cbe6db3
5
5
  SHA512:
6
- metadata.gz: 2dc5a4d9b0627a91e804720fe9eb33423950ea96a133105dfc8922baf18cf836112fb6e1394ad85a7b0c71104d17d32470852c47c90c8316d09a7ca3079db9e0
7
- data.tar.gz: 6d3d59cad4f474a9f327cce37920c5e07814e23abebc0dd4d7abe005f84185f9af40e80313d8b4f96acf5f650ae5a8eb0bd69b36ccafc3a3824d98c739b58363
6
+ metadata.gz: 8bb1c5391b1a9be056aec25b199b6ba4564e6de2c2c83cbcecd916aede87fd48e396c618e97dc1526e58af50193d055caba529723d452c24bd2b0c978c485723
7
+ data.tar.gz: aa9c2695854962390d5159d1d572a588c93bd19e3adaec5552395f0ce6f9f6ced33a1e22db74938dc0db155f83d023336e557469fd5dcba44e9841bf0cf8ca9e
data/README.md CHANGED
@@ -21,9 +21,11 @@ Or install it yourself as:
21
21
  $ gem install jericho
22
22
 
23
23
  ## Usage
24
+ Small simple gem to clear you cucumber ```.json``` reports of redundant info and post results to Slack
24
25
 
25
- TODO: Write usage instructions here
26
+ Add ```purify``` and ```repent``` calls to ```at_exit``` hook of your test suite and enjoy
26
27
 
28
+ Note that gem uses ```slack_ruby_client``` and ```dotenv``` to work properly
27
29
  ## Development
28
30
 
29
31
  After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
@@ -38,4 +40,3 @@ Bug reports and pull requests are welcome on GitHub at https://github.com/[USERN
38
40
  ## License
39
41
 
40
42
  The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
41
-
data/jericho.gemspec CHANGED
@@ -33,4 +33,6 @@ Gem::Specification.new do |spec|
33
33
  spec.add_development_dependency "bundler", "~> 1.13"
34
34
  spec.add_development_dependency "rake", "~> 10.0"
35
35
  spec.add_development_dependency "rspec", "~> 3.0"
36
+ spec.add_runtime_dependency 'dotenv', "~> 2.7"
37
+ spec.add_runtime_dependency 'slack-ruby-client', "~> 0.14.1"
36
38
  end
@@ -1,3 +1,3 @@
1
1
  module Jericho
2
- VERSION = "0.1.4"
2
+ VERSION = "0.2.0"
3
3
  end
data/lib/jericho.rb CHANGED
@@ -1,7 +1,61 @@
1
1
  require "jericho/version"
2
2
 
3
3
  module Jericho
4
- def self.hello_world
5
- puts "A very epic hello world"
4
+ def self.reporter(parsed_report)
5
+ list_of_scenarios_results = {}
6
+ parsed_report.each do |element|
7
+ element['elements'].each do |scenario|
8
+ scenario_status = 'Passed'
9
+ scenario['steps'].each do |step|
10
+ scenario_status = 'Failed' if step['result']['status'] != 'passed'
11
+ end
12
+ list_of_scenarios_results[(scenario['name']).to_s] = scenario_status
13
+ end
14
+ end
15
+ list_of_scenarios_results
16
+ end
17
+
18
+ def self.comparison_reporter(list_of_scenarios_results1, list_of_scenarios_results2)
19
+ failed_tests = list_of_scenarios_results2.select { |k, v| v == 'Failed' }.map do |k, v|
20
+ {
21
+ test_name: k === '' ? k = 'Background' : k,
22
+ actual_status: v,
23
+ previous_status: list_of_scenarios_results1[k]
24
+ }.reject { |_k, v| v.nil? }
25
+ end
26
+
27
+ {
28
+ passed: list_of_scenarios_results2.size - failed_tests.size,
29
+ failed: failed_tests.size,
30
+ failed_tests: failed_tests
31
+ }
32
+ end
33
+
34
+ def self.purify
35
+ arr = Dir['*.json'].sort!
36
+ arr.length <= 1 ? parsed_report1 = {} : parsed_report1 = JSON.parse(File.read(arr[-2]))
37
+ parsed_report2 = JSON.parse(File.read(arr.last))
38
+ result = comparison_reporter(reporter(parsed_report1), reporter(parsed_report2))
39
+ end
40
+
41
+ def self.repent
42
+ client = Slack::Web::Client.new
43
+ client.chat_postMessage(
44
+ channel: '#autotests',
45
+ text:
46
+ "Test run results for #{$driver.caps[:deviceName]}, #{$driver.caps[:platformName]} #{$driver.caps[:platformVersion]}:
47
+ Passed tests count: #{result[:passed]},
48
+ Failed tests count: #{result[:failed]},",
49
+ attachments: [
50
+ {
51
+ text: "*Failed tests*:
52
+ #{'Test name and previous status:' + ("\n") + result[:failed_tests].map { |t| t.values_at(:test_name, :previous_status) }.join("\n") }
53
+ ",
54
+ color: 'danger'
55
+ }
56
+ ],
57
+ mrkdwn: true,
58
+ as_user: true,
59
+ )
6
60
  end
7
61
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jericho
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kirill
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-11-16 00:00:00.000000000 Z
11
+ date: 2019-04-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -52,6 +52,34 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '3.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: dotenv
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '2.7'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '2.7'
69
+ - !ruby/object:Gem::Dependency
70
+ name: slack-ruby-client
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: 0.14.1
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: 0.14.1
55
83
  description: '"Epic stuff"'
56
84
  email:
57
85
  - alexeyenko92@gmail.com
@@ -92,7 +120,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
92
120
  version: '0'
93
121
  requirements: []
94
122
  rubyforge_project:
95
- rubygems_version: 2.5.1
123
+ rubygems_version: 2.7.8
96
124
  signing_key:
97
125
  specification_version: 4
98
126
  summary: '"Epic gem"'