testability-driver 1.1.1 → 1.2.1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|