testability-driver 1.0.4 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/bin/tdriver-devtools +0 -0
- data/config/sut_setup.rb +32 -0
- data/config/sut_teardown.rb +32 -0
- data/ext/extconf.rb +3 -1
- data/lib/tdriver-devtools/behaviour/old/xml/update +0 -0
- data/lib/tdriver-devtools/behaviour/xml/generate.rb +0 -0
- data/lib/tdriver-devtools/doc/update +0 -0
- data/lib/tdriver-devtools/doc/xslt/update +0 -0
- data/lib/tdriver-devtools/tdriver-devtools.rb +0 -0
- data/lib/tdriver-devtools/tests/feature_tests/output/application_closable_0x3f.feature +10 -0
- data/lib/tdriver-devtools/tests/feature_tests/output/application_close.feature +15 -0
- data/lib/tdriver-devtools/tests/feature_tests/output/application_environment.feature +10 -0
- data/lib/tdriver-devtools/tests/feature_tests/output/application_executable_name.feature +10 -0
- data/lib/tdriver-devtools/tests/feature_tests/output/application_uid.feature +10 -0
- data/lib/tdriver-devtools/tests/feature_tests/output/created.rid +1 -0
- data/lib/tdriver-devtools/tests/feature_tests/output/find_find.feature +15 -0
- data/lib/tdriver-devtools/tests/feature_tests/output/flash_behaviour_flash.feature +10 -0
- data/lib/tdriver-devtools/tests/feature_tests/output/flash_behaviour_flash_images.feature +15 -0
- data/lib/tdriver-devtools/tests/feature_tests/output/sut_application.feature +15 -0
- data/lib/tdriver-devtools/tests/feature_tests/output/sut_capture_screen.feature +10 -0
- data/lib/tdriver-devtools/tests/feature_tests/output/sut_child.feature +10 -0
- data/lib/tdriver-devtools/tests/feature_tests/output/sut_clear_verify_blocks.feature +10 -0
- data/lib/tdriver-devtools/tests/feature_tests/output/sut_connect.feature +10 -0
- data/lib/tdriver-devtools/tests/feature_tests/output/sut_controller_execution_order.feature +10 -0
- data/lib/tdriver-devtools/tests/feature_tests/output/sut_controller_execution_order_0x3d.feature +10 -0
- data/lib/tdriver-devtools/tests/feature_tests/output/sut_current_application_id.feature +15 -0
- data/lib/tdriver-devtools/tests/feature_tests/output/sut_disconnect.feature +10 -0
- data/lib/tdriver-devtools/tests/feature_tests/output/sut_dump_count.feature +15 -0
- data/lib/tdriver-devtools/tests/feature_tests/output/sut_freeze.feature +10 -0
- data/lib/tdriver-devtools/tests/feature_tests/output/sut_frozen.feature +10 -0
- data/lib/tdriver-devtools/tests/feature_tests/output/sut_get_application_id.feature +10 -0
- data/lib/tdriver-devtools/tests/feature_tests/output/sut_get_object.feature +10 -0
- data/lib/tdriver-devtools/tests/feature_tests/output/sut_get_operator_data.feature +10 -0
- data/lib/tdriver-devtools/tests/feature_tests/output/sut_get_ui_dump.feature +15 -0
- data/lib/tdriver-devtools/tests/feature_tests/output/sut_get_user_information.feature +10 -0
- data/lib/tdriver-devtools/tests/feature_tests/output/sut_input.feature +15 -0
- data/lib/tdriver-devtools/tests/feature_tests/output/sut_parameter.feature +15 -0
- data/lib/tdriver-devtools/tests/feature_tests/output/sut_press_key.feature +10 -0
- data/lib/tdriver-devtools/tests/feature_tests/output/sut_received_data.feature +10 -0
- data/lib/tdriver-devtools/tests/feature_tests/output/sut_refresh.feature +20 -0
- data/lib/tdriver-devtools/tests/feature_tests/output/sut_refresh_timeout.feature +15 -0
- data/lib/tdriver-devtools/tests/feature_tests/output/sut_refresh_tries.feature +15 -0
- data/lib/tdriver-devtools/tests/feature_tests/output/sut_refresh_ui_dump.feature +20 -0
- data/lib/tdriver-devtools/tests/feature_tests/output/sut_run.feature +10 -0
- data/lib/tdriver-devtools/tests/feature_tests/output/sut_sent_data.feature +10 -0
- data/lib/tdriver-devtools/tests/feature_tests/output/sut_state.feature +10 -0
- data/lib/tdriver-devtools/tests/feature_tests/output/sut_translate.feature +30 -0
- data/lib/tdriver-devtools/tests/feature_tests/output/sut_ui_type.feature +10 -0
- data/lib/tdriver-devtools/tests/feature_tests/output/sut_ui_version.feature +10 -0
- data/lib/tdriver-devtools/tests/feature_tests/output/sut_unfreeze.feature +10 -0
- data/lib/tdriver-devtools/tests/feature_tests/output/sut_update.feature +10 -0
- data/lib/tdriver-devtools/tests/feature_tests/output/sut_verify_always.feature +20 -0
- data/lib/tdriver-devtools/tests/feature_tests/output/sut_verify_blocks.feature +10 -0
- data/lib/tdriver-devtools/tests/feature_tests/output/sut_x_path.feature +10 -0
- data/lib/tdriver-devtools/tests/feature_tests/output/sut_xml_data.feature +10 -0
- data/lib/tdriver-devtools/tests/feature_tests/output/sut_xml_data_0x3d.feature +10 -0
- data/lib/tdriver-devtools/tests/feature_tests/output/sut_xml_data_crc.feature +10 -0
- data/lib/tdriver-devtools/tests/feature_tests/output/switchbox_behaviour_power_down.feature +10 -0
- data/lib/tdriver-devtools/tests/feature_tests/output/switchbox_behaviour_power_status.feature +10 -0
- data/lib/tdriver-devtools/tests/feature_tests/output/switchbox_behaviour_power_up.feature +10 -0
- data/lib/tdriver-devtools/tests/feature_tests/output/switchbox_behaviour_reset.feature +10 -0
- data/lib/tdriver-devtools/tests/feature_tests/output/verification_test_object_exists_0x3f.feature +15 -0
- data/lib/tdriver-devtools/tests/feature_tests/update +0 -0
- data/lib/tdriver/base/behaviour/behaviours/object_composition.rb +4 -4
- data/lib/tdriver/base/behaviour/factory.rb +8 -0
- data/lib/tdriver/base/sut/generic/behaviours/application.rb +24 -3
- data/lib/tdriver/base/sut/generic/behaviours/sut.rb +465 -354
- data/lib/tdriver/base/test_object/adapter.rb +2 -2
- data/lib/tdriver/base/test_object/behaviours/test_object.rb +22 -5
- data/lib/tdriver/base/test_object/cache.rb +1 -1
- data/lib/tdriver/base/test_object/factory.rb +23 -3
- data/lib/tdriver/env.rb +0 -0
- data/lib/tdriver/loader.rb +0 -0
- data/lib/tdriver/matti.rb +0 -0
- data/lib/tdriver/report/error_recovery/tdriver_error_recovery.rb +22 -24
- data/lib/tdriver/report/report.rb +8 -1
- data/lib/tdriver/report/report_api.rb +18 -0
- data/lib/tdriver/report/report_combine.rb +1 -1
- data/lib/tdriver/report/report_creator.rb +5 -1
- data/lib/tdriver/report/report_execution_statistics.rb +105 -78
- data/lib/tdriver/report/report_test_case_run.rb +2 -1
- data/lib/tdriver/report/report_test_run.rb +187 -116
- data/lib/tdriver/report/report_writer.rb +49 -29
- data/lib/tdriver/tdriver.rb +14 -3
- data/lib/tdriver/util/common/exception.rb +53 -0
- data/lib/tdriver/util/common/hash.rb +79 -23
- data/lib/tdriver/util/common/numeric.rb +26 -5
- data/lib/tdriver/util/common/object.rb +44 -15
- data/lib/tdriver/util/common/string.rb +4 -1
- data/lib/tdriver/util/filters/dynamic_attributes.rb +2 -1
- data/lib/tdriver/util/keymap/keymap.rb +81 -0
- data/lib/tdriver/util/loader.rb +4 -1
- data/lib/tdriver/util/logger/logger.rb +17 -9
- data/lib/tdriver/util/other/config.rb +0 -0
- data/lib/tdriver/util/parameter/error.rb +3 -0
- data/lib/tdriver/util/parameter/loader.rb +6 -1
- data/lib/tdriver/util/parameter/parameter.rb +87 -14
- data/lib/tdriver/util/parameter/parameter_new.rb +869 -0
- data/lib/tdriver/util/parameter/parameter_template.rb +2 -2
- data/lib/tdriver/util/parameter/parameter_user_api.rb +27 -3
- data/lib/tdriver/util/parameter/parameter_xml.rb +36 -38
- data/lib/tdriver/version.rb +1 -1
- data/xml/templates/generic.xml +4 -10
- metadata +196 -138
@@ -440,7 +440,7 @@ module TDriverReportCreator
|
|
440
440
|
# === returns
|
441
441
|
# nil
|
442
442
|
# === raises
|
443
|
-
def update_test_case_page()
|
443
|
+
def update_test_case_page(rewrite=false)
|
444
444
|
begin
|
445
445
|
#Calculate run time
|
446
446
|
@test_case_run_time=Time.now-@test_case_start_time
|
@@ -467,6 +467,7 @@ module TDriverReportCreator
|
|
467
467
|
@test_case_total_data_received
|
468
468
|
)
|
469
469
|
write_page_end(@test_case_folder+'/index.html')
|
470
|
+
|
470
471
|
rescue Exception => e
|
471
472
|
Kernel::raise e
|
472
473
|
end
|
@@ -88,7 +88,7 @@ module TDriverReportCreator
|
|
88
88
|
@total_received_data=Hash.new
|
89
89
|
@total_sent_data=Hash.new
|
90
90
|
$result_storage_in_use=false
|
91
|
-
@pages=MobyUtil::Parameter[ :report_results_per_page,
|
91
|
+
@pages=MobyUtil::Parameter[ :report_results_per_page, 50]
|
92
92
|
@duration_graph=MobyUtil::Parameter[ :report_generate_duration_graph, false]
|
93
93
|
@pass_statuses=MobyUtil::Parameter[ :report_passed_statuses, "passed" ].split('|')
|
94
94
|
@fail_statuses=MobyUtil::Parameter[ :report_failed_statuses, "failed" ].split('|')
|
@@ -335,7 +335,7 @@ module TDriverReportCreator
|
|
335
335
|
# === raises
|
336
336
|
def get_not_run_cases_arr()
|
337
337
|
#@not_run_cases_arr
|
338
|
-
read_result_storage('
|
338
|
+
read_result_storage('not_run')
|
339
339
|
end
|
340
340
|
#This method gets the passed cases name array
|
341
341
|
#
|
@@ -478,6 +478,28 @@ module TDriverReportCreator
|
|
478
478
|
return nil
|
479
479
|
end
|
480
480
|
|
481
|
+
#This method generates the tdriver test run summary page grouped by test case
|
482
|
+
#
|
483
|
+
# === params
|
484
|
+
# nil
|
485
|
+
# === returns
|
486
|
+
# nil
|
487
|
+
# === raises
|
488
|
+
def group_results_by_test_case()
|
489
|
+
@all_cases_arr=read_result_storage('all')
|
490
|
+
created_grouped_test_result=[]
|
491
|
+
|
492
|
+
@all_cases_arr.each do |test_case|
|
493
|
+
#name, status
|
494
|
+
tc=[test_case[7],test_case[0]]
|
495
|
+
if !created_grouped_test_result.include?(tc)
|
496
|
+
update_test_case_summary_page(test_case[7],false,"Test: #{test_case[0]} Result: #{test_case[7]}",test_case[0])
|
497
|
+
created_grouped_test_result << tc
|
498
|
+
end
|
499
|
+
end
|
500
|
+
|
501
|
+
end
|
502
|
+
|
481
503
|
#This method updates the tdriver test run summary page
|
482
504
|
#
|
483
505
|
# === params
|
@@ -912,7 +934,9 @@ module TDriverReportCreator
|
|
912
934
|
end
|
913
935
|
end
|
914
936
|
|
915
|
-
def
|
937
|
+
def parse_results_for_current_test( by_status )
|
938
|
+
|
939
|
+
ret_xml = nil
|
916
940
|
while $result_storage_in_use==true
|
917
941
|
sleep 1
|
918
942
|
end
|
@@ -922,12 +946,72 @@ module TDriverReportCreator
|
|
922
946
|
result_storage=Array.new
|
923
947
|
storage_file='all_cases.xml'
|
924
948
|
|
949
|
+
|
925
950
|
file=@report_folder+'/'+storage_file
|
926
951
|
if File.exist?(file)
|
927
952
|
io = File.open(file, 'r')
|
953
|
+
ret_xml = Nokogiri::XML(io){ |config| config.options = Nokogiri::XML::ParseOptions::STRICT }
|
954
|
+
|
955
|
+
io.close
|
956
|
+
|
957
|
+
status_search = ""
|
958
|
+
|
959
|
+
case by_status
|
960
|
+
when "all"
|
961
|
+
status_search = ""
|
962
|
+
when "passed"
|
963
|
+
status_search = " and (status='"
|
964
|
+
status_search << @pass_statuses.join("' or status='")
|
965
|
+
status_search << "')"
|
966
|
+
when "failed"
|
967
|
+
status_search = " and (status='"
|
968
|
+
status_search << @fail_statuses.join("' or status='")
|
969
|
+
status_search << "')"
|
970
|
+
when "not run"
|
971
|
+
status_search = " and (status='"
|
972
|
+
status_search << @not_run_statuses.join("' or status='")
|
973
|
+
status_search << "')"
|
974
|
+
else
|
975
|
+
status_search = " and status='" + by_status + "'"
|
976
|
+
end
|
977
|
+
|
978
|
+
ret_xml = ret_xml.root.xpath("//tests/test[name='#{$new_test_case.test_case_name}' and group='#{$new_test_case.test_case_group}'#{status_search}]")
|
979
|
+
else
|
980
|
+
#puts "No file " << storage_file
|
981
|
+
end
|
982
|
+
rescue Exception => e
|
983
|
+
$result_storage_in_use=false
|
984
|
+
raise e
|
985
|
+
|
986
|
+
end
|
987
|
+
|
988
|
+
$result_storage_in_use=false
|
989
|
+
|
990
|
+
ret_xml
|
991
|
+
|
992
|
+
end
|
993
|
+
|
994
|
+
def read_result_storage(results,case_name=nil)
|
995
|
+
while $result_storage_in_use==true
|
996
|
+
sleep 1
|
997
|
+
end
|
998
|
+
$result_storage_in_use=true
|
999
|
+
begin
|
1000
|
+
result_storage=nil
|
1001
|
+
result_storage=Array.new
|
1002
|
+
storage_file='all_cases.xml'
|
1003
|
+
|
1004
|
+
file=@report_folder+'/'+storage_file
|
1005
|
+
if File.exist?(file)
|
1006
|
+
io = File.open(file, 'rb')
|
928
1007
|
xml_data = Nokogiri::XML(io){ |config| config.options = Nokogiri::XML::ParseOptions::STRICT }
|
929
1008
|
io.close
|
930
|
-
|
1009
|
+
if case_name
|
1010
|
+
nodes=xml_data.root.xpath("//tests/test[name='#{case_name}']")
|
1011
|
+
else
|
1012
|
+
nodes=xml_data.root.xpath("//tests/test")
|
1013
|
+
end
|
1014
|
+
nodes.each do |node|
|
931
1015
|
value=node.search("name").text #0
|
932
1016
|
group=node.search("group").text #1
|
933
1017
|
reboots=node.search("reboots").text #2
|
@@ -950,125 +1034,89 @@ module TDriverReportCreator
|
|
950
1034
|
user_data[value_name] = val
|
951
1035
|
end
|
952
1036
|
|
1037
|
+
current_record=[value,
|
1038
|
+
group,
|
1039
|
+
reboots,
|
1040
|
+
crashes,
|
1041
|
+
start_time,
|
1042
|
+
duration,
|
1043
|
+
memory_usage,
|
1044
|
+
status,
|
1045
|
+
index,
|
1046
|
+
log,
|
1047
|
+
comment,
|
1048
|
+
link,
|
1049
|
+
user_data,
|
1050
|
+
dump_count,
|
1051
|
+
sent_bytes,
|
1052
|
+
received_bytes
|
1053
|
+
]
|
953
1054
|
case results
|
954
1055
|
when 'passed'
|
955
|
-
if
|
956
|
-
|
957
|
-
|
958
|
-
|
959
|
-
|
960
|
-
|
961
|
-
|
962
|
-
|
963
|
-
status,
|
964
|
-
index,
|
965
|
-
log,
|
966
|
-
comment,
|
967
|
-
link,
|
968
|
-
user_data,
|
969
|
-
dump_count,
|
970
|
-
sent_bytes,
|
971
|
-
received_bytes
|
972
|
-
]
|
1056
|
+
if case_name
|
1057
|
+
if @pass_statuses.include?(status) && value==case_name
|
1058
|
+
result_storage << current_record
|
1059
|
+
end
|
1060
|
+
else
|
1061
|
+
if @pass_statuses.include?(status)
|
1062
|
+
result_storage << current_record
|
1063
|
+
end
|
973
1064
|
end
|
1065
|
+
|
974
1066
|
when 'failed'
|
975
|
-
if
|
976
|
-
|
977
|
-
|
978
|
-
|
979
|
-
|
980
|
-
|
981
|
-
|
982
|
-
|
983
|
-
status,
|
984
|
-
index,
|
985
|
-
log,
|
986
|
-
comment,
|
987
|
-
link,
|
988
|
-
user_data,
|
989
|
-
dump_count,
|
990
|
-
sent_bytes,
|
991
|
-
received_bytes
|
992
|
-
]
|
1067
|
+
if case_name
|
1068
|
+
if @fail_statuses.include?(status) && value==case_name
|
1069
|
+
result_storage << current_record
|
1070
|
+
end
|
1071
|
+
else
|
1072
|
+
if @fail_statuses.include?(status)
|
1073
|
+
result_storage << current_record
|
1074
|
+
end
|
993
1075
|
end
|
1076
|
+
|
994
1077
|
when 'not_run'
|
995
|
-
if
|
996
|
-
|
997
|
-
|
998
|
-
|
999
|
-
|
1000
|
-
|
1001
|
-
|
1002
|
-
|
1003
|
-
status,
|
1004
|
-
index,
|
1005
|
-
log,
|
1006
|
-
comment,
|
1007
|
-
link,
|
1008
|
-
user_data,
|
1009
|
-
dump_count,
|
1010
|
-
sent_bytes,
|
1011
|
-
received_bytes
|
1012
|
-
]
|
1078
|
+
if case_name
|
1079
|
+
if @not_run_statuses.include?(status) && value==case_name
|
1080
|
+
result_storage << current_record
|
1081
|
+
end
|
1082
|
+
else
|
1083
|
+
if @not_run_statuses.include?(status)
|
1084
|
+
result_storage << current_record
|
1085
|
+
end
|
1013
1086
|
end
|
1087
|
+
|
1014
1088
|
when 'crash'
|
1015
1089
|
if crashes.to_i > 0
|
1016
|
-
result_storage <<
|
1017
|
-
group,
|
1018
|
-
reboots,
|
1019
|
-
crashes,
|
1020
|
-
start_time,
|
1021
|
-
duration,
|
1022
|
-
memory_usage,
|
1023
|
-
status,
|
1024
|
-
index,
|
1025
|
-
log,
|
1026
|
-
comment,
|
1027
|
-
link,
|
1028
|
-
user_data,
|
1029
|
-
dump_count,
|
1030
|
-
sent_bytes,
|
1031
|
-
received_bytes
|
1032
|
-
]
|
1090
|
+
result_storage << current_record
|
1033
1091
|
end
|
1092
|
+
|
1034
1093
|
when 'reboot'
|
1035
1094
|
if reboots.to_i > 0
|
1036
|
-
result_storage <<
|
1037
|
-
group,
|
1038
|
-
reboots,
|
1039
|
-
crashes,
|
1040
|
-
start_time,
|
1041
|
-
duration,
|
1042
|
-
memory_usage,
|
1043
|
-
status,
|
1044
|
-
index,
|
1045
|
-
log,
|
1046
|
-
comment,
|
1047
|
-
link,
|
1048
|
-
user_data,
|
1049
|
-
dump_count,
|
1050
|
-
sent_bytes,
|
1051
|
-
received_bytes
|
1052
|
-
]
|
1095
|
+
result_storage << current_record
|
1053
1096
|
end
|
1097
|
+
|
1054
1098
|
when 'all'
|
1055
|
-
|
1056
|
-
|
1057
|
-
|
1058
|
-
|
1059
|
-
|
1060
|
-
|
1061
|
-
|
1062
|
-
|
1063
|
-
|
1064
|
-
|
1065
|
-
|
1066
|
-
|
1067
|
-
|
1068
|
-
|
1069
|
-
|
1070
|
-
|
1071
|
-
|
1099
|
+
if case_name
|
1100
|
+
if value==case_name
|
1101
|
+
result_storage << current_record
|
1102
|
+
end
|
1103
|
+
else
|
1104
|
+
result_storage << current_record
|
1105
|
+
end
|
1106
|
+
else
|
1107
|
+
if @pass_statuses.include?(status)
|
1108
|
+
if (( case_name and value==case_name ) or !case_name )
|
1109
|
+
result_storage << current_record
|
1110
|
+
end
|
1111
|
+
elsif @fail_statuses.include?(status)
|
1112
|
+
if (( case_name and value==case_name ) or !case_name )
|
1113
|
+
result_storage << current_record
|
1114
|
+
end
|
1115
|
+
elsif @not_run_statuses.include?(status)
|
1116
|
+
if (( case_name and value==case_name ) or !case_name )
|
1117
|
+
result_storage << current_record
|
1118
|
+
end
|
1119
|
+
end
|
1072
1120
|
end
|
1073
1121
|
end
|
1074
1122
|
xml_data=nil
|
@@ -1143,18 +1191,41 @@ module TDriverReportCreator
|
|
1143
1191
|
# === returns
|
1144
1192
|
# nil
|
1145
1193
|
# === raises
|
1146
|
-
def update_test_case_summary_page(status,rewrite=false,title="")
|
1194
|
+
def update_test_case_summary_page(status,rewrite=false,title="",test_case_name=nil,tc_result_arr=nil)
|
1147
1195
|
@cases_arr=Array.new
|
1148
|
-
|
1149
|
-
@
|
1196
|
+
search_case = nil
|
1197
|
+
if @pass_statuses.include?(status)
|
1198
|
+
search_case = "passed"
|
1199
|
+
elsif @fail_statuses.include?(status)
|
1200
|
+
search_case = "failed"
|
1201
|
+
elsif @not_run_statuses.include?(status)
|
1202
|
+
search_case = "not_run"
|
1203
|
+
else
|
1204
|
+
search_case = status
|
1205
|
+
end
|
1206
|
+
status=status.gsub(' ','_')
|
1207
|
+
if test_case_name
|
1208
|
+
@cases_arr=read_result_storage(search_case,test_case_name)
|
1209
|
+
else
|
1210
|
+
@cases_arr=read_result_storage(search_case)
|
1211
|
+
end
|
1150
1212
|
splitted_arr=Array.new
|
1151
1213
|
splitted_arr=split_array(@cases_arr,@pages.to_i)
|
1152
1214
|
page=1
|
1153
1215
|
splitted_arr.each do |case_arr|
|
1154
|
-
|
1155
|
-
|
1156
|
-
|
1157
|
-
|
1216
|
+
|
1217
|
+
if test_case_name
|
1218
|
+
if @report_pages_ready.include?("#{page}_#{status}_#{test_case_name}")==false || rewrite==true
|
1219
|
+
write_page_start(@report_folder+"/cases/#{page}_#{status}_#{test_case_name}_index.html",title,page,splitted_arr.length)
|
1220
|
+
write_test_case_summary_body(@report_folder+"/cases/#{page}_#{status}_#{test_case_name}_index.html",status,case_arr,nil)
|
1221
|
+
page_ready=write_page_end(@report_folder+"/cases/#{page}_#{status}_#{test_case_name}_index.html",page,splitted_arr.length)
|
1222
|
+
end
|
1223
|
+
else
|
1224
|
+
if @report_pages_ready.include?("#{page}_#{status}")==false || rewrite==true
|
1225
|
+
write_page_start(@report_folder+"/cases/#{page}_#{status}_index.html",title,page,splitted_arr.length)
|
1226
|
+
write_test_case_summary_body(@report_folder+"/cases/#{page}_#{status}_index.html",status,case_arr,nil)
|
1227
|
+
page_ready=write_page_end(@report_folder+"/cases/#{page}_#{status}_index.html",page,splitted_arr.length)
|
1228
|
+
end
|
1158
1229
|
end
|
1159
1230
|
if page_ready!=nil
|
1160
1231
|
@report_pages_ready << "#{page_ready}_#{status}"
|
@@ -438,9 +438,10 @@ display: block;
|
|
438
438
|
end
|
439
439
|
|
440
440
|
def format_duration(seconds)
|
441
|
-
|
441
|
+
begin
|
442
|
+
require 'chronic_duration'
|
442
443
|
duration_str=ChronicDuration.output(seconds)
|
443
|
-
|
444
|
+
rescue LoadError
|
444
445
|
m, s = seconds.divmod(60)
|
445
446
|
duration_str="#{m}m#{'%.3f' % s}s"
|
446
447
|
end
|
@@ -467,7 +468,7 @@ display: block;
|
|
467
468
|
def copy_code_file_to_test_case_report(file,folder,linen)
|
468
469
|
begin
|
469
470
|
FileUtils.mkdir_p(folder.to_s+'/stack_files') if File::directory?(folder.to_s+'/stack_files')==false
|
470
|
-
if File.directory?("#{Dir.pwd}/#{@report_folder}/#{folder}")
|
471
|
+
if File.directory?("#{Dir.pwd}/#{@report_folder}/#{folder}")
|
471
472
|
write_stack_file_to_html(file,"#{Dir.pwd}/#{@report_folder}/#{folder}/stack_files/#{File.basename(file)}.html",linen)
|
472
473
|
FileUtils.copy(file,"#{Dir.pwd}/#{@report_folder}/#{folder}/stack_files/#{File.basename(file)}")
|
473
474
|
else
|
@@ -483,16 +484,16 @@ display: block;
|
|
483
484
|
|
484
485
|
def reporter_link_to_code(log_line,folder=nil)
|
485
486
|
begin
|
486
|
-
log_line.gsub(/([\w\*\/\w\/\.-]+)\:(\d+)/) do |match|
|
487
|
-
line=match[
|
488
|
-
f=match[/([\w\*\/\w\/\.-]+)/]
|
487
|
+
log_line.gsub(/([\w \*\/\w\/\.-]+)\:(\d+)/) do |match|
|
488
|
+
line=match[/\:(\d+)/]
|
489
|
+
f=match[/([\w \*\/\w\/\.-]+)/]
|
489
490
|
file="#{File.dirname(f.strip)}/#{File.basename(f.strip)}"
|
490
491
|
file = file if File.exist?(file)
|
491
492
|
file = "#{Dir.pwd}/#{file}" if File.exist?("#{Dir.pwd}/#{file}")
|
492
493
|
if File.exist?(file) && match.include?('testability-driver')==false
|
493
|
-
copy_code_file_to_test_case_report(file,folder,line.strip)
|
494
|
+
copy_code_file_to_test_case_report(file,folder,line.gsub(':','').strip)
|
494
495
|
link_to_stack='<a style="color: #FF0000" href="stack_files/'<<
|
495
|
-
File.basename(file.to_s)+'.html#'+line.to_s<<
|
496
|
+
File.basename(file.to_s)+'.html#'+line.to_s.gsub(':','')<<
|
496
497
|
'">'+match+'</a>'
|
497
498
|
log_line=log_line.gsub(match,link_to_stack)
|
498
499
|
end
|
@@ -645,7 +646,12 @@ display: block;
|
|
645
646
|
when "TDriver test environment","Total run","Statistics","Passed","Failed","Not run","Crash","Reboot","TDriver log"
|
646
647
|
stylesheet='<link rel="stylesheet" title="TDriverReportStyle" href="../tdriver_report_style.css"/>'
|
647
648
|
else
|
648
|
-
|
649
|
+
if title.include?("Test:")
|
650
|
+
stylesheet='<link rel="stylesheet" title="TDriverReportStyle" href="../tdriver_report_style.css"/>'
|
651
|
+
else
|
652
|
+
stylesheet='<link rel="stylesheet" title="TDriverReportStyle" href="../../tdriver_report_style.css"/>'
|
653
|
+
end
|
654
|
+
|
649
655
|
end
|
650
656
|
html_start='<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">' <<
|
651
657
|
'<html xmlns="http://www.w3.org/1999/xhtml">'<<
|
@@ -896,12 +902,11 @@ display: block;
|
|
896
902
|
end
|
897
903
|
tdriver_group = nil
|
898
904
|
html_body=nil
|
899
|
-
|
905
|
+
|
900
906
|
end
|
901
|
-
def write_test_case_summary_body(page,status,tc_arr,chronological_page=nil,report_page=nil)
|
907
|
+
def write_test_case_summary_body(page,status,tc_arr,chronological_page=nil,report_page=nil,test_case_name=nil)
|
902
908
|
html_body=Array.new
|
903
|
-
|
904
|
-
when 'passed'
|
909
|
+
if @pass_statuses.include?(status) || status == "passed"
|
905
910
|
title='<div class="page_title"><center><h1>Passed</h1></center></div>'<<
|
906
911
|
'<div class="summary_passed">' <<
|
907
912
|
'<form action="save_total_run_results" >'
|
@@ -915,7 +920,7 @@ display: block;
|
|
915
920
|
html_body << '<form action="save_results_to" ><input type="submit" name="save_results_to" value="Download report" /></form>' if @report_editable=='true'
|
916
921
|
tdriver_group=nil
|
917
922
|
html_result=nil
|
918
|
-
|
923
|
+
elsif @fail_statuses.include?(status) || status == "failed"
|
919
924
|
title='<div class="page_title"><center><h1>Failed</h1></center></div>'<<
|
920
925
|
'<div class="summary_failed">' <<
|
921
926
|
'<form action="save_total_run_results" >'
|
@@ -929,7 +934,7 @@ display: block;
|
|
929
934
|
html_body << '<form action="save_results_to" ><input type="submit" name="save_results_to" value="Download report" /></form>' if @report_editable=='true'
|
930
935
|
tdriver_group=nil
|
931
936
|
html_result=nil
|
932
|
-
|
937
|
+
elsif @not_run_statuses.include?(status) || status == "not_run"
|
933
938
|
title='<div class="page_title"><center><h1>Not run</h1></center></div>'<<
|
934
939
|
'<div class="summary_not_run">' <<
|
935
940
|
'<form action="save_total_run_results" >'
|
@@ -943,6 +948,8 @@ display: block;
|
|
943
948
|
html_body << '<form action="save_results_to" ><input type="submit" name="save_results_to" value="Download report" /></form>' if @report_editable=='true'
|
944
949
|
tdriver_group=nil
|
945
950
|
html_result=nil
|
951
|
+
else
|
952
|
+
case status
|
946
953
|
when 'crash'
|
947
954
|
title='<div class="page_title"><center><h1>Crash</h1></center></div>'<<
|
948
955
|
'<div class="summary_crash">' <<
|
@@ -1017,25 +1024,27 @@ display: block;
|
|
1017
1024
|
tdriver_group=nil
|
1018
1025
|
chronological_html_result=nil
|
1019
1026
|
chronological_html_body=nil
|
1020
|
-
end
|
1027
|
+
end # case
|
1028
|
+
end # if
|
1029
|
+
|
1021
1030
|
html_body << '</div>'
|
1022
1031
|
File.open(page, 'a') do |f2|
|
1023
1032
|
f2.puts html_body
|
1024
1033
|
end
|
1025
1034
|
html_body=nil
|
1026
|
-
|
1035
|
+
|
1027
1036
|
end
|
1028
1037
|
|
1029
1038
|
def write_summary_body(page,start_time,end_time,run_time,total_run,total_passed,total_failed,total_not_run,total_crash_files,total_device_resets,summary_arr=nil)
|
1030
|
-
fail_rate=0
|
1031
|
-
pass_rate=0
|
1032
|
-
if total_run.to_i >
|
1039
|
+
fail_rate="0"
|
1040
|
+
pass_rate="0"
|
1041
|
+
if total_run.to_i > total_not_run.to_i
|
1033
1042
|
begin
|
1034
1043
|
fail_rate=(total_failed.to_f/(total_run.to_f-total_not_run.to_f))*100
|
1035
1044
|
pass_rate=(total_passed.to_f/(total_run.to_f-total_not_run.to_f))*100
|
1036
1045
|
fail_rate="%0.2f" % fail_rate
|
1037
1046
|
pass_rate="%0.2f" % pass_rate
|
1038
|
-
rescue
|
1047
|
+
rescue # Note that 0.0/0.0 does result in NaN, it does not cause an exception
|
1039
1048
|
fail_rate="0"
|
1040
1049
|
pass_rate="0"
|
1041
1050
|
end
|
@@ -1310,14 +1319,25 @@ display: block;
|
|
1310
1319
|
failed_link="#{report_page}_failed_index.html\""
|
1311
1320
|
not_run_link="#{report_page}_not_run_index.html\""
|
1312
1321
|
else
|
1313
|
-
|
1314
|
-
|
1315
|
-
|
1316
|
-
|
1317
|
-
|
1318
|
-
|
1319
|
-
|
1320
|
-
|
1322
|
+
if title.include?("Test:")
|
1323
|
+
tdriver_test_results_link='../index.html"'
|
1324
|
+
tdriver_test_environment_link='../environment/index.html"'
|
1325
|
+
tdriver_log_link='tdriver_log_index.html"'
|
1326
|
+
total_run_link="1_total_run_index.html\""
|
1327
|
+
statistics_link='statistics_index.html"'
|
1328
|
+
passed_link="1_passed_index.html\""
|
1329
|
+
failed_link="#{report_page}_failed_index.html\" class=\"current\""
|
1330
|
+
not_run_link="1_not_run_index.html\""
|
1331
|
+
else
|
1332
|
+
tdriver_test_results_link='../../index.html"'
|
1333
|
+
tdriver_test_environment_link='../../environment/index.html"'
|
1334
|
+
tdriver_log_link='../tdriver_log_index.html"'
|
1335
|
+
total_run_link="../1_total_run_index.html\""
|
1336
|
+
statistics_link='../statistics_index.html"'
|
1337
|
+
passed_link="../1_passed_index.html\""
|
1338
|
+
failed_link="../1_failed_index.html\""
|
1339
|
+
not_run_link="../1_not_run_index.html\""
|
1340
|
+
end
|
1321
1341
|
end
|
1322
1342
|
html_body='<div class="navigation_section"><div class="navigation_tabs">'<<
|
1323
1343
|
'<ul id="navigation_tabs_ul">'<<
|