testability-driver 1.0.4 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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">'<<
|