results_keeper 0.6.0 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/test_data_generator.rb +67 -0
  3. metadata +2 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 29e6f515750e584c6a8eb7ebf99c8d0953231c43
4
- data.tar.gz: 0fe308d8e3a3729f2fce4af7315a0db59edadae0
3
+ metadata.gz: 8c9877f4580c196f8adfe980e5b4ac09b3443147
4
+ data.tar.gz: 223977ee86856fbe16f20ee94873a896143ddd9b
5
5
  SHA512:
6
- metadata.gz: efdd084b8978c642b768c97b73f7a8dc34be0000d29d66dd487d7b425b9ead683b62ebd68116f0354895a42e78ea7fbab10f87d58ff9d780a74f68276e4e1f4a
7
- data.tar.gz: 8c115a544bf00d172e5fb33cc7be73c19b29133a4b6c3feae431ba81fbb0a3e427de3231006d61843d9737e915c9319d6a5e287de9c18bafbbd9dea8d3a3567f
6
+ metadata.gz: 1d6fe87a3cd4978e129c0a20ceac7f43f9d7394983bc7e97c26fe0b7106119be55eeb7e348616d5f9cbd8ec299019fd86a56a2bac20a85c83d967e74fbebb736
7
+ data.tar.gz: 5c8e2e0b975a912931474341aeba577b3aa9093a99aa729e6d2039328893aa2426bf52ec1ebc114b83fb6fc70b47d48d8f3cccee866317554234a1bb809dd961
@@ -0,0 +1,67 @@
1
+ class TestDataGenerator
2
+
3
+ SCENARIO_HOOKS = 'Before hook After hook Around hook'
4
+
5
+ attr_reader :project_name, :revision_name
6
+
7
+ def initialize
8
+ @project_name ||= ENV['RK_PROJECT_NAME'] || default_project_name
9
+ @revision_name ||= ENV['RK_REVISION_NAME'] || "Result for #{Time.now}"
10
+ end
11
+
12
+ def revision_data
13
+ { revision: @revision_name, project: @project_name }
14
+ end
15
+
16
+ def revision_completed_data
17
+ { revision: @revision_name, project: @project_name, completed: 1 }
18
+ end
19
+
20
+ def test_data(scenario, revision)
21
+ test_duration = Time.now - @test_started_at
22
+ scenario_error = scenario.exception.message if scenario.exception
23
+ run_path = "cucumber #{scenario.location.file}:#{scenario.location.line}"
24
+ {
25
+ name: scenario.name,
26
+ status: scenario.status,
27
+ feature_name: scenario.feature.name,
28
+ run_path: run_path,
29
+ tags: scenario.tags.map(&:name).join(', '),
30
+ error: scenario_error,
31
+ revision_id: revision['revision_id'],
32
+ steps: scenario_steps(scenario),
33
+ duration: test_duration
34
+ }
35
+ end
36
+
37
+ def test_started(scenarion=nil)
38
+ @test_started_at = Time.now
39
+ end
40
+
41
+ private
42
+
43
+ def step_keyword(test_step)
44
+ test_step.source.last.keyword
45
+ end
46
+
47
+ def scenario_steps(scenario)
48
+ steps = []
49
+ scenario.test_steps.each do |test_step|
50
+ if test_step.to_s.include? 'Cucumber::Core::Test'
51
+ steps << "#{step_keyword(test_step)} #{test_step.name.to_s}" unless SCENARIO_HOOKS.include?(test_step.name.to_s)
52
+ else
53
+ steps << "#{step_keyword(test_step)} #{test_step.to_s}" unless SCENARIO_HOOKS.include?(test_step.to_s)
54
+ end
55
+ end
56
+ steps
57
+ end
58
+
59
+
60
+ def default_project_name
61
+ begin
62
+ `pwd`.strip.split('/').last
63
+ rescue
64
+ 'Default'
65
+ end
66
+ end
67
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: results_keeper
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.0
4
+ version: 0.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ivan Kozakov
@@ -47,6 +47,7 @@ extra_rdoc_files: []
47
47
  files:
48
48
  - lib/results_keeper.rb
49
49
  - lib/string.rb
50
+ - lib/test_data_generator.rb
50
51
  homepage: https://bitbucket.org/results_keeper/results_keeper_cucumber/
51
52
  licenses:
52
53
  - MIT