taf 0.3.8 → 0.3.9

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
2
  SHA256:
3
- metadata.gz: fdf9086f0e77fd7b425360f96cd7ce31eb009af1108cbaf87f2db5074741a247
4
- data.tar.gz: b1d008e6ad5536addcfb8968581f5c161d751a4e98688d6f435d2b39fd9cb66b
3
+ metadata.gz: bb63f2071b93028017fb466d80db1c21bef8f468788f6b3df344b3f9ba00b8ef
4
+ data.tar.gz: 8760a5584efe3a280b80f87886ce3e13511747f1226cf6501070529242b945d8
5
5
  SHA512:
6
- metadata.gz: d1983aa74c176c657c4aa4ebf13f49ef401f084f369f738a923102fe3d72cacc4fe054e63fba75fd7557c37739791d906c05a437ea9b0739b916a5ee2a2b3489
7
- data.tar.gz: c4062ab7558b5591d8ac095f7f17d1d881d2a2abc56cc29090046732e4a33dfbb25cabe6312e59cf0d402ed7767dcf1f17802d690d7864beef4fe93052ea3746
6
+ metadata.gz: 96ca2091cfe212d6364c9b2da8ed5a3cdcd1f054a2ae4d600815fa49925c2a024a63fe8f4d596bb9c5dfc2d9da336b26d5b6c605c37903351c273019e939f3be
7
+ data.tar.gz: 061a360b6a1a4fb0ebfbcc197b1eba9b1ce019891643709f115907a11a447e96797e2e47a65524830d66197f44a1669136977c97f9f6125a55321a994a75951a
data/bin/taf CHANGED
@@ -16,11 +16,10 @@ total_metrics = [total_passes, total_failures, total_skipped]
16
16
  # get the overall test suite end time
17
17
  ts_end_time = Taf::Report.current_time
18
18
 
19
+ total_time = TimeDifference.between(ts_end_time, ts_start_time).humanize || 0
19
20
  # output the overall test summary
20
- Taf::ReportSummary.overall_test_summary(ts_start_time, ts_end_time,
21
- total_metrics)
22
- Taf::JUnitReport.test_summary_junit(ts_start_time, ts_end_time,
23
- total_metrics)
21
+ Taf::ReportSummary.overall_test_summary(total_time, total_metrics)
22
+ Taf::TapReport.output
24
23
 
25
24
  # Exit status code.
26
25
  Process.exit(total_failures.zero? ? 0 : 1)
data/lib/taf/report.rb CHANGED
@@ -11,78 +11,50 @@ module Taf
11
11
  module Report
12
12
  # get the current time in the format Day - Month - Date - Time (HH:MM:SS)
13
13
  def self.current_time
14
- Time.new.strftime('%a %b %d %H:%M:%S %Z')
14
+ require 'time'
15
+ # Time.new.strftime('%a %b %d %H:%M:%S %Z')
16
+ Time.new.xmlschema
15
17
  end
16
18
 
17
19
  # print the test Step info to the test results file
18
- def self.print_test_step_header(test_file_name, test_step_idx, test_desc)
20
+ def self.print_test_step_header(test_step_idx, test_desc)
19
21
  @test_start_time = current_time
20
22
  Taf::MyLog.log.info "Test step: #{test_step_idx} : #{test_desc}"
21
-
22
- step = { 'id' => test_step_idx,
23
- 'classname' => "SuiteID: #{Taf::JSONParser.test_id}" \
24
- " Test Step: #{test_step_idx} #{test_desc}",
25
- 'name' => test_desc,
26
- 'file' => test_file_name }
27
-
28
- # output to console to show test step
29
- # puts step
30
-
31
- return unless test_file_name
32
-
33
- $testStep_xml ||= {}
34
- $testStep_xml[test_file_name] ||= {}
35
- $testStep_xml[test_file_name][test_step_idx] = step
36
23
  end
37
24
 
38
25
  # print the Pass / Fail status of a test to the test results file
39
- def self.test_pass_fail(pass_fail, test_file_name, test_step_idx, metrics)
40
- if pass_fail == true
26
+ def self.test_pass_fail(
27
+ pass_fail,
28
+ test_file_name,
29
+ test_step_idx,
30
+ test_step_description,
31
+ metrics
32
+ )
33
+ if pass_fail
34
+ Taf::MyLog.log.info "Test #{test_step_idx} has Passed ".green
41
35
  @current_test_fail = false
42
36
  metrics.stepPasses += 1
43
- Taf::MyLog.log.info "Test #{test_step_idx} has Passed ".green
37
+ Taf::TapReport.success(
38
+ test_file_name, test_step_idx, test_step_description
39
+ )
44
40
  elsif pass_fail == false
41
+ Taf::MyLog.log.warn "Test #{test_step_idx} has FAILED ".red
42
+ Taf::Screenshot.save_screenshot(test_step_idx)
45
43
  @current_test_fail = true
46
44
  metrics.stepFailures += 1
47
- Taf::MyLog.log.warn "Test #{test_step_idx} has FAILED ".red
48
- sc_file_name = Taf::Screenshot.save_screenshot(test_step_idx)
49
- failstep = {
50
- 'message' => "SuiteID: #{Taf::JSONParser.test_id}" \
51
- " Test Step: #{test_step_idx} Test has" \
52
- " FAILED - Check logs, see Screenshot: #{sc_file_name}",
53
- 'type' => 'FAILURE',
54
- 'file' => test_file_name
55
- }
56
- # output to console to show test step failure
57
- # puts failstep
58
-
59
- return unless test_file_name
60
-
61
- $failtestStep_xml ||= {}
62
- $failtestStep_xml[test_file_name] ||= []
63
- $failtestStep_xml[test_file_name][test_step_idx] = failstep
45
+ Taf::TapReport.failure(
46
+ test_file_name, test_step_idx, test_step_description
47
+ )
64
48
  else
49
+ Taf::MyLog.log.info "Test #{test_step_idx} no checks performed ".blue
65
50
  @current_test_fail = false
66
51
  metrics.stepSkipped += 1
67
- Taf::MyLog.log.info "Test #{test_step_idx} no checks performed ".blue
68
- skipstep = {
69
- 'message' => "SuiteID: #{Taf::JSONParser.test_id}" \
70
- " Test Step: #{test_step_idx} No" \
71
- ' checks performed - Check logs',
72
- 'type' => 'SKIPPED',
73
- 'file' => test_file_name
74
- }
75
- # output to console to show test step failure
76
- # puts skipstep
77
-
78
- return unless test_file_name
79
-
80
- $skiptestStep_xml ||= {}
81
- $skiptestStep_xml[test_file_name] ||= []
82
- $skiptestStep_xml[test_file_name][test_step_idx] = skipstep
52
+ Taf::TapReport.skip(
53
+ test_file_name, test_step_idx, test_step_description
54
+ )
83
55
  end
84
- test_end_time = current_time
85
56
 
57
+ test_end_time = current_time
86
58
  test_duration = TimeDifference.between(
87
59
  test_end_time, @test_start_time
88
60
  ).humanize || 0
@@ -92,6 +64,7 @@ module Taf
92
64
  # check if the test failure threshold has been reached for total failures
93
65
  # or consecutive failures.
94
66
  # If a certain number of consecutive tests fail then throw an exception
67
+
95
68
  def self.check_failure_threshold(test_file_name)
96
69
  consecutive_fail_threshold = 3
97
70
  if @current_test_fail
@@ -39,13 +39,10 @@ module Taf
39
39
  end
40
40
 
41
41
  # output the overall test results summary
42
- def self.overall_test_summary(ts_start_time, ts_end_time, total_metrics)
42
+ def self.overall_test_summary(total_time, total_metrics)
43
43
  print_test_summary
44
- t_time = TimeDifference.between(ts_end_time, ts_start_time).humanize || 0
45
44
 
46
- Taf::MyLog.log.info "Total Tests started at: #{ts_start_time}"
47
- Taf::MyLog.log.info "Total Tests finished at: #{ts_end_time}"
48
- Taf::MyLog.log.info "Total Tests duration: #{t_time}"
45
+ Taf::MyLog.log.info "Toatal Duration: #{total_time}"
49
46
  Taf::MyLog.log.info "Total Tests Passed: #{total_metrics[0]}".green
50
47
  Taf::MyLog.log.info "Total Tests Failed: #{total_metrics[1]}".red
51
48
  Taf::MyLog.log.info "Total Tests Skipped: #{total_metrics[2]}".blue
@@ -0,0 +1,80 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Created on 13 June 2019
4
+ # @author: Andy Perrett
5
+ #
6
+ # Versions:
7
+ # 1.0 - Baseline
8
+ #
9
+
10
+ module Taf
11
+ # tap_report.rb - methods for outputting to a tap report file.
12
+ class TapReport
13
+ include Singleton
14
+
15
+ def self.success(filename, index, description)
16
+ step = Taf::TestSteps::SuccessStep.new(index: index,
17
+ description: description)
18
+ add_step filename, step
19
+ end
20
+
21
+ def self.failure(filename, index, description)
22
+ step = Taf::TestSteps::FailureStep.new(index: index,
23
+ description: description)
24
+ add_step filename, step
25
+ end
26
+
27
+ def self.skip(filename, index, description)
28
+ step = Taf::TestSteps::SkipStep.new(index: index,
29
+ description: description)
30
+ add_step filename, step
31
+ end
32
+
33
+ def self.add_step(filename, step)
34
+ instance.tests[filename] ||= []
35
+ instance.tests[filename] << step
36
+ end
37
+
38
+ def self.output
39
+ project_id = Taf::JSONParser.project_id.delete(' ')
40
+ ts_dir = File.join('Results', project_id)
41
+ file = File.open("#{ts_dir}/report_#{SecureRandom.uuid}.tap", 'w')
42
+ total_steps = 0
43
+ successes = 0
44
+ failures = 0
45
+ instance.tests.each do |filename, steps|
46
+ file.write("# #{filename}\n")
47
+ steps.each do |step|
48
+ total_steps += 1
49
+ if step.is_a?(Taf::TestSteps::SkipStep)
50
+ outstr = "ok #{total_steps} #{step.description} # SKIP"
51
+ else
52
+ if step.is_a?(Taf::TestSteps::SuccessStep)
53
+ outstr = 'ok'
54
+ successes += 1
55
+ elsif step.is_a?(Taf::TestSteps::FailureStep)
56
+ outstr = 'not ok'
57
+ failures += 1
58
+ else
59
+ outstr = '# test error'
60
+ end
61
+ outstr += " #{total_steps} #{step.description} - Step #{step.index}"
62
+ end
63
+
64
+ file.write(outstr + "\n")
65
+ end
66
+ end
67
+ file.write("1..#{total_steps}\n")
68
+ file.write("# tests #{total_steps}\n")
69
+ file.write("# pass #{successes}\n")
70
+ file.write("# fail #{failures}\n")
71
+ file.close
72
+ end
73
+
74
+ def initialize
75
+ @tests = {}
76
+ end
77
+
78
+ attr_accessor :tests
79
+ end
80
+ end
@@ -35,9 +35,6 @@ module Taf
35
35
  # create project folders - these only need creating once per test suite
36
36
  Taf::CreateDirectories.construct_projectdirs
37
37
 
38
- # get the test case start time
39
- tc_start = Taf::Report.current_time
40
-
41
38
  Taf::Browser.open_browser
42
39
 
43
40
  begin
@@ -55,16 +52,9 @@ module Taf
55
52
  Taf::MyLog.log.warn e
56
53
  end
57
54
 
58
- # get the test case end time
59
- tc_end = Taf::Report.current_time
60
-
61
- # output the test results summary for the current test case,
62
- # pass in the test file number to save the summary against it's
63
- # testfile
55
+ # output the test results summary to console
64
56
  Taf::ReportSummary.test_step_summary(test_file_name, test_file_idx,
65
57
  metrics)
66
- Taf::JUnitReport.test_step_summary_xml(test_file_name, test_file_idx,
67
- tc_start, tc_end, metrics)
68
58
 
69
59
  # close the browser if created
70
60
  Taf::Browser.b.quit
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Taf
4
+ module TestSteps
5
+ class FailureStep < Step
6
+ end
7
+ end
8
+ end
@@ -7,10 +7,10 @@ module Taf
7
7
  class CheckBoxdata < Base
8
8
  register :check_box_data
9
9
 
10
- def perform
11
- elms = %i[textarea text_field iframe]
10
+ def check
11
+ @elms = %i[textarea text_field iframe]
12
12
 
13
- found_box = elms.map do |elm|
13
+ found_box = @elms.map do |elm|
14
14
  Taf::Browser.b.send(elm, "#{@locate}": @value).exists?
15
15
  end.compact
16
16
 
@@ -19,7 +19,12 @@ module Taf
19
19
  index = found_box.index(true)
20
20
  return unless index
21
21
 
22
- ele = Taf::Browser.b.send(elms[index], "#{@locate}": @value)
22
+ index
23
+ end
24
+
25
+ def perform
26
+ index = check
27
+ ele = Taf::Browser.b.send(@elms[index], "#{@locate}": @value)
23
28
 
24
29
  ele.wait_until(&:exists?)
25
30
  (ele.value == @value2)
@@ -7,10 +7,10 @@ module Taf
7
7
  class ClickButton < Base
8
8
  register :click_button
9
9
 
10
- def perform
11
- elms = %i[button span a div link image h1 h2 h3 h4]
10
+ def check
11
+ @elms = %i[button span a div link image h1 h2 h3 h4]
12
12
 
13
- found_button = elms.map do |elm|
13
+ found_button = @elms.map do |elm|
14
14
  Taf::Browser.b.send(elm, "#{@locate}": @value).exists?
15
15
  end.compact
16
16
 
@@ -19,7 +19,12 @@ module Taf
19
19
  index = found_button.index(true)
20
20
  return unless index
21
21
 
22
- Taf::Browser.b.send(elms[index], "#{@locate}": @value)
22
+ index
23
+ end
24
+
25
+ def perform
26
+ index = check
27
+ Taf::Browser.b.send(@elms[index], "#{@locate}": @value)
23
28
  .wait_until(&:exists?).click
24
29
  Taf::MyLog.log.info("Button: #{@value} has been selected")
25
30
  true
@@ -7,12 +7,10 @@ module Taf
7
7
  class WriteBoxdata < Base
8
8
  register :write_box_data
9
9
 
10
- def perform
11
- txt = @value2
12
- txt = ENV[txt.to_s] if ENV[txt.to_s]
13
- elms = %i[textarea text_field iframe]
10
+ def check
11
+ @elms = %i[textarea text_field iframe]
14
12
 
15
- found_box = elms.map do |elm|
13
+ found_box = @elms.map do |elm|
16
14
  Taf::Browser.b.send(elm, "#{@locate}": @value).exists?
17
15
  end.compact
18
16
 
@@ -21,7 +19,14 @@ module Taf
21
19
  index = found_box.index(true)
22
20
  return unless index
23
21
 
24
- Taf::Browser.b.send(elms[index], "#{@locate}": @value)
22
+ index
23
+ end
24
+
25
+ def perform
26
+ txt = @value2
27
+ txt = ENV[txt.to_s] if ENV[txt.to_s]
28
+ index = check
29
+ Taf::Browser.b.send(@elms[index], "#{@locate}": @value)
25
30
  .wait_until(&:exists?).send_keys txt
26
31
  Taf::MyLog.log.info("Textbox: #{@value} has correct value: #{txt}")
27
32
  true
@@ -25,8 +25,7 @@ module Taf
25
25
  if Taf::Browser.b.title.eql?(b_title)
26
26
  Taf::Browser.b.text_field(id: user_elm).wait_until(&:exists?)
27
27
  .set user
28
- Taf::Browser.b.text_field(id: pass_elm).wait_until(&:exists?)
29
- .set pass
28
+ Taf::Browser.b.text_field(id: pass_elm).set pass
30
29
  button = 'Sign in' || 'Log in'
31
30
  Taf::Browser.b.button(value: button).wait_until(&:exists?).click
32
31
  sleep 1
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Taf
4
+ module TestSteps
5
+ class SkipStep < Step
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Taf
4
+ module TestSteps
5
+ # steps.rb - methods for collecting steps info for tap report file.
6
+ class Step
7
+ attr_reader :index, :description
8
+
9
+ def initialize(
10
+ index:,
11
+ description:
12
+ )
13
+ @index = index
14
+ @description = description
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Taf
4
+ module TestSteps
5
+ class SuccessStep < Step
6
+ end
7
+ end
8
+ end
@@ -18,7 +18,7 @@ module Taf
18
18
  def self.process_test_steps(test_file_name, test_step_idx, step_attributes,
19
19
  metrics)
20
20
  # print the test step information
21
- Taf::Report.print_test_step_header(test_file_name, test_step_idx,
21
+ Taf::Report.print_test_step_header(test_step_idx,
22
22
  step_attributes[:testdesc])
23
23
  runtest = step_attributes[:skipTestCase]
24
24
  step_function = step_attributes[:testFunction]
@@ -26,7 +26,13 @@ module Taf
26
26
 
27
27
  if handler.respond_to?(:perform)
28
28
  func = handler.perform(step_attributes) if runtest == false
29
- Taf::Report.test_pass_fail(func, test_file_name, test_step_idx, metrics)
29
+ Taf::Report.test_pass_fail(
30
+ func,
31
+ test_file_name,
32
+ test_step_idx,
33
+ step_attributes[:testdesc],
34
+ metrics
35
+ )
30
36
  Taf::Report.check_failure_threshold(test_file_name)
31
37
  return true
32
38
  else
data/lib/taf/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Taf
4
- VERSION = '0.3.8'
4
+ VERSION = '0.3.9'
5
5
  end
data/lib/taf.rb CHANGED
@@ -14,7 +14,6 @@ module Taf
14
14
  require 'fileutils'
15
15
  require 'logger'
16
16
  require 'net/ping'
17
- require 'nokogiri'
18
17
  require 'time_difference'
19
18
  require 'colored'
20
19
  require 'optparse'
@@ -26,7 +25,7 @@ module Taf
26
25
  require 'taf/cmd_line'
27
26
  require 'taf/create_directories'
28
27
  require 'taf/json_parser'
29
- require 'taf/junit_report'
28
+ require 'taf/tap_report'
30
29
  require 'taf/my_log'
31
30
  require 'taf/parser'
32
31
  require 'taf/report'
@@ -34,6 +33,10 @@ module Taf
34
33
  require 'taf/screenshot'
35
34
  require 'taf/test_engine'
36
35
  require 'taf/test_steps'
36
+ require 'taf/test_steps/step'
37
+ require 'taf/test_steps/success_step'
38
+ require 'taf/test_steps/failure_step'
39
+ require 'taf/test_steps/skip_step'
37
40
  require 'taf/test_steps/handlers/base'
38
41
  require 'taf/version'
39
42
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: taf
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.8
4
+ version: 0.3.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andy Perrett
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-06-10 00:00:00.000000000 Z
11
+ date: 2019-06-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -94,20 +94,6 @@ dependencies:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
96
  version: '2.0'
97
- - !ruby/object:Gem::Dependency
98
- name: nokogiri
99
- requirement: !ruby/object:Gem::Requirement
100
- requirements:
101
- - - "~>"
102
- - !ruby/object:Gem::Version
103
- version: '1.8'
104
- type: :runtime
105
- prerelease: false
106
- version_requirements: !ruby/object:Gem::Requirement
107
- requirements:
108
- - - "~>"
109
- - !ruby/object:Gem::Version
110
- version: '1.8'
111
97
  - !ruby/object:Gem::Dependency
112
98
  name: rubygems-update
113
99
  requirement: !ruby/object:Gem::Requirement
@@ -178,14 +164,15 @@ files:
178
164
  - lib/taf/cmd_line.rb
179
165
  - lib/taf/create_directories.rb
180
166
  - lib/taf/json_parser.rb
181
- - lib/taf/junit_report.rb
182
167
  - lib/taf/my_log.rb
183
168
  - lib/taf/parser.rb
184
169
  - lib/taf/report.rb
185
170
  - lib/taf/report_summary.rb
186
171
  - lib/taf/screenshot.rb
172
+ - lib/taf/tap_report.rb
187
173
  - lib/taf/test_engine.rb
188
174
  - lib/taf/test_steps.rb
175
+ - lib/taf/test_steps/failure_step.rb
189
176
  - lib/taf/test_steps/handlers/base.rb
190
177
  - lib/taf/test_steps/handlers/base/browser_back.rb
191
178
  - lib/taf/test_steps/handlers/base/browser_forward.rb
@@ -211,6 +198,9 @@ files:
211
198
  - lib/taf/test_steps/handlers/base/select_dropdown.rb
212
199
  - lib/taf/test_steps/handlers/base/send_special_keys.rb
213
200
  - lib/taf/test_steps/handlers/base/write_box_data.rb
201
+ - lib/taf/test_steps/skip_step.rb
202
+ - lib/taf/test_steps/step.rb
203
+ - lib/taf/test_steps/success_step.rb
214
204
  - lib/taf/version.rb
215
205
  homepage: https://github.com/Aperrett/TAF
216
206
  licenses:
@@ -1,73 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # Created on 20 Sept 2017
4
- # @author: Andy Perrett
5
- #
6
- # Versions:
7
- # 1.0 - Baseline
8
- #
9
- module Taf
10
- # junit_report.rb - methods for writing to the summary xml junit report.
11
- module JUnitReport
12
- # holds printable test report summary for all the executed tests
13
- @test_step_report_summary2 = []
14
- # construct the test suite header for junit
15
- def self.test_step_summary_xml(test_file_name, test_file_name_index,
16
- tc_start, tc_end, metrics)
17
- number_test_steps = [metrics.stepFailures, metrics.stepPasses,
18
- metrics.stepSkipped].sum
19
- @test_step_report_summary2[test_file_name_index] = {
20
- 'classname' => test_file_name,
21
- 'name' => test_file_name,
22
- 'assertions' => number_test_steps,
23
- 'failures' => metrics.stepFailures,
24
- 'tests' => metrics.stepPasses,
25
- 'skipped' => metrics.stepSkipped,
26
- 'time' => TimeDifference.between(tc_end, tc_start).in_seconds
27
- }
28
- end
29
-
30
- def self.test_summary_junit(ts_start_time, ts_end_time, total_metrics)
31
- # output to XML file format for Junit for CI.
32
- builder = Nokogiri::XML::Builder.new(encoding: 'UTF-8') do |xml|
33
- testsuite_attrs = {
34
- 'classname' => Taf::CMDLine.tests_folder.to_s,
35
- 'name' => Taf::CMDLine.tests_folder.to_s,
36
- 'tests' => total_metrics[0].to_s,
37
- 'failures' => total_metrics[1].to_s,
38
- 'timestamp' => ts_start_time.to_s,
39
- 'skipped' => total_metrics[2].to_s,
40
- 'time' => TimeDifference.between(ts_end_time, ts_start_time)
41
- .in_seconds
42
- }
43
- xml.testsuites(testsuite_attrs) do |testsuites|
44
- @test_step_report_summary2.each do |test_step_report_summary2|
45
- testsuites.testsuite(test_step_report_summary2) do |testsuite|
46
- $testStep_xml[test_step_report_summary2['name']]
47
- .each do |test_step_idx, test_step_xml|
48
- testsuite.testcase(test_step_xml) do |testcase|
49
- failure = $failtestStep_xml
50
- &.[](test_step_report_summary2['name'])&.[](test_step_idx)
51
- skipped = $skiptestStep_xml
52
- &.[](test_step_report_summary2['name'])&.[](test_step_idx)
53
- testcase.failure(failure) if failure
54
- testcase.skipped(skipped) if skipped
55
- end
56
- end
57
- end
58
- end
59
- end
60
- end
61
-
62
- # the test suite summary is a XML report generated will be called
63
- # 'report_uuid.xml'
64
- project_id = Taf::JSONParser.project_id.delete(' ')
65
- xml_dir = File.join('Results', project_id)
66
- ts_xml_file = "#{xml_dir}/report_#{SecureRandom.uuid}.xml"
67
-
68
- ts_summary_file_xml = File.open(ts_xml_file, 'w')
69
- ts_summary_file_xml.write builder.to_xml
70
- ts_summary_file_xml.close
71
- end
72
- end
73
- end