cutedriver-driver 2.0.0.20210120164037
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.
- checksums.yaml +7 -0
- data/README.md +16 -0
- data/bin/start_app_perf +200 -0
- data/bin/tdriver-devtools +3 -0
- data/config/sut_parameters.rb +52 -0
- data/config/sut_setup.rb +32 -0
- data/config/sut_teardown.rb +32 -0
- data/config/tdriver_custom_error_recovery.rb +83 -0
- data/ext/extconf.rb +70 -0
- data/ext/native_extensions.c +315 -0
- data/lib/matti.rb +25 -0
- data/lib/tdriver-devtools/behaviour/old/xml/example/flick-example.rb +120 -0
- data/lib/tdriver-devtools/behaviour/old/xml/example/impl.rb_invalid +194 -0
- data/lib/tdriver-devtools/behaviour/old/xml/generate_behaviour_xml.rb +95 -0
- data/lib/tdriver-devtools/behaviour/old/xml/lib/tdriver_generator.rb +722 -0
- data/lib/tdriver-devtools/behaviour/old/xml/qdoc_generator.rb +321 -0
- data/lib/tdriver-devtools/behaviour/old/xml/templates/behaviour.method.template +43 -0
- data/lib/tdriver-devtools/behaviour/old/xml/templates/behaviour.module.template +54 -0
- data/lib/tdriver-devtools/behaviour/old/xml/templates/behaviour.xml.argument.template +7 -0
- data/lib/tdriver-devtools/behaviour/old/xml/templates/behaviour.xml.argument_type.template +7 -0
- data/lib/tdriver-devtools/behaviour/old/xml/templates/behaviour.xml.exception.template +5 -0
- data/lib/tdriver-devtools/behaviour/old/xml/templates/behaviour.xml.howto.line.template +2 -0
- data/lib/tdriver-devtools/behaviour/old/xml/templates/behaviour.xml.howto.template +5 -0
- data/lib/tdriver-devtools/behaviour/old/xml/templates/behaviour.xml.method.template +23 -0
- data/lib/tdriver-devtools/behaviour/old/xml/templates/behaviour.xml.template +14 -0
- data/lib/tdriver-devtools/behaviour/old/xml/update +3 -0
- data/lib/tdriver-devtools/behaviour/xml/generate.rb +88 -0
- data/lib/tdriver-devtools/behaviour/xml/rdoc_behaviour_xml_generator.rb +1945 -0
- data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.argument.default.template +1 -0
- data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.argument.template +3 -0
- data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.argument_type.template +4 -0
- data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.exception.template +4 -0
- data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.method.arguments.template +4 -0
- data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.method.deprecated.template +3 -0
- data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.method.exceptions.template +3 -0
- data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.method.info.template +1 -0
- data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.method.returns.template +3 -0
- data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.method.tables.template +3 -0
- data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.method.template +12 -0
- data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.returns.template +5 -0
- data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.table.item.template +1 -0
- data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.table.row.template +2 -0
- data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.table.template +8 -0
- data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.template +14 -0
- data/lib/tdriver-devtools/doc/behaviour_xml/QtExampleGestureBehaviour.xml +138 -0
- data/lib/tdriver-devtools/doc/behaviour_xml/created.rid +1 -0
- data/lib/tdriver-devtools/doc/behaviour_xml/tdriver.hash +1 -0
- data/lib/tdriver-devtools/doc/feature_xml/qt_widget_hold.feature.xml +9 -0
- data/lib/tdriver-devtools/doc/feature_xml/qt_widget_tap.feature.xml +9 -0
- data/lib/tdriver-devtools/doc/generate.rb +917 -0
- data/lib/tdriver-devtools/doc/update +1 -0
- data/lib/tdriver-devtools/doc/xslt/html.rb +7 -0
- data/lib/tdriver-devtools/doc/xslt/template.xsl +2170 -0
- data/lib/tdriver-devtools/doc/xslt/update +3 -0
- data/lib/tdriver-devtools/plugin/placeholder.txt +1 -0
- data/lib/tdriver-devtools/tdriver-devtools.rb +404 -0
- data/lib/tdriver-devtools/tests/feature_tests/example/behaviour_example.rb +100 -0
- data/lib/tdriver-devtools/tests/feature_tests/generate.rb +82 -0
- data/lib/tdriver-devtools/tests/feature_tests/lib/custom_rdoc_generator.rb +468 -0
- data/lib/tdriver-devtools/tests/feature_tests/templates/feature_attribute.template +5 -0
- data/lib/tdriver-devtools/tests/feature_tests/templates/feature_method.template +5 -0
- data/lib/tdriver-devtools/tests/feature_tests/templates/scenario_attribute.template +5 -0
- data/lib/tdriver-devtools/tests/feature_tests/templates/scenario_method.template +5 -0
- data/lib/tdriver-devtools/tests/feature_tests/update +3 -0
- data/lib/tdriver.rb +23 -0
- data/lib/tdriver/base/behaviour/abstract.rb +29 -0
- data/lib/tdriver/base/behaviour/behaviours/object_abstract.rb +107 -0
- data/lib/tdriver/base/behaviour/behaviours/object_behaviour_composition.rb +99 -0
- data/lib/tdriver/base/behaviour/behaviours/object_behaviour_description.rb +278 -0
- data/lib/tdriver/base/behaviour/behaviours/object_composition.rb +119 -0
- data/lib/tdriver/base/behaviour/factory.rb +495 -0
- data/lib/tdriver/base/behaviour/loader.rb +46 -0
- data/lib/tdriver/base/command_data/command_data.rb +51 -0
- data/lib/tdriver/base/command_data/loader.rb +29 -0
- data/lib/tdriver/base/controller/abstraction.rb +56 -0
- data/lib/tdriver/base/controller/loader.rb +21 -0
- data/lib/tdriver/base/errors.rb +134 -0
- data/lib/tdriver/base/loader.rb +47 -0
- data/lib/tdriver/base/state_object.rb +373 -0
- data/lib/tdriver/base/sut/adapter.rb +54 -0
- data/lib/tdriver/base/sut/controller.rb +151 -0
- data/lib/tdriver/base/sut/factory.rb +339 -0
- data/lib/tdriver/base/sut/generic/behaviours/agent.rb +77 -0
- data/lib/tdriver/base/sut/generic/behaviours/application.rb +427 -0
- data/lib/tdriver/base/sut/generic/behaviours/controller.rb +67 -0
- data/lib/tdriver/base/sut/generic/behaviours/find.rb +107 -0
- data/lib/tdriver/base/sut/generic/behaviours/flash_behaviour.rb +337 -0
- data/lib/tdriver/base/sut/generic/behaviours/sut.rb +1888 -0
- data/lib/tdriver/base/sut/generic/behaviours/switchbox_behaviour.rb +210 -0
- data/lib/tdriver/base/sut/generic/behaviours/verification.rb +222 -0
- data/lib/tdriver/base/sut/generic/commands/agent.rb +43 -0
- data/lib/tdriver/base/sut/generic/commands/application.rb +274 -0
- data/lib/tdriver/base/sut/generic/commands/fixture.rb +47 -0
- data/lib/tdriver/base/sut/generic/commands/key_sequence.rb +94 -0
- data/lib/tdriver/base/sut/generic/commands/screen_capture.rb +64 -0
- data/lib/tdriver/base/sut/generic/plugin.rb +97 -0
- data/lib/tdriver/base/sut/loader.rb +35 -0
- data/lib/tdriver/base/sut/sut.rb +98 -0
- data/lib/tdriver/base/test_object/abstract.rb +208 -0
- data/lib/tdriver/base/test_object/adapter.rb +740 -0
- data/lib/tdriver/base/test_object/behaviours/syncronization.rb +144 -0
- data/lib/tdriver/base/test_object/behaviours/test_object.rb +1047 -0
- data/lib/tdriver/base/test_object/cache.rb +134 -0
- data/lib/tdriver/base/test_object/factory.rb +684 -0
- data/lib/tdriver/base/test_object/loader.rb +51 -0
- data/lib/tdriver/base/test_object/verification.rb +178 -0
- data/lib/tdriver/base/test_object/xml/abstraction.rb +63 -0
- data/lib/tdriver/base/test_object/xml/adapter.rb +773 -0
- data/lib/tdriver/env.rb +21 -0
- data/lib/tdriver/loader.rb +57 -0
- data/lib/tdriver/matti.rb +35 -0
- data/lib/tdriver/report/error_recovery/tdriver_custom_error_recovery.rb +83 -0
- data/lib/tdriver/report/error_recovery/tdriver_error_recovery.rb +168 -0
- data/lib/tdriver/report/error_recovery/tdriver_error_recovery_settings.rb +106 -0
- data/lib/tdriver/report/report.rb +61 -0
- data/lib/tdriver/report/report_api.rb +348 -0
- data/lib/tdriver/report/report_combine.rb +86 -0
- data/lib/tdriver/report/report_crash_file_capture.rb +178 -0
- data/lib/tdriver/report/report_creator.rb +665 -0
- data/lib/tdriver/report/report_cucumber.rb +158 -0
- data/lib/tdriver/report/report_cucumber_listener.rb +184 -0
- data/lib/tdriver/report/report_cucumber_reporter.rb +181 -0
- data/lib/tdriver/report/report_data_presentation.rb +156 -0
- data/lib/tdriver/report/report_data_table.rb +64 -0
- data/lib/tdriver/report/report_execution_statistics.rb +400 -0
- data/lib/tdriver/report/report_file_capture.rb +159 -0
- data/lib/tdriver/report/report_graph_generator.rb +59 -0
- data/lib/tdriver/report/report_grouping.rb +541 -0
- data/lib/tdriver/report/report_javascript.rb +199 -0
- data/lib/tdriver/report/report_junit_xml.rb +147 -0
- data/lib/tdriver/report/report_rspec.rb +108 -0
- data/lib/tdriver/report/report_test_case_run.rb +725 -0
- data/lib/tdriver/report/report_test_run.rb +1476 -0
- data/lib/tdriver/report/report_test_unit.rb +223 -0
- data/lib/tdriver/report/report_writer.rb +1621 -0
- data/lib/tdriver/tdriver.rb +209 -0
- data/lib/tdriver/util/agent/loader.rb +22 -0
- data/lib/tdriver/util/agent/service.rb +107 -0
- data/lib/tdriver/util/common/array.rb +39 -0
- data/lib/tdriver/util/common/boolean.rb +48 -0
- data/lib/tdriver/util/common/crc16.rb +149 -0
- data/lib/tdriver/util/common/environment.rb +154 -0
- data/lib/tdriver/util/common/error.rb +40 -0
- data/lib/tdriver/util/common/exception.rb +53 -0
- data/lib/tdriver/util/common/exceptions.rb +12 -0
- data/lib/tdriver/util/common/file.rb +328 -0
- data/lib/tdriver/util/common/gem.rb +109 -0
- data/lib/tdriver/util/common/hash.rb +288 -0
- data/lib/tdriver/util/common/kernel.rb +253 -0
- data/lib/tdriver/util/common/loader.rb +47 -0
- data/lib/tdriver/util/common/numeric.rb +159 -0
- data/lib/tdriver/util/common/object.rb +159 -0
- data/lib/tdriver/util/common/retryable.rb +179 -0
- data/lib/tdriver/util/common/stackable.rb +185 -0
- data/lib/tdriver/util/common/string.rb +174 -0
- data/lib/tdriver/util/database/access.rb +240 -0
- data/lib/tdriver/util/database/connection.rb +44 -0
- data/lib/tdriver/util/database/error.rb +34 -0
- data/lib/tdriver/util/database/loader.rb +28 -0
- data/lib/tdriver/util/filters/attribute_filter.rb +121 -0
- data/lib/tdriver/util/filters/loader.rb +29 -0
- data/lib/tdriver/util/fixture/loader.rb +22 -0
- data/lib/tdriver/util/fixture/service.rb +211 -0
- data/lib/tdriver/util/hooking/hooking.rb +477 -0
- data/lib/tdriver/util/keymap/keymap.rb +81 -0
- data/lib/tdriver/util/loader.rb +80 -0
- data/lib/tdriver/util/localisation/error.rb +31 -0
- data/lib/tdriver/util/localisation/loader.rb +25 -0
- data/lib/tdriver/util/localisation/localisation.rb +762 -0
- data/lib/tdriver/util/logger/loader.rb +22 -0
- data/lib/tdriver/util/logger/logger.rb +591 -0
- data/lib/tdriver/util/operator_data/error.rb +29 -0
- data/lib/tdriver/util/operator_data/loader.rb +27 -0
- data/lib/tdriver/util/operator_data/operator_data.rb +93 -0
- data/lib/tdriver/util/other/config.rb +221 -0
- data/lib/tdriver/util/parameter/error.rb +48 -0
- data/lib/tdriver/util/parameter/loader.rb +25 -0
- data/lib/tdriver/util/parameter/parameter.rb +1161 -0
- data/lib/tdriver/util/plugin/abstract.rb +61 -0
- data/lib/tdriver/util/plugin/error.rb +0 -0
- data/lib/tdriver/util/plugin/loader.rb +28 -0
- data/lib/tdriver/util/plugin/service.rb +319 -0
- data/lib/tdriver/util/recorder/loader.rb +25 -0
- data/lib/tdriver/util/recorder/recorder.rb +72 -0
- data/lib/tdriver/util/recorder/scripter.rb +294 -0
- data/lib/tdriver/util/statistics/statistics.rb +89 -0
- data/lib/tdriver/util/user_data/error.rb +28 -0
- data/lib/tdriver/util/user_data/loader.rb +25 -0
- data/lib/tdriver/util/user_data/user_data.rb +104 -0
- data/lib/tdriver/util/video/camera.rb +67 -0
- data/lib/tdriver/util/video/camera_linux.rb +153 -0
- data/lib/tdriver/util/video/camera_windows.rb +174 -0
- data/lib/tdriver/util/video/loader.rb +31 -0
- data/lib/tdriver/util/video/video_utils.rb +139 -0
- data/lib/tdriver/util/xml/abstraction.rb +117 -0
- data/lib/tdriver/util/xml/attribute.rb +32 -0
- data/lib/tdriver/util/xml/builder.rb +53 -0
- data/lib/tdriver/util/xml/comment.rb +32 -0
- data/lib/tdriver/util/xml/document.rb +32 -0
- data/lib/tdriver/util/xml/element.rb +32 -0
- data/lib/tdriver/util/xml/error.rb +46 -0
- data/lib/tdriver/util/xml/loader.rb +62 -0
- data/lib/tdriver/util/xml/nil_node.rb +95 -0
- data/lib/tdriver/util/xml/nodeset.rb +32 -0
- data/lib/tdriver/util/xml/parsers/libxml/libxml.rb +140 -0
- data/lib/tdriver/util/xml/parsers/loader.rb +21 -0
- data/lib/tdriver/util/xml/parsers/nokogiri/abstraction.rb +167 -0
- data/lib/tdriver/util/xml/parsers/nokogiri/attribute.rb +66 -0
- data/lib/tdriver/util/xml/parsers/nokogiri/builder.rb +64 -0
- data/lib/tdriver/util/xml/parsers/nokogiri/comment.rb +39 -0
- data/lib/tdriver/util/xml/parsers/nokogiri/document.rb +66 -0
- data/lib/tdriver/util/xml/parsers/nokogiri/element.rb +39 -0
- data/lib/tdriver/util/xml/parsers/nokogiri/loader.rb +58 -0
- data/lib/tdriver/util/xml/parsers/nokogiri/node.rb +212 -0
- data/lib/tdriver/util/xml/parsers/nokogiri/nodeset.rb +237 -0
- data/lib/tdriver/util/xml/parsers/nokogiri/text.rb +39 -0
- data/lib/tdriver/util/xml/text.rb +32 -0
- data/lib/tdriver/util/xml/xml.rb +332 -0
- data/lib/tdriver/verify/verify.rb +2398 -0
- data/lib/tdriver/version.rb +21 -0
- data/xml/behaviours/generic.xml +530 -0
- data/xml/defaults/generic.xml +11 -0
- data/xml/defaults/sut_generic.xml +8 -0
- data/xml/parameters/tdriver_parameters.xml +23 -0
- data/xml/templates/generic.xml +292 -0
- metadata +324 -0
@@ -0,0 +1,159 @@
|
|
1
|
+
############################################################################
|
2
|
+
##
|
3
|
+
## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
|
4
|
+
## All rights reserved.
|
5
|
+
## Contact: Nokia Corporation (testabilitydriver@nokia.com)
|
6
|
+
##
|
7
|
+
## This file is part of Testability Driver.
|
8
|
+
##
|
9
|
+
## If you have questions regarding the use of this file, please contact
|
10
|
+
## Nokia at testabilitydriver@nokia.com .
|
11
|
+
##
|
12
|
+
## This library is free software; you can redistribute it and/or
|
13
|
+
## modify it under the terms of the GNU Lesser General Public
|
14
|
+
## License version 2.1 as published by the Free Software Foundation
|
15
|
+
## and appearing in the file LICENSE.LGPL included in the packaging
|
16
|
+
## of this file.
|
17
|
+
##
|
18
|
+
############################################################################
|
19
|
+
|
20
|
+
|
21
|
+
|
22
|
+
module TDriverReportFileCapture
|
23
|
+
def initialize
|
24
|
+
@file_locations=Array.new
|
25
|
+
@file_suts=Array.new
|
26
|
+
@file_names=Array.new
|
27
|
+
@file_count=0
|
28
|
+
@monitor_files='false'
|
29
|
+
read_file_monitor_settings()
|
30
|
+
end
|
31
|
+
|
32
|
+
def return_settings_value_array(setting)
|
33
|
+
setting_value=setting
|
34
|
+
setting_arr=Array.new
|
35
|
+
setting_arr=setting_value.split(',')
|
36
|
+
setting_arr
|
37
|
+
end
|
38
|
+
|
39
|
+
def read_file_monitor_settings()
|
40
|
+
@file_locations=return_settings_value_array($parameters[ :report_file_locations, nil ])
|
41
|
+
@file_suts=return_settings_value_array($parameters[ :report_file_monitored_sut_ids, nil ])
|
42
|
+
@file_names=return_settings_value_array($parameters[ :report_file_names, nil ])
|
43
|
+
@clean_files=$parameters[ :report_clean_files_from_sut_after_capture, 'true' ]
|
44
|
+
@monitor_files = $parameters[ :report_file_monitor, 'false' ]
|
45
|
+
end
|
46
|
+
|
47
|
+
def clean_files_from_sut()
|
48
|
+
|
49
|
+
if @monitor_files == 'true' && @clean_files == 'true'
|
50
|
+
TDriver::SUTFactory.connected_suts.each do |sut_id, sut_attributes|
|
51
|
+
if sut_attributes[:is_connected]
|
52
|
+
@file_suts.each do |monitored_sut|
|
53
|
+
if monitored_sut == sut_id.to_s
|
54
|
+
sut_files=Array.new
|
55
|
+
sut_files=list_sut_files(sut_attributes[:sut])
|
56
|
+
sut_files.each do |file|
|
57
|
+
delete_file(sut_attributes[:sut],file)
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
def list_sut_files(current_sut)
|
67
|
+
file_arr=Array.new
|
68
|
+
@file_count=0
|
69
|
+
#for every location:
|
70
|
+
@file_locations.each do |location|
|
71
|
+
begin
|
72
|
+
#get file names
|
73
|
+
current_location_files=Array.new
|
74
|
+
@file_names.each do |file_name|
|
75
|
+
current_location_files = current_sut.list_files_from_sut( :from => location, :file=> file_name.to_s )
|
76
|
+
#collect crash names and add paths
|
77
|
+
current_location_files.each do |sut_file|
|
78
|
+
#if file_is_file(sut_file)
|
79
|
+
file_arr << sut_file.to_s
|
80
|
+
@file_count+=1
|
81
|
+
#end
|
82
|
+
end
|
83
|
+
end
|
84
|
+
rescue => ex
|
85
|
+
#puts ex.message
|
86
|
+
end
|
87
|
+
end
|
88
|
+
file_arr
|
89
|
+
end
|
90
|
+
|
91
|
+
def download_file(current_sut,file_name,download_folder)
|
92
|
+
begin
|
93
|
+
current_sut.copy_from_sut(:file => file_name, :to => download_folder )
|
94
|
+
rescue => ex
|
95
|
+
#puts ex.message
|
96
|
+
end
|
97
|
+
end
|
98
|
+
|
99
|
+
def delete_file(current_sut,file_name)
|
100
|
+
begin
|
101
|
+
current_sut.delete_from_sut(:file => file_name )
|
102
|
+
rescue => ex
|
103
|
+
#puts ex.message
|
104
|
+
end
|
105
|
+
end
|
106
|
+
|
107
|
+
def check_if_files_exist()
|
108
|
+
sut_files=Array.new
|
109
|
+
if @monitor_files == 'true'
|
110
|
+
TDriver::SUTFactory.connected_suts.each do |sut_id, sut_attributes|
|
111
|
+
if sut_attributes[:is_connected]
|
112
|
+
@file_suts.each do |monitored_sut|
|
113
|
+
if monitored_sut == sut_id.to_s
|
114
|
+
sut_files << list_sut_files(sut_attributes[:sut])
|
115
|
+
end
|
116
|
+
end
|
117
|
+
end
|
118
|
+
end
|
119
|
+
@file_count
|
120
|
+
else
|
121
|
+
@file_count
|
122
|
+
end
|
123
|
+
end
|
124
|
+
|
125
|
+
def download_files(download_folder)
|
126
|
+
if @monitor_files == 'true'
|
127
|
+
TDriver::SUTFactory.connected_suts.each do |sut_id, sut_attributes|
|
128
|
+
if sut_attributes[:is_connected]
|
129
|
+
@file_suts.each do |monitored_sut|
|
130
|
+
if monitored_sut == sut_id.to_s
|
131
|
+
sut_files=Array.new
|
132
|
+
sut_files=list_sut_files(sut_attributes[:sut])
|
133
|
+
sut_files.each do |file|
|
134
|
+
download_file(sut_attributes[:sut],file,download_folder.gsub("\\",'/')+'/')
|
135
|
+
end
|
136
|
+
end
|
137
|
+
end
|
138
|
+
end
|
139
|
+
end
|
140
|
+
end
|
141
|
+
end
|
142
|
+
|
143
|
+
def capture_files()
|
144
|
+
if @monitor_files == 'true'
|
145
|
+
begin
|
146
|
+
dump_folder=@test_case_folder+'/files'
|
147
|
+
if File::directory?(dump_folder)==false
|
148
|
+
FileUtils.mkdir_p dump_folder
|
149
|
+
end
|
150
|
+
download_files(dump_folder)
|
151
|
+
rescue Exception => e
|
152
|
+
@test_case_execution_log=@test_case_execution_log.to_s + '<br />' + "Unable to capture files: " + e.message + e.backtrace.to_s
|
153
|
+
end
|
154
|
+
end
|
155
|
+
end
|
156
|
+
end
|
157
|
+
|
158
|
+
|
159
|
+
|
@@ -0,0 +1,59 @@
|
|
1
|
+
############################################################################
|
2
|
+
##
|
3
|
+
## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
|
4
|
+
## All rights reserved.
|
5
|
+
## Contact: Nokia Corporation (testabilitydriver@nokia.com)
|
6
|
+
##
|
7
|
+
## This file is part of Testability Driver.
|
8
|
+
##
|
9
|
+
## If you have questions regarding the use of this file, please contact
|
10
|
+
## Nokia at testabilitydriver@nokia.com .
|
11
|
+
##
|
12
|
+
## This library is free software; you can redistribute it and/or
|
13
|
+
## modify it under the terms of the GNU Lesser General Public
|
14
|
+
## License version 2.1 as published by the Free Software Foundation
|
15
|
+
## and appearing in the file LICENSE.LGPL included in the packaging
|
16
|
+
## of this file.
|
17
|
+
##
|
18
|
+
############################################################################
|
19
|
+
|
20
|
+
class ReportGraphGenerator
|
21
|
+
def initialize(columns,data)
|
22
|
+
@columns=columns
|
23
|
+
@data=data
|
24
|
+
end
|
25
|
+
|
26
|
+
def generate_graph(file_name)
|
27
|
+
|
28
|
+
begin
|
29
|
+
require 'gruff'
|
30
|
+
rescue LoadError
|
31
|
+
$stderr.puts "Can't load the Gruff gem. If its missing from your system please run 'gem install gruff' to install it."
|
32
|
+
end
|
33
|
+
|
34
|
+
begin
|
35
|
+
g = Gruff::Line.new()
|
36
|
+
|
37
|
+
data_rows = Hash.new #Create hash for data
|
38
|
+
@columns.each do |title|
|
39
|
+
data_rows[title] = Array.new #Create array for data
|
40
|
+
end
|
41
|
+
|
42
|
+
@data.each do |value|
|
43
|
+
value.each_key do |key|
|
44
|
+
data_rows[key].push(value[key].to_f) #Put values in the row data
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
data_rows.each_key do |key|
|
49
|
+
g.data(key, data_rows[key])
|
50
|
+
end
|
51
|
+
|
52
|
+
g.write(file_name)
|
53
|
+
|
54
|
+
rescue Exception => e
|
55
|
+
puts "Graph creation failed #{e.message} from data: "
|
56
|
+
p data_rows
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
@@ -0,0 +1,541 @@
|
|
1
|
+
############################################################################
|
2
|
+
##
|
3
|
+
## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
|
4
|
+
## All rights reserved.
|
5
|
+
## Contact: Nokia Corporation (testabilitydriver@nokia.com)
|
6
|
+
##
|
7
|
+
## This file is part of Testability Driver.
|
8
|
+
##
|
9
|
+
## If you have questions regarding the use of this file, please contact
|
10
|
+
## Nokia at testabilitydriver@nokia.com .
|
11
|
+
##
|
12
|
+
## This library is free software; you can redistribute it and/or
|
13
|
+
## modify it under the terms of the GNU Lesser General Public
|
14
|
+
## License version 2.1 as published by the Free Software Foundation
|
15
|
+
## and appearing in the file LICENSE.LGPL included in the packaging
|
16
|
+
## of this file.
|
17
|
+
##
|
18
|
+
############################################################################
|
19
|
+
|
20
|
+
|
21
|
+
class ReportingGroups
|
22
|
+
def initialize(tdriver_groups,test_cases_array,grouping=true)
|
23
|
+
#@reporting_groups='Common:Application:Close:Open|Common:Connect to|Common:Disconnect|Qt:Tap|Qt:Drag:Drag to|Qt:Type Text'
|
24
|
+
if tdriver_groups != nil
|
25
|
+
@reporting_groups=clean_reporting_groups(tdriver_groups)
|
26
|
+
else
|
27
|
+
@reporting_groups=nil
|
28
|
+
end
|
29
|
+
@main_groups=Array.new
|
30
|
+
@main_groups_sub_level_one=Array.new
|
31
|
+
@main_groups_sub_level_two=Array.new
|
32
|
+
@main_groups_sub_level_three=Array.new
|
33
|
+
@main_groups_sub_level_four=Array.new
|
34
|
+
@main_groups_sub_level_five=Array.new
|
35
|
+
#Group statistics
|
36
|
+
@main_total=0
|
37
|
+
@main_passed=0
|
38
|
+
@main_failed=0
|
39
|
+
@main_not_run=0
|
40
|
+
@group_test_case_arr=Array.new(test_cases_array)
|
41
|
+
@grouping=grouping
|
42
|
+
@pass_statuses= $parameters[ :report_passed_statuses, "passed" ].split('|')
|
43
|
+
@fail_statuses= $parameters[ :report_failed_statuses, "failed" ].split('|')
|
44
|
+
@not_run_statuses= $parameters[ :report_not_run_statuses, "not run" ].split('|')
|
45
|
+
end
|
46
|
+
def clean_reporting_groups(report_group_string)
|
47
|
+
cleaned_group_string=''
|
48
|
+
reporting_groups_arr=report_group_string.split('|')
|
49
|
+
reporting_groups_arr.each do |main|
|
50
|
+
groups_arr=main.split(':')
|
51
|
+
first=true
|
52
|
+
groups_arr.each do |sub|
|
53
|
+
if first==true
|
54
|
+
cleaned_group_string+=sub.strip
|
55
|
+
first=false
|
56
|
+
else
|
57
|
+
cleaned_group_string+=':'+sub.strip
|
58
|
+
end
|
59
|
+
end
|
60
|
+
cleaned_group_string+='|'
|
61
|
+
end
|
62
|
+
cleaned_group_string
|
63
|
+
end
|
64
|
+
def tog_list_statistics(tc_arr,group,status)
|
65
|
+
status_row=''
|
66
|
+
if status=='all'
|
67
|
+
cases_in_group=0
|
68
|
+
passed=0
|
69
|
+
failed=0
|
70
|
+
not_run=0
|
71
|
+
tc_arr.each do |x|
|
72
|
+
if x[1]==group
|
73
|
+
cases_in_group+=1
|
74
|
+
tc_status=x[7]
|
75
|
+
passed+=1 if tc_status=='passed' || @pass_statuses.include?(tc_status)
|
76
|
+
failed+=1 if tc_status=='failed' || @fail_statuses.include?(tc_status)
|
77
|
+
not_run+=1 if tc_status=='not run' || @not_run_statuses.include?(tc_status)
|
78
|
+
end
|
79
|
+
end
|
80
|
+
if cases_in_group > 0
|
81
|
+
status_row = '<b style="color: #00FF00">Passed:</b>'+passed.to_s+' <b style="color: #FF0000">Failed:</b>'+failed.to_s+' <b style="color: #808080">Not run:</b>'+not_run.to_s+' <b>Total:</b>'+cases_in_group.to_s
|
82
|
+
else
|
83
|
+
status_row=0
|
84
|
+
end
|
85
|
+
else
|
86
|
+
cases_in_group=0
|
87
|
+
tc_arr.each do |x|
|
88
|
+
if x[1]==group
|
89
|
+
cases_in_group+=1
|
90
|
+
end
|
91
|
+
end
|
92
|
+
if cases_in_group > 0
|
93
|
+
status_row = '<b>Total:</b>'+cases_in_group.to_s
|
94
|
+
else
|
95
|
+
status_row=0
|
96
|
+
end
|
97
|
+
end
|
98
|
+
status_row
|
99
|
+
end
|
100
|
+
def tog_list_begin(name,tc_arr,status,main=nil)
|
101
|
+
if main==nil
|
102
|
+
test_statistics=tog_list_statistics(tc_arr,name,status)
|
103
|
+
if test_statistics != 0
|
104
|
+
html_body='<dl class="togList">'<<
|
105
|
+
'<dt onclick="tog(this)" style="background-color: #CCCCCC;"><b><span><input id="Button1" type="button" value="Close" class="btn" /></span> '<<
|
106
|
+
name.to_s<<
|
107
|
+
'</b> '<<
|
108
|
+
'</dt>'<<
|
109
|
+
'<dt>'<<
|
110
|
+
test_statistics<<
|
111
|
+
'</dt>'<<
|
112
|
+
'<dd>'
|
113
|
+
else
|
114
|
+
html_body=0
|
115
|
+
end
|
116
|
+
else
|
117
|
+
html_body='<dl class="togList">'<<
|
118
|
+
'<dt onclick="tog(this)" style="background-color: #CCCCCC;"><b><span><input id="Button1" type="button" value="Close" class="btn" /></span> '<<
|
119
|
+
name.to_s<<
|
120
|
+
'</b> '<<
|
121
|
+
'</dt>'<<
|
122
|
+
'<dd>'
|
123
|
+
end
|
124
|
+
html_body
|
125
|
+
end
|
126
|
+
def tog_list_end(summary=nil)
|
127
|
+
if summary == 'main'
|
128
|
+
html_body='</dd>'<<
|
129
|
+
'<dt>'<<
|
130
|
+
'<b style="color: #00FF00"> Passed:</b>'<<
|
131
|
+
@main_passed.to_s<<
|
132
|
+
'<b style="color: #FF0000"> Failed:</b>'<<
|
133
|
+
@main_failed.to_s<<
|
134
|
+
'<b style="color: #808080"> Not run:</b>'<<
|
135
|
+
@main_not_run.to_s<<
|
136
|
+
'<b> Total:</b> '<<
|
137
|
+
@main_total.to_s<<
|
138
|
+
'</dt>'<<
|
139
|
+
'</dl>'<<
|
140
|
+
'<hr />'
|
141
|
+
else
|
142
|
+
html_body='</dd>'<<
|
143
|
+
'</dl>'<<
|
144
|
+
'<hr />'
|
145
|
+
end
|
146
|
+
|
147
|
+
html_body
|
148
|
+
end
|
149
|
+
def check_duplicate_groups(group_arr,group)
|
150
|
+
b_group_exists=false
|
151
|
+
group_arr.each do |existing_group|
|
152
|
+
if existing_group[0] == group
|
153
|
+
b_group_exists=true
|
154
|
+
break
|
155
|
+
end
|
156
|
+
end
|
157
|
+
b_group_exists
|
158
|
+
end
|
159
|
+
def check_duplicate_sub_groups(group_arr,main_group,sub_group)
|
160
|
+
b_group_exists=false
|
161
|
+
group_arr.each do |existing_group|
|
162
|
+
if existing_group[0].to_s == main_group.to_s && existing_group[1].to_s == sub_group.to_s
|
163
|
+
b_group_exists=true
|
164
|
+
break
|
165
|
+
end
|
166
|
+
end
|
167
|
+
b_group_exists
|
168
|
+
end
|
169
|
+
def parse_groups()
|
170
|
+
if @reporting_groups != nil
|
171
|
+
reporting_groups_arr=@reporting_groups.split('|')
|
172
|
+
reporting_groups_arr.each do |groups|
|
173
|
+
groups_arr=groups.split(':')
|
174
|
+
if check_duplicate_groups(@main_groups,groups_arr[0])==false
|
175
|
+
@main_groups << [groups_arr[0]]
|
176
|
+
end
|
177
|
+
current_level=0
|
178
|
+
groups_arr.each do |group|
|
179
|
+
if current_level==1
|
180
|
+
if check_duplicate_sub_groups(@main_groups_sub_level_one,groups_arr[0],group)==false
|
181
|
+
@main_groups_sub_level_one << [[groups_arr[0]],[group]]
|
182
|
+
end
|
183
|
+
end
|
184
|
+
if current_level==2
|
185
|
+
if check_duplicate_sub_groups(@main_groups_sub_level_two,groups_arr[0],group)==false
|
186
|
+
@main_groups_sub_level_two << [[groups_arr[0]],[group]]
|
187
|
+
end
|
188
|
+
end
|
189
|
+
if current_level==3
|
190
|
+
if check_duplicate_sub_groups(@main_groups_sub_level_three,groups_arr[0],group)==false
|
191
|
+
@main_groups_sub_level_three << [[groups_arr[0]],[group]]
|
192
|
+
end
|
193
|
+
end
|
194
|
+
if current_level==4
|
195
|
+
if check_duplicate_sub_groups(@main_groups_sub_level_four,groups_arr[0],group)==false
|
196
|
+
@main_groups_sub_level_four << [[groups_arr[0]],[group]]
|
197
|
+
end
|
198
|
+
end
|
199
|
+
if current_level==5
|
200
|
+
if check_duplicate_sub_groups(@main_groups_sub_level_five,groups_arr[0],group)==false
|
201
|
+
@main_groups_sub_level_five << [[groups_arr[0]],[group]]
|
202
|
+
end
|
203
|
+
end
|
204
|
+
current_level+=1
|
205
|
+
end
|
206
|
+
end
|
207
|
+
end
|
208
|
+
end
|
209
|
+
def status_select(selection_index, selected_status)
|
210
|
+
|
211
|
+
status_selection = "<select name=\"#{selection_index}_status_select\">"
|
212
|
+
selection_data=''
|
213
|
+
@pass_statuses.each do |status|
|
214
|
+
if status==selected_status
|
215
|
+
selection_data << "<option selected>#{status}</option>"
|
216
|
+
else
|
217
|
+
selection_data << "<option>#{status}</option>"
|
218
|
+
end
|
219
|
+
end
|
220
|
+
@fail_statuses.each do |status|
|
221
|
+
if status==selected_status
|
222
|
+
selection_data << "<option selected>#{status}</option>"
|
223
|
+
else
|
224
|
+
selection_data << "<option>#{status}</option>"
|
225
|
+
end
|
226
|
+
end
|
227
|
+
@not_run_statuses.each do |status|
|
228
|
+
if status==selected_status
|
229
|
+
selection_data << "<option selected>#{status}</option>"
|
230
|
+
else
|
231
|
+
selection_data << "<option>#{status}</option>"
|
232
|
+
end
|
233
|
+
end
|
234
|
+
|
235
|
+
status_selection << selection_data << "</select>"
|
236
|
+
status_selection
|
237
|
+
end
|
238
|
+
|
239
|
+
def get_user_cols(status,tc_arr)
|
240
|
+
cols=nil
|
241
|
+
if status=='all' && tc_arr!= nil
|
242
|
+
cols = Array.new
|
243
|
+
tc_arr.each do |x|
|
244
|
+
data_hash=x[12]
|
245
|
+
cols << data_hash.keys
|
246
|
+
end
|
247
|
+
cols=cols.flatten.uniq
|
248
|
+
end
|
249
|
+
cols
|
250
|
+
end
|
251
|
+
|
252
|
+
def pad_user_data(status,data_hash,all_cols)
|
253
|
+
if (status=='all' && all_cols!=nil && !all_cols.empty?)
|
254
|
+
keys_need_adding = all_cols - data_hash.keys
|
255
|
+
keys_need_adding.each do |new_key|
|
256
|
+
data_hash[new_key] = "-"
|
257
|
+
end
|
258
|
+
end
|
259
|
+
end
|
260
|
+
|
261
|
+
def generate_test_results_table(status,tc_arr,item)
|
262
|
+
table_body=Array.new
|
263
|
+
if item==nil
|
264
|
+
cases_in_group=0
|
265
|
+
element=0
|
266
|
+
table_body='<table align="center" style="width:100%;">'<<
|
267
|
+
'<tr>'<<
|
268
|
+
'<td>'<<
|
269
|
+
'<b>Execution</b></td>'<<
|
270
|
+
'<td>'<<
|
271
|
+
'<b>Start Time</b></td>'<<
|
272
|
+
'<td>'<<
|
273
|
+
'<b>Name</b></td>'<<
|
274
|
+
'<td>'<<
|
275
|
+
'<b>Duration</b></td>'<<
|
276
|
+
'<td>'<<
|
277
|
+
'<b>Memory</b></td>'<<
|
278
|
+
'<td>'<<
|
279
|
+
'<b>Result</b></td>'<<
|
280
|
+
'<td>'<<
|
281
|
+
'<b>Comment</b></td>'
|
282
|
+
|
283
|
+
user_cols=get_user_cols(status,tc_arr)
|
284
|
+
if (user_cols!=nil && !user_cols.empty?)
|
285
|
+
user_cols.sort.each do |col|
|
286
|
+
table_body<<'<td>'<<'<b>'<<col.to_s<<'</b></td>'
|
287
|
+
end
|
288
|
+
end
|
289
|
+
|
290
|
+
table_body<<'</tr>'
|
291
|
+
|
292
|
+
tc_arr.each do |x|
|
293
|
+
cases_in_group+=1
|
294
|
+
@main_total+=1
|
295
|
+
tc_status=x[7].to_s
|
296
|
+
tc_style_tag=' id=""'
|
297
|
+
tc_style_tag=' id="passed_case"' if tc_status=='passed' || @pass_statuses.include?(tc_status)
|
298
|
+
tc_style_tag=' id="failed_case"' if tc_status=='failed' || @fail_statuses.include?(tc_status)
|
299
|
+
tc_style_tag=' id="not_run_case"' if tc_status=='not run' || @not_run_statuses.include?(tc_status)
|
300
|
+
@main_passed+=1 if tc_status=='passed' || @pass_statuses.include?(tc_status)
|
301
|
+
@main_failed+=1 if tc_status=='failed' || @fail_statuses.include?(tc_status)
|
302
|
+
@main_not_run+=1 if tc_status=='not run' || @not_run_statuses.include?(tc_status)
|
303
|
+
tc_name=x[0].to_s.gsub('_',' ')
|
304
|
+
|
305
|
+
table_body << '<tr' <<
|
306
|
+
tc_style_tag <<
|
307
|
+
'>'<<
|
308
|
+
'<td>'<<
|
309
|
+
x[8]<< #testcase execution number
|
310
|
+
'</td>'<<
|
311
|
+
'<td>'<<
|
312
|
+
x[4]<< #testcase start time
|
313
|
+
'</td>'<<
|
314
|
+
'<td><a name="'+tc_name.gsub(' ','_')+'_'+tc_status.to_s.gsub(' ','_')+'"></a>'<<
|
315
|
+
'<a href="'<<
|
316
|
+
x[11]<<
|
317
|
+
'">'<<
|
318
|
+
tc_name<<
|
319
|
+
'</a></td>'<<
|
320
|
+
'<td>'<<
|
321
|
+
x[5]<< #testcase duration
|
322
|
+
'</td>'<<
|
323
|
+
'<td>'<<
|
324
|
+
x[6]<< #testcase memory usage
|
325
|
+
'</td>'<<
|
326
|
+
'<td>'<<
|
327
|
+
status_select(x[8],tc_status) <<
|
328
|
+
'</td>'<<
|
329
|
+
'<td>'<<
|
330
|
+
"<textarea name=\"#{x[8]}_text_area\" cols=\"23\" rows=\"2\">#{x[10]}</textarea>" <<
|
331
|
+
'</td>'
|
332
|
+
|
333
|
+
data_hash=x[12]
|
334
|
+
if (data_hash!=nil && !data_hash.empty?)
|
335
|
+
#display user data
|
336
|
+
pad_user_data(status,data_hash,user_cols)
|
337
|
+
user_cols.sort.each do |col|
|
338
|
+
row = '<td>'+data_hash[col].to_s+'</td>'
|
339
|
+
table_body<<row
|
340
|
+
end
|
341
|
+
end
|
342
|
+
table_body<<'</tr>'
|
343
|
+
end
|
344
|
+
if cases_in_group>0
|
345
|
+
table_body << '</table>'
|
346
|
+
else
|
347
|
+
table_body='<br/>'
|
348
|
+
end
|
349
|
+
else
|
350
|
+
if status=='all'
|
351
|
+
cases_in_group=0
|
352
|
+
element=0
|
353
|
+
table_body='<table align="center" style="width:100%;">'<<
|
354
|
+
'<tr>'<<
|
355
|
+
'<td>'<<
|
356
|
+
'<b>Name</b></td>'<<
|
357
|
+
'<td>'<<
|
358
|
+
'<b>Result</b></td>'<<
|
359
|
+
'<td>'<<
|
360
|
+
'<b>Comment</b></td>'<<
|
361
|
+
'</tr>'
|
362
|
+
tc_arr.each do |x|
|
363
|
+
if x[1]==item.at(1).to_s
|
364
|
+
cases_in_group+=1
|
365
|
+
@main_total+=1
|
366
|
+
tc_status=x[7].to_s
|
367
|
+
tc_style_tag=' id=""'
|
368
|
+
tc_style_tag=' id="passed_case"' if tc_status=='passed' || @pass_statuses.include?(tc_status)
|
369
|
+
tc_style_tag=' id="failed_case"' if tc_status=='failed' || @fail_statuses.include?(tc_status)
|
370
|
+
tc_style_tag=' id="not_run_case"' if tc_status=='not run' || @not_run_statuses.include?(tc_status)
|
371
|
+
@main_passed+=1 if tc_status=='passed' || @pass_statuses.include?(tc_status)
|
372
|
+
@main_failed+=1 if tc_status=='failed' || @fail_statuses.include?(tc_status)
|
373
|
+
@main_not_run+=1 if tc_status=='not run' || @not_run_statuses.include?(tc_status)
|
374
|
+
tc_name=x[0].to_s.gsub('_',' ')
|
375
|
+
table_body << '<tr' <<
|
376
|
+
tc_style_tag<<
|
377
|
+
'>'<<
|
378
|
+
'<td>'<<
|
379
|
+
'<a href="'<<
|
380
|
+
x[11]<<
|
381
|
+
'">'<<
|
382
|
+
tc_name<<
|
383
|
+
'</a></td>'<<
|
384
|
+
'<td>'<<
|
385
|
+
status_select(x[8],tc_status) <<
|
386
|
+
'</td>'<<
|
387
|
+
'<td>'<<
|
388
|
+
"<textarea name=\"#{x[8]}_text_area\" cols=\"23\" rows=\"2\">#{x[10]}</textarea>" <<
|
389
|
+
'</td>'<<
|
390
|
+
'</tr>'
|
391
|
+
@group_test_case_arr[element]=['--','--']
|
392
|
+
end
|
393
|
+
element+=1
|
394
|
+
end
|
395
|
+
if cases_in_group>0
|
396
|
+
table_body << '</table>'
|
397
|
+
else
|
398
|
+
table_body='<br/>'
|
399
|
+
|
400
|
+
end
|
401
|
+
else
|
402
|
+
tc_style_tag=' id=""'
|
403
|
+
tc_style_tag=' id="passed_case"' if status=='passed' || @pass_statuses.include?(status)
|
404
|
+
tc_style_tag=' id="failed_case"' if status=='failed' || @fail_statuses.include?(status)
|
405
|
+
tc_style_tag=' id="not_run_case"' if status=='not run' || @not_run_statuses.include?(status)
|
406
|
+
cases_in_group=0
|
407
|
+
element=0
|
408
|
+
table_body='<table align="center" style="width:100%;">'<<
|
409
|
+
'<tr>'<<
|
410
|
+
'<td>'<<
|
411
|
+
'<b>Name</b></td>'<<
|
412
|
+
'<td>'<<
|
413
|
+
'<b>Result</b></td>'<<
|
414
|
+
'<td>'<<
|
415
|
+
'<b>Comment</b></td>'<<
|
416
|
+
'</tr>'
|
417
|
+
tc_arr.each do |x|
|
418
|
+
if x[1]==item.at(1).to_s
|
419
|
+
@main_total+=1
|
420
|
+
@main_passed+=1 if status=='passed' || @pass_statuses.include?(status)
|
421
|
+
@main_failed+=1 if status=='failed' || @fail_statuses.include?(status)
|
422
|
+
@main_not_run+=1 if status=='not run' || @not_run_statuses.include?(status)
|
423
|
+
cases_in_group+=1
|
424
|
+
tc_status=x[7]
|
425
|
+
tc_name=x[0].to_s.gsub('_',' ')
|
426
|
+
table_body << '<tr' <<
|
427
|
+
tc_style_tag<<
|
428
|
+
'>'<<
|
429
|
+
'<td>'<<
|
430
|
+
'<a href="'<<
|
431
|
+
x[11]<<
|
432
|
+
'">'<<
|
433
|
+
tc_name<<
|
434
|
+
'</a></td>'<<
|
435
|
+
'<td>'<<
|
436
|
+
status_select(x[8],tc_status) <<
|
437
|
+
'</td>'<<
|
438
|
+
'<td>'<<
|
439
|
+
"<textarea name=\"#{x[8]}_text_area\" cols=\"23\" rows=\"2\">#{x[10]}</textarea>" <<
|
440
|
+
'</td>'<<
|
441
|
+
'</tr>'
|
442
|
+
@group_test_case_arr[element]=['--','--']
|
443
|
+
end
|
444
|
+
element+=1
|
445
|
+
end
|
446
|
+
if cases_in_group > 0
|
447
|
+
table_body << '</table>'
|
448
|
+
else
|
449
|
+
table_body='<br/>'
|
450
|
+
end
|
451
|
+
end
|
452
|
+
end
|
453
|
+
table_body
|
454
|
+
end
|
455
|
+
def generate_report(status)
|
456
|
+
html_body=Array.new
|
457
|
+
if @grouping==true
|
458
|
+
@main_groups.each do |group|
|
459
|
+
@main_total=0
|
460
|
+
@main_passed=0
|
461
|
+
@main_failed=0
|
462
|
+
@main_not_run=0
|
463
|
+
group_body=Array.new
|
464
|
+
group_body << tog_list_begin(group,@group_test_case_arr,status,'main')
|
465
|
+
group_body << generate_test_results_table(status,@group_test_case_arr,[group,group])
|
466
|
+
tog_list1=0
|
467
|
+
tog_list2=0
|
468
|
+
tog_list3=0
|
469
|
+
tog_list4=0
|
470
|
+
tog_list5=0
|
471
|
+
@main_groups_sub_level_one.each do |item1|
|
472
|
+
|
473
|
+
if group.to_s == item1.at(0).to_s && @reporting_groups.include?(group.to_s+':'+item1.at(1).to_s)
|
474
|
+
tog_list1=tog_list_begin(item1.at(1).to_s,@group_test_case_arr,status)
|
475
|
+
if tog_list1 != 0
|
476
|
+
group_body << tog_list1
|
477
|
+
group_body << generate_test_results_table(status,@group_test_case_arr,item1)
|
478
|
+
end
|
479
|
+
@main_groups_sub_level_two.each do |item2|
|
480
|
+
if group.to_s == item2.at(0).to_s && @reporting_groups.include?(item1.at(1).to_s+':'+item2.at(1).to_s)
|
481
|
+
tog_list2=tog_list_begin(item2.at(1).to_s,@group_test_case_arr,status)
|
482
|
+
if tog_list2 != 0
|
483
|
+
group_body << tog_list2
|
484
|
+
group_body << generate_test_results_table(status,@group_test_case_arr,item2)
|
485
|
+
end
|
486
|
+
@main_groups_sub_level_three.each do |item3|
|
487
|
+
if group.to_s == item3.at(0).to_s && @reporting_groups.include?(item2.at(1).to_s+':'+item3.at(1).to_s)
|
488
|
+
tog_list3=tog_list_begin(item3.at(1).to_s,@group_test_case_arr,status)
|
489
|
+
if tog_list3 != 0
|
490
|
+
group_body << tog_list3
|
491
|
+
group_body << generate_test_results_table(status,@group_test_case_arr,item3)
|
492
|
+
end
|
493
|
+
@main_groups_sub_level_four.each do |item4|
|
494
|
+
if group.to_s == item4.at(0).to_s && @reporting_groups.include?(item3.at(1).to_s+':'+item4.at(1).to_s)
|
495
|
+
tog_list4=tog_list_begin(item4.at(1).to_s,@group_test_case_arr,status)
|
496
|
+
if tog_list4 != 0
|
497
|
+
group_body << tog_list4
|
498
|
+
group_body << generate_test_results_table(status,@group_test_case_arr,item4)
|
499
|
+
end
|
500
|
+
@main_groups_sub_level_five.each do |item5|
|
501
|
+
if group.to_s == item5.at(0).to_s && @reporting_groups.include?(item4.at(1).to_s+':'+item5.at(1).to_s)
|
502
|
+
tog_list5=tog_list_begin(item5.at(1).to_s,@group_test_case_arr,status)
|
503
|
+
if tog_list5 != 0
|
504
|
+
group_body << tog_list5
|
505
|
+
group_body << generate_test_results_table(status,@group_test_case_arr,item5)
|
506
|
+
group_body << tog_list_end()
|
507
|
+
end
|
508
|
+
end
|
509
|
+
end
|
510
|
+
if tog_list4 != 0
|
511
|
+
group_body << tog_list_end()
|
512
|
+
end
|
513
|
+
end
|
514
|
+
end
|
515
|
+
if tog_list3 != 0
|
516
|
+
group_body << tog_list_end()
|
517
|
+
end
|
518
|
+
end
|
519
|
+
end
|
520
|
+
if tog_list2 != 0
|
521
|
+
group_body << tog_list_end()
|
522
|
+
end
|
523
|
+
end
|
524
|
+
end
|
525
|
+
if tog_list1 != 0
|
526
|
+
group_body << tog_list_end()
|
527
|
+
end
|
528
|
+
end
|
529
|
+
end
|
530
|
+
group_body << tog_list_end('main')
|
531
|
+
html_body << group_body if @main_total > 0
|
532
|
+
end
|
533
|
+
html_body << generate_test_results_table(status,@group_test_case_arr,['not_in_any_user_defined_group','not_in_any_user_defined_group'])
|
534
|
+
else
|
535
|
+
#html_body << tog_list_begin('Total run',@group_test_case_arr,status,'main')
|
536
|
+
html_body << generate_test_results_table(status,@group_test_case_arr,nil)
|
537
|
+
html_body << tog_list_end('main')
|
538
|
+
end
|
539
|
+
html_body
|
540
|
+
end
|
541
|
+
end
|