testability-driver 1.1.1 → 1.2.1
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.
- data/config/sut_parameters.rb +21 -8
- data/config/tdriver_custom_error_recovery.rb +83 -0
- data/ext/extconf.rb +3 -2
- data/ext/native_extensions.c +60 -2
- data/lib/tdriver-devtools/behaviour/old/xml/example/flick-example.rb +2 -105
- data/lib/tdriver/base/behaviour/factory.rb +154 -89
- data/lib/tdriver/base/behaviour/factory_new.rb +409 -0
- data/lib/tdriver/base/errors.rb +3 -3
- data/lib/tdriver/base/state_object.rb +85 -22
- data/lib/tdriver/base/sut/adapter.rb +26 -0
- data/lib/tdriver/base/sut/controller.rb +1 -1
- data/lib/tdriver/base/sut/generic/behaviours/application.rb +89 -118
- data/lib/tdriver/base/sut/generic/behaviours/find.rb +67 -62
- data/lib/tdriver/base/sut/generic/behaviours/sut.rb +296 -187
- data/lib/tdriver/base/sut/generic/behaviours/switchbox_behaviour.rb +7 -7
- data/lib/tdriver/base/sut/generic/commands/application.rb +366 -295
- data/lib/tdriver/base/sut/sut.rb +19 -3
- data/lib/tdriver/base/test_object/abstract.rb +41 -21
- data/lib/tdriver/base/test_object/adapter.rb +62 -9
- data/lib/tdriver/base/test_object/behaviours/syncronization.rb +10 -6
- data/lib/tdriver/base/test_object/behaviours/test_object.rb +84 -47
- data/lib/tdriver/base/test_object/factory.rb +124 -68
- data/lib/tdriver/base/test_object/loader.rb +3 -4
- data/lib/tdriver/base/test_object/verification.rb +3 -3
- data/lib/tdriver/base/test_object/xml/adapter.rb +734 -0
- data/lib/tdriver/loader.rb +12 -0
- data/lib/tdriver/report/error_recovery/tdriver_error_recovery.rb +3 -2
- data/lib/tdriver/report/error_recovery/tdriver_error_recovery_settings.rb +14 -14
- data/lib/tdriver/report/report.rb +4 -8
- data/lib/tdriver/report/report_api.rb +9 -0
- data/lib/tdriver/report/report_crash_file_capture.rb +4 -4
- data/lib/tdriver/report/report_creator.rb +57 -35
- data/lib/tdriver/report/report_cucumber.rb +1 -1
- data/lib/tdriver/report/report_cucumber_listener.rb +5 -158
- data/lib/tdriver/report/report_cucumber_reporter.rb +7 -161
- data/lib/tdriver/report/report_execution_statistics.rb +4 -4
- data/lib/tdriver/report/report_file_capture.rb +5 -5
- data/lib/tdriver/report/report_grouping.rb +24 -22
- data/lib/tdriver/report/report_junit_xml.rb +5 -5
- data/lib/tdriver/report/report_test_case_run.rb +31 -22
- data/lib/tdriver/report/report_test_run.rb +107 -104
- data/lib/tdriver/report/report_writer.rb +150 -83
- data/lib/tdriver/tdriver.rb +147 -103
- data/lib/tdriver/util/common/boolean.rb +51 -0
- data/lib/tdriver/util/common/crc16.rb +110 -68
- data/lib/tdriver/util/common/hash.rb +63 -7
- data/lib/tdriver/util/common/kernel.rb +46 -1
- data/lib/tdriver/util/common/loader.rb +1 -0
- data/lib/tdriver/util/common/object.rb +20 -8
- data/lib/tdriver/util/common/string.rb +21 -2
- data/lib/tdriver/util/logger/logger.rb +4 -4
- data/lib/tdriver/util/parameter/loader.rb +2 -19
- data/lib/tdriver/util/parameter/parameter.rb +874 -177
- data/lib/tdriver/util/plugin/service.rb +1 -1
- data/lib/tdriver/util/recorder/recorder.rb +7 -1
- data/lib/tdriver/util/xml/abstraction.rb +13 -1
- data/lib/tdriver/util/xml/parsers/nokogiri/abstraction.rb +63 -10
- data/lib/tdriver/util/xml/parsers/nokogiri/attribute.rb +8 -2
- data/lib/tdriver/util/xml/parsers/nokogiri/document.rb +16 -3
- data/lib/tdriver/util/xml/parsers/nokogiri/node.rb +36 -32
- data/lib/tdriver/util/xml/parsers/nokogiri/nodeset.rb +19 -22
- data/lib/tdriver/util/xml/xml.rb +147 -32
- data/lib/tdriver/verify/verify.rb +1112 -289
- data/lib/tdriver/version.rb +1 -1
- data/xml/templates/generic.xml +14 -2
- metadata +51 -24
- data/lib/tdriver/util/parameter/parameter_hash.rb +0 -104
- data/lib/tdriver/util/parameter/parameter_new.rb +0 -869
- data/lib/tdriver/util/parameter/parameter_template.rb +0 -120
- data/lib/tdriver/util/parameter/parameter_user_api.rb +0 -116
- data/lib/tdriver/util/parameter/parameter_xml.rb +0 -261
data/lib/tdriver/loader.rb
CHANGED
@@ -42,4 +42,16 @@ require File.expand_path( File.join( File.dirname( __FILE__ ), 'base/loader.rb'
|
|
42
42
|
# verify module
|
43
43
|
require File.expand_path( File.join( File.dirname( __FILE__ ), 'verify/verify.rb' ) )
|
44
44
|
|
45
|
+
# reporting modules
|
46
|
+
if $parameters[ :enable_reporter, true ].true?
|
45
47
|
|
48
|
+
require File.expand_path( File.join( File.dirname( __FILE__ ), 'report/report.rb' ) )
|
49
|
+
|
50
|
+
end
|
51
|
+
|
52
|
+
# load report api for continuous verification reporting purposes
|
53
|
+
if $parameters[ :report_attach_continuous_verification_to_reporter, false ].true?
|
54
|
+
|
55
|
+
require File.expand_path( File.join( File.dirname( __FILE__ ), 'report/report_api' ) )
|
56
|
+
|
57
|
+
end
|
@@ -118,8 +118,9 @@ module TDriverErrorRecovery
|
|
118
118
|
# false for failed ping
|
119
119
|
# === raises
|
120
120
|
def ping_device(current_sut)
|
121
|
-
begin
|
122
|
-
|
121
|
+
begin
|
122
|
+
ui_xml=current_sut.get_ui_dump
|
123
|
+
if !ui_xml
|
123
124
|
MobyUtil::Logger.instance.log "behaviour" , "WARNING;Device ping failed"
|
124
125
|
false
|
125
126
|
else
|
@@ -47,50 +47,50 @@ class TDriverErrorRecoverySettings
|
|
47
47
|
# === returns
|
48
48
|
# === raises
|
49
49
|
def read_settings()
|
50
|
-
@error_recovery_enabled=
|
50
|
+
@error_recovery_enabled= $parameters[ :error_recovery_enabled ]
|
51
51
|
Kernel::raise MobyBase::BehaviourError.new("error recovery", "error recovery enabled parameter not defined in tdriver_parameters.xml") if @error_recovery_enabled == nil
|
52
52
|
|
53
|
-
@ats4_error_recovery_enabled=
|
53
|
+
@ats4_error_recovery_enabled= $parameters[ :ats4_error_recovery_enabled ]
|
54
54
|
Kernel::raise MobyBase::BehaviourError.new("error recovery", "ats4 error recovery enabled parameter not defined in tdriver_parameters.xml") if @ats4_error_recovery_enabled == nil
|
55
55
|
|
56
|
-
@wait_time_for_ats4_error_recovery=
|
56
|
+
@wait_time_for_ats4_error_recovery= $parameters[ :wait_time_for_ats4_error_recovery ]
|
57
57
|
Kernel::raise MobyBase::BehaviourError.new("error recovery", "ats4 error recovery wait time parameter not defined in tdriver_parameters.xml") if @wait_time_for_ats4_error_recovery == nil
|
58
58
|
|
59
|
-
@ping_connection=
|
59
|
+
@ping_connection= $parameters[ :ping_connection ]
|
60
60
|
Kernel::raise MobyBase::BehaviourError.new("error recovery", "ping connection parameter not defined in tdriver_parameters.xml") if @ping_connection == nil
|
61
61
|
|
62
|
-
@reconnect_device=
|
62
|
+
@reconnect_device= $parameters[ :reconnect_device ]
|
63
63
|
Kernel::raise MobyBase::BehaviourError.new("error recovery", "reconnect device patameter not defined in tdriver_parameters.xml") if @reconnect_device == nil
|
64
64
|
|
65
|
-
@reconnect_attempts=
|
65
|
+
@reconnect_attempts= $parameters[ :reconnect_attempts ]
|
66
66
|
Kernel::raise MobyBase::BehaviourError.new("error recovery", "reconnect attempts patameter not defined in tdriver_parameters.xml") if @reconnect_attempts == nil
|
67
67
|
|
68
|
-
str_parameter=
|
68
|
+
str_parameter= $parameters[ :error_recovery_monitored_sut_ids ]
|
69
69
|
Kernel::raise MobyBase::BehaviourError.new("error recovery", "error_recovery_monitored_sut_ids patameter not defined in tdriver_parameters.xml") if str_parameter == nil
|
70
70
|
@monitored_suts=str_parameter.split('|')
|
71
71
|
|
72
72
|
|
73
73
|
end
|
74
74
|
def get_ats4_error_recovery_enabled
|
75
|
-
|
75
|
+
$parameters[ :ats4_error_recovery_enabled ]
|
76
76
|
end
|
77
77
|
def get_wait_time_for_ats4_error_recovery
|
78
|
-
|
78
|
+
$parameters[ :wait_time_for_ats4_error_recovery ]
|
79
79
|
end
|
80
80
|
def get_error_recovery_enabled
|
81
|
-
|
81
|
+
$parameters[ :error_recovery_enabled ]
|
82
82
|
end
|
83
83
|
def get_ping_connection
|
84
|
-
|
84
|
+
$parameters[ :ping_connection ]
|
85
85
|
end
|
86
86
|
def get_reconnect_device
|
87
|
-
|
87
|
+
$parameters[ :reconnect_device ]
|
88
88
|
end
|
89
89
|
def get_reconnect_attempts
|
90
|
-
|
90
|
+
$parameters[ :reconnect_attempts ]
|
91
91
|
end
|
92
92
|
def get_monitored_sut
|
93
|
-
str_parameter=
|
93
|
+
str_parameter= $parameters[ :error_recovery_monitored_sut_ids ]
|
94
94
|
|
95
95
|
if str_parameter.include?('|')
|
96
96
|
@monitored_suts=str_parameter.split('|')
|
@@ -17,9 +17,9 @@
|
|
17
17
|
##
|
18
18
|
############################################################################
|
19
19
|
|
20
|
-
|
21
20
|
require 'fileutils'
|
22
21
|
require 'date'
|
22
|
+
|
23
23
|
require File.expand_path( File.join( File.dirname( __FILE__ ), 'error_recovery/tdriver_error_recovery_settings' ) )
|
24
24
|
require File.expand_path( File.join( File.dirname( __FILE__ ), 'error_recovery/tdriver_error_recovery' ) )
|
25
25
|
require File.expand_path( File.join( File.dirname( __FILE__ ), 'error_recovery/tdriver_custom_error_recovery' ) )
|
@@ -51,14 +51,10 @@ require File.expand_path( File.join( File.dirname( __FILE__ ), 'report_grouping'
|
|
51
51
|
require File.expand_path( File.join( File.dirname( __FILE__ ), 'report_execution_statistics' ) )
|
52
52
|
require File.expand_path( File.join( File.dirname( __FILE__ ), 'report_data_presentation' ) )
|
53
53
|
|
54
|
+
unless $parameters[ :custom_error_recovery_module, nil ].nil?
|
54
55
|
|
55
|
-
|
56
|
-
|
57
|
-
require MobyUtil::Parameter[ :custom_error_recovery_module ]
|
56
|
+
require $parameters[ :custom_error_recovery_module ]
|
58
57
|
|
59
58
|
end
|
60
|
-
include TDriverReportAPI
|
61
59
|
|
62
|
-
|
63
|
-
|
64
|
-
|
60
|
+
include TDriverReportAPI
|
@@ -38,6 +38,15 @@ module TDriverReportAPI
|
|
38
38
|
return ret
|
39
39
|
end
|
40
40
|
|
41
|
+
def tdriver_get_sequential_fails
|
42
|
+
return $tdriver_reporter.get_sequential_fails if $tdriver_reporter
|
43
|
+
end
|
44
|
+
|
45
|
+
|
46
|
+
def tdriver_update_sequential_fails( status )
|
47
|
+
$tdriver_reporter.update_sequential_fails( status ) if $tdriver_reporter
|
48
|
+
end
|
49
|
+
|
41
50
|
def tdriver_log_data(data)
|
42
51
|
Kernel::raise TypeError.new("Argument to method cannot be nil.") if data.nil?
|
43
52
|
if $tdriver_reporter!=nil
|
@@ -40,10 +40,10 @@ class TDriverReportCrashFileCapture
|
|
40
40
|
end
|
41
41
|
|
42
42
|
def read_crash_monitor_settings()
|
43
|
-
@crash_file_locations=return_settings_value_array(
|
44
|
-
@crash_file_suts=return_settings_value_array(
|
45
|
-
@crash_file_names=return_settings_value_array(
|
46
|
-
@monitor_crash_files =
|
43
|
+
@crash_file_locations=return_settings_value_array( $parameters[ :report_crash_file_locations, nil ])
|
44
|
+
@crash_file_suts=return_settings_value_array( $parameters[ :report_crash_file_monitored_sut_ids, nil ])
|
45
|
+
@crash_file_names=return_settings_value_array( $parameters[ :report_crash_file_names, nil ])
|
46
|
+
@monitor_crash_files = $parameters[ :report_crash_file_monitor, 'false' ]
|
47
47
|
end
|
48
48
|
|
49
49
|
def clean_crash_files_from_sut()
|
@@ -17,9 +17,6 @@
|
|
17
17
|
##
|
18
18
|
############################################################################
|
19
19
|
|
20
|
-
|
21
|
-
|
22
|
-
|
23
20
|
module TDriverReportCreator
|
24
21
|
include TDriverErrorRecovery
|
25
22
|
include TDriverCustomErrorRecovery
|
@@ -61,21 +58,42 @@ module TDriverReportCreator
|
|
61
58
|
end
|
62
59
|
puts 'Generating report summary...'
|
63
60
|
$tdriver_reporter.update_summary_page('finished')
|
61
|
+
puts 'Summary generated...'
|
62
|
+
puts 'Generating total run table...'
|
64
63
|
$tdriver_reporter.update_test_case_summary_pages('all')
|
65
|
-
|
64
|
+
puts 'Total run table generated...'
|
65
|
+
if $tdriver_reporter.report_exclude_passed_cases=='false'
|
66
|
+
puts 'Generating passed cases table...'
|
67
|
+
$tdriver_reporter.update_test_case_summary_pages('passed')
|
68
|
+
puts 'Passed table generated...'
|
69
|
+
end
|
70
|
+
puts 'Generating failed cases table...'
|
66
71
|
$tdriver_reporter.update_test_case_summary_pages('failed')
|
72
|
+
puts 'Failed table generated...'
|
73
|
+
puts 'Generating not run cases table...'
|
67
74
|
$tdriver_reporter.update_test_case_summary_pages('not run')
|
75
|
+
puts 'Not run table generated...'
|
76
|
+
puts 'Generating statistics table...'
|
68
77
|
$tdriver_reporter.update_test_case_summary_pages('statistics')
|
78
|
+
puts 'Statistics generated...'
|
79
|
+
puts 'Grouping results by result and name...'
|
69
80
|
$tdriver_reporter.group_results_by_test_case()
|
70
|
-
|
81
|
+
puts 'Tests grouped by result and name...'
|
82
|
+
if $parameters[ :create_run_table_csv, false ]=='true'
|
83
|
+
puts 'Generating CSV...'
|
84
|
+
$tdriver_reporter.create_csv
|
85
|
+
puts 'CSV generated...'
|
86
|
+
end
|
87
|
+
puts 'Generating Junit xml...'
|
71
88
|
$new_junit_xml_results.create_junit_xml()
|
89
|
+
puts 'Junit generated...'
|
72
90
|
#$tdriver_reporter.delete_result_storage()
|
73
91
|
$tdriver_reporter.disconnect_connected_devices()
|
74
92
|
#tdriver_log_page $tdriver_reporter.update_tdriver_log_page()
|
75
93
|
puts 'Report generated to:'
|
76
94
|
puts $tdriver_reporter.report_folder()
|
77
95
|
clean_video_files
|
78
|
-
ending_test_set_run if
|
96
|
+
ending_test_set_run if $parameters[ :custom_error_recovery_module, nil ]!=nil
|
79
97
|
if $tdriver_reporter.total_failed.to_i > 0
|
80
98
|
Kernel.exit(1)
|
81
99
|
elsif $tdriver_reporter.total_run.to_i == 0
|
@@ -87,7 +105,7 @@ module TDriverReportCreator
|
|
87
105
|
else
|
88
106
|
initialize_error_recovery
|
89
107
|
end
|
90
|
-
starting_test_set_run if
|
108
|
+
starting_test_set_run if $parameters[ :custom_error_recovery_module, nil ]!=nil
|
91
109
|
end
|
92
110
|
#This method registers a connection error
|
93
111
|
#
|
@@ -97,9 +115,11 @@ module TDriverReportCreator
|
|
97
115
|
# nil
|
98
116
|
# === raises
|
99
117
|
def error_in_connection_detected
|
100
|
-
|
101
|
-
|
102
|
-
|
118
|
+
if start_error_recovery()==true
|
119
|
+
$tdriver_reporter.set_total_device_resets(1)
|
120
|
+
$new_test_case.set_test_case_reboots(1) if $new_test_case!=nil
|
121
|
+
end
|
122
|
+
error_in_connection if $parameters[ :custom_error_recovery_module, nil ]!=nil
|
103
123
|
end
|
104
124
|
#This method returns the group where the test case belongs
|
105
125
|
#
|
@@ -110,7 +130,7 @@ module TDriverReportCreator
|
|
110
130
|
# === raises
|
111
131
|
def extract_group_from_test_case_name(test_case_name)
|
112
132
|
found_in_group='not_in_any_user_defined_group'
|
113
|
-
groups
|
133
|
+
groups=$parameters[ :report_groups, nil ]
|
114
134
|
unless groups == nil
|
115
135
|
groups_ar=groups.split('|')
|
116
136
|
groups_ar.each do |group|
|
@@ -174,14 +194,14 @@ module TDriverReportCreator
|
|
174
194
|
$tdriver_reporter.set_total_run(1)
|
175
195
|
$tdriver_reporter.update_summary_page('inprogress')
|
176
196
|
$tdriver_reporter.update_environment_page()
|
177
|
-
if
|
197
|
+
if $parameters[ :realtime_status_page_update, false ]=='true'
|
178
198
|
if $run_status_thread_active == false
|
179
199
|
$run_status_thread_active=true
|
180
200
|
Thread.new do
|
181
201
|
begin
|
182
202
|
#Update test case summary pages
|
183
203
|
$tdriver_reporter.update_test_case_summary_pages('all')
|
184
|
-
$tdriver_reporter.update_test_case_summary_pages('passed')
|
204
|
+
$tdriver_reporter.update_test_case_summary_pages('passed') if $tdriver_reporter.report_exclude_passed_cases=='false'
|
185
205
|
$tdriver_reporter.update_test_case_summary_pages('failed')
|
186
206
|
$tdriver_reporter.update_test_case_summary_pages('not run')
|
187
207
|
$tdriver_reporter.update_test_case_summary_pages('statistics')
|
@@ -257,7 +277,7 @@ module TDriverReportCreator
|
|
257
277
|
|
258
278
|
$new_test_case.read_file_monitor_settings()
|
259
279
|
|
260
|
-
$new_test_case.clean_crash_files_from_sut() if $test_case_run_index==1 &&
|
280
|
+
$new_test_case.clean_crash_files_from_sut() if $test_case_run_index==1 && $parameters[ :report_crash_file_monitor_crash_file_cleanup, false ]=='true'
|
261
281
|
|
262
282
|
amount_of_crash_files=$new_test_case.check_if_crash_files_exist()
|
263
283
|
|
@@ -276,7 +296,7 @@ module TDriverReportCreator
|
|
276
296
|
$new_test_case.set_test_case_crash_files(amount_of_files.to_i)
|
277
297
|
end
|
278
298
|
|
279
|
-
if
|
299
|
+
if $parameters[ :report_monitor_memory, 'false']=='true'
|
280
300
|
begin
|
281
301
|
MobyBase::SUTFactory.instance.connected_suts.each do |sut_id, sut_attributes|
|
282
302
|
$new_test_case.set_tc_memory_amount_total($tdriver_reporter.get_sut_total_memory(sut_id,sut_attributes))
|
@@ -290,7 +310,7 @@ module TDriverReportCreator
|
|
290
310
|
logging_enabled = MobyUtil::Logger.instance.enabled
|
291
311
|
begin
|
292
312
|
|
293
|
-
if
|
313
|
+
if $parameters[:report_video, "false"] != "false"
|
294
314
|
# copy previous recording
|
295
315
|
MobyUtil::Logger.instance.enabled=false
|
296
316
|
|
@@ -313,7 +333,7 @@ module TDriverReportCreator
|
|
313
333
|
MobyUtil::Logger.instance.enabled=logging_enabled
|
314
334
|
end
|
315
335
|
update_test_case_user_data()
|
316
|
-
starting_test_case(test_case, MobyBase::SUTFactory.instance.connected_suts) if
|
336
|
+
starting_test_case(test_case, MobyBase::SUTFactory.instance.connected_suts) if $parameters[ :custom_error_recovery_module, nil ]!=nil
|
317
337
|
end
|
318
338
|
#This method updates the current test case execution log
|
319
339
|
#
|
@@ -330,13 +350,13 @@ module TDriverReportCreator
|
|
330
350
|
@_stored_details.each do |detail|
|
331
351
|
$new_test_case.set_test_case_execution_log(detail)
|
332
352
|
end
|
333
|
-
$new_test_case.set_test_case_execution_log(details)
|
353
|
+
$new_test_case.set_test_case_execution_log(details,true)
|
334
354
|
@_stored_details=[]
|
335
355
|
else
|
336
|
-
$new_test_case.set_test_case_execution_log(details)
|
356
|
+
$new_test_case.set_test_case_execution_log(details,true)
|
337
357
|
end
|
338
|
-
updating_test_case_details(details) if
|
339
|
-
if
|
358
|
+
updating_test_case_details(details) if $parameters[ :custom_error_recovery_module, nil ]!=nil
|
359
|
+
if $parameters[ :report_monitor_memory, 'false']=='true'
|
340
360
|
begin
|
341
361
|
start_memory=$new_test_case.tc_memory_amount_start()
|
342
362
|
if start_memory=='-'
|
@@ -384,11 +404,11 @@ module TDriverReportCreator
|
|
384
404
|
if $new_test_case.video_recording?
|
385
405
|
$new_test_case.copy_video_capture()
|
386
406
|
end
|
387
|
-
error_in_test_case(MobyBase::SUTFactory.instance.connected_suts) if
|
407
|
+
error_in_test_case(MobyBase::SUTFactory.instance.connected_suts) if $parameters[ :custom_error_recovery_module, nil ]!=nil
|
388
408
|
begin
|
389
|
-
|
409
|
+
|
390
410
|
error_in_connection_detected
|
391
|
-
|
411
|
+
|
392
412
|
rescue Exception => e
|
393
413
|
update_test_case("Error recovery failed Exception: #{e.message} Backtrace: #{e.backtrace}")
|
394
414
|
end_test_case($new_test_case.test_case_name,'failed')
|
@@ -429,7 +449,7 @@ module TDriverReportCreator
|
|
429
449
|
# === raises
|
430
450
|
def update_test_case_behaviour_log()
|
431
451
|
begin
|
432
|
-
if
|
452
|
+
if $parameters[:behaviour_logging] == 'true'
|
433
453
|
if $new_test_case.test_case_logging_level.to_i > 0
|
434
454
|
$tdriver_report_log_output.string.each do |line|
|
435
455
|
$new_test_case.set_test_case_behaviour_log(line,nil)
|
@@ -492,7 +512,7 @@ module TDriverReportCreator
|
|
492
512
|
update_test_case_user_data()
|
493
513
|
if $new_test_case != nil
|
494
514
|
calculate_execution_footprint_data_for_test_case
|
495
|
-
if
|
515
|
+
if $parameters[:report_crash_file_monitor] == 'true'
|
496
516
|
found_crash_files = $new_test_case.check_if_crash_files_exist()
|
497
517
|
if found_crash_files.to_i > 0
|
498
518
|
$tdriver_reporter.set_total_crash_files(found_crash_files.to_i)
|
@@ -500,12 +520,12 @@ module TDriverReportCreator
|
|
500
520
|
status='failed'
|
501
521
|
end
|
502
522
|
end
|
503
|
-
if
|
523
|
+
if $parameters[:report_file_monitor] == 'true'
|
504
524
|
found_files = $new_test_case.check_if_files_exist()
|
505
525
|
if found_files.to_i > 0
|
506
526
|
$tdriver_reporter.set_total_crash_files(found_files.to_i)
|
507
527
|
$new_test_case.set_test_case_crash_files(found_files.to_i)
|
508
|
-
status='failed' if
|
528
|
+
status='failed' if $parameters[:report_fail_test_if_files_found]=='true'
|
509
529
|
end
|
510
530
|
end
|
511
531
|
|
@@ -528,7 +548,7 @@ module TDriverReportCreator
|
|
528
548
|
if(status=='passed')
|
529
549
|
|
530
550
|
no_activity_videos = ""
|
531
|
-
if
|
551
|
+
if $parameters[:report_check_device_active, 'false']=='true'
|
532
552
|
if temp_rec
|
533
553
|
no_activity_videos = $new_test_case.target_video_alive
|
534
554
|
end
|
@@ -558,9 +578,9 @@ module TDriverReportCreator
|
|
558
578
|
end
|
559
579
|
$new_test_case.set_test_case_end_time(Time.now)
|
560
580
|
update_test_case_behaviour_log()
|
561
|
-
update_test_case_memory_usage() if
|
581
|
+
update_test_case_memory_usage() if $parameters[ :report_monitor_memory, 'false']=='true'
|
562
582
|
execution_log=$new_test_case.test_case_execution_log
|
563
|
-
if
|
583
|
+
if $parameters[:report_trace_capture_only_in_failed_case, 'true']!='true'
|
564
584
|
$new_test_case.capture_trace_files()
|
565
585
|
else
|
566
586
|
if status=='failed'
|
@@ -574,13 +594,15 @@ module TDriverReportCreator
|
|
574
594
|
$new_test_case.clean_files_from_sut()
|
575
595
|
|
576
596
|
update_run($new_test_case.test_case_name.to_s,status,$new_test_case.test_case_reboots,$new_test_case.test_case_crash_files,execution_log)
|
597
|
+
|
577
598
|
$new_junit_xml_results.add_test_result(status, $new_test_case.test_case_start_time, $new_test_case.test_case_end_time)
|
578
|
-
|
599
|
+
tdriver_update_sequential_fails( status ) if $parameters[ :runner_sequence_skip, "false" ] == "true"
|
600
|
+
|
579
601
|
$new_test_case=nil
|
580
602
|
execution_log=nil
|
581
603
|
|
582
604
|
end
|
583
|
-
ending_test_case(status, MobyBase::SUTFactory.instance.connected_suts) if
|
605
|
+
ending_test_case(status, MobyBase::SUTFactory.instance.connected_suts) if $parameters[ :custom_error_recovery_module, nil ]!=nil
|
584
606
|
end
|
585
607
|
def add_report_group(value)
|
586
608
|
$tdriver_reporter.set_generic_reporting_groups(value)
|
@@ -608,10 +630,10 @@ module TDriverReportCreator
|
|
608
630
|
|
609
631
|
def each_video_device
|
610
632
|
|
611
|
-
if
|
633
|
+
if $parameters[:report_video, nil] != nil
|
612
634
|
|
613
635
|
device_index = 0
|
614
|
-
|
636
|
+
$parameters[:report_video].split("|").each do | video_device |
|
615
637
|
if !video_device.strip.empty?
|
616
638
|
yield video_device.strip, device_index.to_s
|
617
639
|
device_index += 1
|
@@ -107,7 +107,7 @@ module TDriverReport
|
|
107
107
|
# === params
|
108
108
|
# === returns
|
109
109
|
# === raises
|
110
|
-
def visit_feature_element_name(keyword, name, file_colon_line, source_indent)
|
110
|
+
def visit_feature_element_name(keyword, name, file_colon_line, source_indent)
|
111
111
|
line = %Q("#{name}")
|
112
112
|
@current_feature_element=line if @current_feature_element.nil?
|
113
113
|
unless line == @current_feature_element
|
@@ -40,6 +40,7 @@ module TDriverReport
|
|
40
40
|
@current_feature = nil
|
41
41
|
@tc_status=nil
|
42
42
|
@current_feature_group=nil
|
43
|
+
@current_feature_element_file=''
|
43
44
|
end
|
44
45
|
def after_features(features)
|
45
46
|
end_test_case(@current_feature_element,@tc_status)
|
@@ -95,8 +96,7 @@ module TDriverReport
|
|
95
96
|
visit_feature_element_name(keyword, name, file_colon_line, source_indent)
|
96
97
|
end
|
97
98
|
def feature_name(name)
|
98
|
-
@current_feature_group=name.gsub(/[:]/,'')
|
99
|
-
add_report_group('Features:'+@current_feature_group+'|')
|
99
|
+
@current_feature_group=name.gsub(/[:]/,'')
|
100
100
|
end
|
101
101
|
#This method determines when new test case needs to be started
|
102
102
|
#based on the scenario name info if scenario name is different then a new test case
|
@@ -106,6 +106,8 @@ module TDriverReport
|
|
106
106
|
# === returns
|
107
107
|
# === raises
|
108
108
|
def visit_feature_element_name(keyword, name, file_colon_line, source_indent)
|
109
|
+
add_report_group(File.basename(file_colon_line)+':'+@current_feature_group+'|')
|
110
|
+
@current_feature_element_file=file_colon_line
|
109
111
|
line = %Q("#{name}")
|
110
112
|
@current_feature_element=line if @current_feature_element.nil?
|
111
113
|
unless line == @current_feature_element
|
@@ -114,6 +116,7 @@ module TDriverReport
|
|
114
116
|
end
|
115
117
|
start_test_case(@current_feature_element)
|
116
118
|
add_test_case_group(@current_feature_group)
|
119
|
+
update_test_case(file_colon_line)
|
117
120
|
@tc_status=nil
|
118
121
|
end
|
119
122
|
#This method records the cucumber outline table results in to one test case
|
@@ -176,162 +179,6 @@ module TDriverReport
|
|
176
179
|
end
|
177
180
|
end
|
178
181
|
|
179
|
-
module MattiReport
|
180
|
-
#Class for formatting cucumber report
|
181
|
-
class CucumberListener
|
182
|
-
include TDriverReportCreator
|
183
|
-
#This method initializes new test run
|
184
|
-
#
|
185
|
-
# === params
|
186
|
-
# === returns
|
187
|
-
# === raises
|
188
|
-
def initialize(step_mother, io, options)
|
189
|
-
file, line = caller.first.split(":")
|
190
|
-
$stderr.puts "%s:%s warning: MattiReport deprecated, use TDriverReport instead" % [ file, line]
|
191
|
-
#super(step_mother, io, options)
|
192
|
-
start_run()
|
193
|
-
@options = options
|
194
|
-
@current_feature_element = nil
|
195
|
-
@current_feature = nil
|
196
|
-
@tc_status=nil
|
197
|
-
@current_feature_group=nil
|
198
|
-
end
|
199
|
-
def after_features(features)
|
200
|
-
end_test_case(@current_feature_element,@tc_status)
|
201
|
-
end
|
202
|
-
#This method visits the executed cucumber step and updates the results in to TDriver report
|
203
|
-
#
|
204
|
-
# === params
|
205
|
-
# === returns
|
206
|
-
# === raises
|
207
|
-
def step_name(keyword, step_match, status, source_indent, background)
|
208
|
-
if status == :passed
|
209
|
-
step_name = step_match.format_args(lambda{|param| "*#{param}*"})
|
210
|
-
update_test_case("#{step_name} PASSED")
|
211
|
-
@tc_status='passed'
|
212
|
-
end
|
213
|
-
if status == :failed
|
214
|
-
step_name = step_match.format_args(lambda{|param| "*#{param}*"})
|
215
|
-
update_test_case("#{step_name} FAILED")
|
216
|
-
@tc_status='failed'
|
217
|
-
end
|
218
|
-
if status == :skipped
|
219
|
-
step_name = step_match.format_args(lambda{|param| "*#{param}*"})
|
220
|
-
update_test_case("#{step_name} SKIPPED")
|
221
|
-
end
|
222
|
-
if status == :undefined
|
223
|
-
step_name = step_match.format_args(lambda{|param| "*#{param}*"})
|
224
|
-
update_test_case("#{step_name} NOT RUN")
|
225
|
-
@tc_status='not run'
|
226
|
-
end
|
227
|
-
end
|
228
|
-
#This method visits the exception caused by a failed step
|
229
|
-
#and updates the result in to TDriver report
|
230
|
-
#
|
231
|
-
# === params
|
232
|
-
# === returns
|
233
|
-
# === raises
|
234
|
-
def exception(exception, status)
|
235
|
-
if status == :failed
|
236
|
-
capture_screen_test_case()
|
237
|
-
update_test_case(exception.message)
|
238
|
-
update_test_case(exception.backtrace)
|
239
|
-
end
|
240
|
-
update_test_case('-') if status == :passed
|
241
|
-
end
|
242
|
-
#This method visits cucumber scenario name and starts a new test case when
|
243
|
-
#new scenario is executed
|
244
|
-
#and updates the result in to TDriver report
|
245
|
-
#
|
246
|
-
# === params
|
247
|
-
# === returns
|
248
|
-
# === raises
|
249
|
-
def scenario_name(keyword, name, file_colon_line, source_indent)
|
250
|
-
visit_feature_element_name(keyword, name, file_colon_line, source_indent)
|
251
|
-
end
|
252
|
-
def feature_name(name)
|
253
|
-
@current_feature_group=name.gsub(/[:]/,'')
|
254
|
-
add_report_group('Features:'+@current_feature_group+'|')
|
255
|
-
end
|
256
|
-
#This method determines when new test case needs to be started
|
257
|
-
#based on the scenario name info if scenario name is different then a new test case
|
258
|
-
#is started
|
259
|
-
#
|
260
|
-
# === params
|
261
|
-
# === returns
|
262
|
-
# === raises
|
263
|
-
def visit_feature_element_name(keyword, name, file_colon_line, source_indent)
|
264
|
-
line = %Q("#{name}")
|
265
|
-
@current_feature_element=line if @current_feature_element.nil?
|
266
|
-
unless line == @current_feature_element
|
267
|
-
end_test_case(@current_feature_element,@tc_status)
|
268
|
-
@current_feature_element=line
|
269
|
-
end
|
270
|
-
start_test_case(@current_feature_element)
|
271
|
-
add_test_case_group(@current_feature_group)
|
272
|
-
@tc_status=nil
|
273
|
-
end
|
274
|
-
#This method records the cucumber outline table results in to one test case
|
275
|
-
#
|
276
|
-
# === params
|
277
|
-
# === returns
|
278
|
-
# === raises
|
279
|
-
def before_outline_table(outline_table)
|
280
|
-
update_test_case("running outline: ")
|
281
|
-
end
|
282
|
-
#This method records the cucumber outline table results in to one test case
|
283
|
-
#
|
284
|
-
# === params
|
285
|
-
# === returns
|
286
|
-
# === raises
|
287
|
-
def after_table_row(table_row)
|
288
|
-
if table_row.exception
|
289
|
-
@tc_status='failed'
|
290
|
-
capture_screen_test_case()
|
291
|
-
update_test_case("#{format_table_row(table_row)} FAILED")
|
292
|
-
update_test_case(table_row.exception)
|
293
|
-
else
|
294
|
-
@tc_status='passed' if @tc_status==nil
|
295
|
-
update_test_case("#{format_table_row(table_row)} PASSED")
|
296
|
-
end
|
297
|
-
end
|
298
|
-
def format_table_row(row)
|
299
|
-
begin
|
300
|
-
[row.name, row.line]
|
301
|
-
rescue Exception => e
|
302
|
-
row
|
303
|
-
end
|
304
|
-
end
|
305
|
-
def tag_name(tag_name)
|
306
|
-
end
|
307
|
-
def comment_line(comment_line)
|
308
|
-
end
|
309
|
-
def after_tags(tags)
|
310
|
-
end
|
311
|
-
def after_feature_element(feature_element)
|
312
|
-
end
|
313
|
-
def after_background(background)
|
314
|
-
end
|
315
|
-
def before_examples_array(examples_array)
|
316
|
-
end
|
317
|
-
def examples_name(keyword, name)
|
318
|
-
end
|
319
|
-
def py_string(string)
|
320
|
-
end
|
321
|
-
def print_feature_element_name(keyword, name, file_colon_line, source_indent)
|
322
|
-
end
|
323
|
-
def before_table_row(table_row)
|
324
|
-
return unless @table
|
325
|
-
@col_index = 0
|
326
|
-
end
|
327
|
-
def table_cell_value(value, status)
|
328
|
-
return unless @table
|
329
|
-
status ||= @status || :passed
|
330
|
-
end
|
331
|
-
end
|
332
|
-
end
|
333
|
-
|
334
|
-
|
335
182
|
rescue LoadError
|
336
183
|
|
337
184
|
end
|