testability-driver 0.9.2

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.
Files changed (214) hide show
  1. data/README +1 -0
  2. data/bin/start_app_perf +199 -0
  3. data/bin/tdriver-devtools +3 -0
  4. data/config/sut_parameters.rb +39 -0
  5. data/ext/extconf.rb +67 -0
  6. data/ext/native_extensions.c +70 -0
  7. data/lib/matti.rb +30 -0
  8. data/lib/tdriver-devtools/behaviour/old/xml/example/flick-example.rb +223 -0
  9. data/lib/tdriver-devtools/behaviour/old/xml/example/impl.rb_invalid +194 -0
  10. data/lib/tdriver-devtools/behaviour/old/xml/generate_behaviour_xml.rb +95 -0
  11. data/lib/tdriver-devtools/behaviour/old/xml/lib/tdriver_generator.rb +722 -0
  12. data/lib/tdriver-devtools/behaviour/old/xml/qdoc_generator.rb +321 -0
  13. data/lib/tdriver-devtools/behaviour/old/xml/templates/behaviour.method.template +43 -0
  14. data/lib/tdriver-devtools/behaviour/old/xml/templates/behaviour.module.template +54 -0
  15. data/lib/tdriver-devtools/behaviour/old/xml/templates/behaviour.xml.argument.template +7 -0
  16. data/lib/tdriver-devtools/behaviour/old/xml/templates/behaviour.xml.argument_type.template +7 -0
  17. data/lib/tdriver-devtools/behaviour/old/xml/templates/behaviour.xml.exception.template +5 -0
  18. data/lib/tdriver-devtools/behaviour/old/xml/templates/behaviour.xml.howto.line.template +2 -0
  19. data/lib/tdriver-devtools/behaviour/old/xml/templates/behaviour.xml.howto.template +5 -0
  20. data/lib/tdriver-devtools/behaviour/old/xml/templates/behaviour.xml.method.template +23 -0
  21. data/lib/tdriver-devtools/behaviour/old/xml/templates/behaviour.xml.template +14 -0
  22. data/lib/tdriver-devtools/behaviour/old/xml/update +3 -0
  23. data/lib/tdriver-devtools/behaviour/xml/generate.rb +88 -0
  24. data/lib/tdriver-devtools/behaviour/xml/rdoc_behaviour_xml_generator.rb +1924 -0
  25. data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.argument.default.template +1 -0
  26. data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.argument.template +3 -0
  27. data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.argument_type.template +4 -0
  28. data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.exception.template +4 -0
  29. data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.method.arguments.template +4 -0
  30. data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.method.deprecated.template +3 -0
  31. data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.method.exceptions.template +3 -0
  32. data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.method.info.template +1 -0
  33. data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.method.returns.template +3 -0
  34. data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.method.tables.template +3 -0
  35. data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.method.template +12 -0
  36. data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.returns.template +5 -0
  37. data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.table.item.template +1 -0
  38. data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.table.row.template +2 -0
  39. data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.table.template +8 -0
  40. data/lib/tdriver-devtools/behaviour/xml/templates/behaviour.xml.template +14 -0
  41. data/lib/tdriver-devtools/behaviour/xml_generator/example/flick-example.rb +245 -0
  42. data/lib/tdriver-devtools/behaviour/xml_generator/example/sut.rb +964 -0
  43. data/lib/tdriver-devtools/behaviour/xml_generator/generate.rb +68 -0
  44. data/lib/tdriver-devtools/behaviour/xml_generator/lib/custom_rdoc_generator.rb +1865 -0
  45. data/lib/tdriver-devtools/behaviour/xml_generator/templates/behaviour.xml.argument.default.template +1 -0
  46. data/lib/tdriver-devtools/behaviour/xml_generator/templates/behaviour.xml.argument.template +3 -0
  47. data/lib/tdriver-devtools/behaviour/xml_generator/templates/behaviour.xml.argument_type.template +4 -0
  48. data/lib/tdriver-devtools/behaviour/xml_generator/templates/behaviour.xml.exception.template +4 -0
  49. data/lib/tdriver-devtools/behaviour/xml_generator/templates/behaviour.xml.method.arguments.template +4 -0
  50. data/lib/tdriver-devtools/behaviour/xml_generator/templates/behaviour.xml.method.deprecated.template +3 -0
  51. data/lib/tdriver-devtools/behaviour/xml_generator/templates/behaviour.xml.method.exceptions.template +3 -0
  52. data/lib/tdriver-devtools/behaviour/xml_generator/templates/behaviour.xml.method.info.template +1 -0
  53. data/lib/tdriver-devtools/behaviour/xml_generator/templates/behaviour.xml.method.returns.template +3 -0
  54. data/lib/tdriver-devtools/behaviour/xml_generator/templates/behaviour.xml.method.tables.template +3 -0
  55. data/lib/tdriver-devtools/behaviour/xml_generator/templates/behaviour.xml.method.template +12 -0
  56. data/lib/tdriver-devtools/behaviour/xml_generator/templates/behaviour.xml.returns.template +5 -0
  57. data/lib/tdriver-devtools/behaviour/xml_generator/templates/behaviour.xml.table.item.template +1 -0
  58. data/lib/tdriver-devtools/behaviour/xml_generator/templates/behaviour.xml.table.row.template +2 -0
  59. data/lib/tdriver-devtools/behaviour/xml_generator/templates/behaviour.xml.table.template +7 -0
  60. data/lib/tdriver-devtools/behaviour/xml_generator/templates/behaviour.xml.template +14 -0
  61. data/lib/tdriver-devtools/behaviour/xml_generator/update +3 -0
  62. data/lib/tdriver-devtools/doc/behaviour_xml/QtExampleGestureBehaviour.xml +138 -0
  63. data/lib/tdriver-devtools/doc/behaviour_xml/created.rid +1 -0
  64. data/lib/tdriver-devtools/doc/behaviour_xml/tdriver.hash +1 -0
  65. data/lib/tdriver-devtools/doc/feature_xml/qt_widget_hold.feature.xml +9 -0
  66. data/lib/tdriver-devtools/doc/feature_xml/qt_widget_tap.feature.xml +9 -0
  67. data/lib/tdriver-devtools/doc/generate.rb +892 -0
  68. data/lib/tdriver-devtools/doc/update +1 -0
  69. data/lib/tdriver-devtools/doc/xslt/html.rb +7 -0
  70. data/lib/tdriver-devtools/doc/xslt/template.xsl +1861 -0
  71. data/lib/tdriver-devtools/doc/xslt/update +3 -0
  72. data/lib/tdriver-devtools/plugin/placeholder.txt +1 -0
  73. data/lib/tdriver-devtools/tdriver-devtools.rb +404 -0
  74. data/lib/tdriver-devtools/tests/feature_tests/example/flick-example.rb +233 -0
  75. data/lib/tdriver-devtools/tests/feature_tests/example/impl.rb +194 -0
  76. data/lib/tdriver-devtools/tests/feature_tests/generate.rb +82 -0
  77. data/lib/tdriver-devtools/tests/feature_tests/lib/custom_rdoc_generator.rb +468 -0
  78. data/lib/tdriver-devtools/tests/feature_tests/templates/feature_attribute.template +5 -0
  79. data/lib/tdriver-devtools/tests/feature_tests/templates/feature_method.template +5 -0
  80. data/lib/tdriver-devtools/tests/feature_tests/templates/scenario_attribute.template +5 -0
  81. data/lib/tdriver-devtools/tests/feature_tests/templates/scenario_method.template +5 -0
  82. data/lib/tdriver-devtools/tests/feature_tests/update +3 -0
  83. data/lib/tdriver.rb +26 -0
  84. data/lib/tdriver/base/behaviour/behaviour.rb +32 -0
  85. data/lib/tdriver/base/behaviour/behaviours/object_behaviour_composition.rb +94 -0
  86. data/lib/tdriver/base/behaviour/behaviours/object_behaviour_description.rb +262 -0
  87. data/lib/tdriver/base/behaviour/behaviours/object_composition.rb +111 -0
  88. data/lib/tdriver/base/behaviour/factory.rb +380 -0
  89. data/lib/tdriver/base/behaviour/loader.rb +28 -0
  90. data/lib/tdriver/base/command_data/command_data.rb +51 -0
  91. data/lib/tdriver/base/command_data/loader.rb +25 -0
  92. data/lib/tdriver/base/errors.rb +131 -0
  93. data/lib/tdriver/base/loader.rb +38 -0
  94. data/lib/tdriver/base/state_object.rb +270 -0
  95. data/lib/tdriver/base/sut/adapter.rb +28 -0
  96. data/lib/tdriver/base/sut/controller.rb +119 -0
  97. data/lib/tdriver/base/sut/factory.rb +287 -0
  98. data/lib/tdriver/base/sut/generic/behaviours/application.rb +243 -0
  99. data/lib/tdriver/base/sut/generic/behaviours/controller.rb +67 -0
  100. data/lib/tdriver/base/sut/generic/behaviours/find.rb +96 -0
  101. data/lib/tdriver/base/sut/generic/behaviours/flash_behaviour.rb +346 -0
  102. data/lib/tdriver/base/sut/generic/behaviours/sut.rb +1268 -0
  103. data/lib/tdriver/base/sut/generic/behaviours/switchbox_behaviour.rb +182 -0
  104. data/lib/tdriver/base/sut/generic/behaviours/verification.rb +119 -0
  105. data/lib/tdriver/base/sut/generic/commands/application.rb +219 -0
  106. data/lib/tdriver/base/sut/generic/commands/key_sequence.rb +82 -0
  107. data/lib/tdriver/base/sut/generic/commands/screen_capture.rb +58 -0
  108. data/lib/tdriver/base/sut/generic/plugin.rb +96 -0
  109. data/lib/tdriver/base/sut/loader.rb +35 -0
  110. data/lib/tdriver/base/sut/sut.rb +67 -0
  111. data/lib/tdriver/base/test_object/abstract.rb +179 -0
  112. data/lib/tdriver/base/test_object/behaviours/syncronization.rb +94 -0
  113. data/lib/tdriver/base/test_object/behaviours/test_object.rb +787 -0
  114. data/lib/tdriver/base/test_object/factory.rb +618 -0
  115. data/lib/tdriver/base/test_object/identificator.rb +511 -0
  116. data/lib/tdriver/base/test_object/loader.rb +37 -0
  117. data/lib/tdriver/env.rb +21 -0
  118. data/lib/tdriver/loader.rb +36 -0
  119. data/lib/tdriver/matti.rb +35 -0
  120. data/lib/tdriver/report/error_recovery/tdriver_custom_error_recovery.rb +83 -0
  121. data/lib/tdriver/report/error_recovery/tdriver_error_recovery.rb +158 -0
  122. data/lib/tdriver/report/error_recovery/tdriver_error_recovery_settings.rb +98 -0
  123. data/lib/tdriver/report/report.rb +47 -0
  124. data/lib/tdriver/report/report_api.rb +207 -0
  125. data/lib/tdriver/report/report_combine.rb +86 -0
  126. data/lib/tdriver/report/report_crash_file_capture.rb +167 -0
  127. data/lib/tdriver/report/report_creator.rb +571 -0
  128. data/lib/tdriver/report/report_cucumber.rb +158 -0
  129. data/lib/tdriver/report/report_cucumber_listener.rb +337 -0
  130. data/lib/tdriver/report/report_cucumber_reporter.rb +335 -0
  131. data/lib/tdriver/report/report_data_presentation.rb +152 -0
  132. data/lib/tdriver/report/report_data_table.rb +64 -0
  133. data/lib/tdriver/report/report_execution_statistics.rb +284 -0
  134. data/lib/tdriver/report/report_file_capture.rb +159 -0
  135. data/lib/tdriver/report/report_grouping.rb +539 -0
  136. data/lib/tdriver/report/report_junit_xml.rb +147 -0
  137. data/lib/tdriver/report/report_rspec.rb +108 -0
  138. data/lib/tdriver/report/report_test_case_run.rb +621 -0
  139. data/lib/tdriver/report/report_test_run.rb +1286 -0
  140. data/lib/tdriver/report/report_test_unit.rb +175 -0
  141. data/lib/tdriver/report/report_writer.rb +1405 -0
  142. data/lib/tdriver/tdriver.rb +158 -0
  143. data/lib/tdriver/util/common.rb +24 -0
  144. data/lib/tdriver/util/common/array.rb +39 -0
  145. data/lib/tdriver/util/common/crc16.rb +100 -0
  146. data/lib/tdriver/util/common/environment.rb +153 -0
  147. data/lib/tdriver/util/common/error.rb +39 -0
  148. data/lib/tdriver/util/common/file.rb +315 -0
  149. data/lib/tdriver/util/common/gem.rb +108 -0
  150. data/lib/tdriver/util/common/kernel.rb +189 -0
  151. data/lib/tdriver/util/common/loader.rb +39 -0
  152. data/lib/tdriver/util/common/retryable.rb +98 -0
  153. data/lib/tdriver/util/common/string.rb +77 -0
  154. data/lib/tdriver/util/dbaccess/dbaccess.rb +188 -0
  155. data/lib/tdriver/util/dbaccess/dbconnection.rb +41 -0
  156. data/lib/tdriver/util/dbaccess/error.rb +35 -0
  157. data/lib/tdriver/util/dbaccess/loader.rb +29 -0
  158. data/lib/tdriver/util/dynamic_attribute_filter.rb +182 -0
  159. data/lib/tdriver/util/hooking.rb +434 -0
  160. data/lib/tdriver/util/loader.rb +65 -0
  161. data/lib/tdriver/util/localisation.rb +24 -0
  162. data/lib/tdriver/util/localisation/error.rb +32 -0
  163. data/lib/tdriver/util/localisation/loader.rb +28 -0
  164. data/lib/tdriver/util/localisation/localisation.rb +479 -0
  165. data/lib/tdriver/util/logger.rb +377 -0
  166. data/lib/tdriver/util/operator_data/error.rb +29 -0
  167. data/lib/tdriver/util/operator_data/loader.rb +26 -0
  168. data/lib/tdriver/util/operator_data/operator_data.rb +93 -0
  169. data/lib/tdriver/util/other/config.rb +221 -0
  170. data/lib/tdriver/util/parameter.rb +24 -0
  171. data/lib/tdriver/util/parameter/error.rb +45 -0
  172. data/lib/tdriver/util/parameter/loader.rb +37 -0
  173. data/lib/tdriver/util/parameter/parameter.rb +285 -0
  174. data/lib/tdriver/util/parameter/parameter_hash.rb +101 -0
  175. data/lib/tdriver/util/parameter/parameter_template.rb +120 -0
  176. data/lib/tdriver/util/parameter/parameter_user_api.rb +84 -0
  177. data/lib/tdriver/util/parameter/parameter_xml.rb +247 -0
  178. data/lib/tdriver/util/plugin/abstract.rb +60 -0
  179. data/lib/tdriver/util/plugin/error.rb +25 -0
  180. data/lib/tdriver/util/plugin/loader.rb +28 -0
  181. data/lib/tdriver/util/plugin/service.rb +200 -0
  182. data/lib/tdriver/util/recorder.rb +292 -0
  183. data/lib/tdriver/util/stats.rb +90 -0
  184. data/lib/tdriver/util/user_data/error.rb +29 -0
  185. data/lib/tdriver/util/user_data/loader.rb +26 -0
  186. data/lib/tdriver/util/user_data/user_data.rb +103 -0
  187. data/lib/tdriver/util/video_rec.rb +264 -0
  188. data/lib/tdriver/util/xml/abstraction.rb +47 -0
  189. data/lib/tdriver/util/xml/builder.rb +54 -0
  190. data/lib/tdriver/util/xml/document.rb +32 -0
  191. data/lib/tdriver/util/xml/element.rb +32 -0
  192. data/lib/tdriver/util/xml/error.rb +46 -0
  193. data/lib/tdriver/util/xml/loader.rb +46 -0
  194. data/lib/tdriver/util/xml/nil_element.rb +89 -0
  195. data/lib/tdriver/util/xml/nodeset.rb +32 -0
  196. data/lib/tdriver/util/xml/parsers/libxml/libxml.rb +140 -0
  197. data/lib/tdriver/util/xml/parsers/loader.rb +22 -0
  198. data/lib/tdriver/util/xml/parsers/nokogiri/abstraction.rb +111 -0
  199. data/lib/tdriver/util/xml/parsers/nokogiri/attribute.rb +54 -0
  200. data/lib/tdriver/util/xml/parsers/nokogiri/builder.rb +58 -0
  201. data/lib/tdriver/util/xml/parsers/nokogiri/document.rb +58 -0
  202. data/lib/tdriver/util/xml/parsers/nokogiri/element.rb +147 -0
  203. data/lib/tdriver/util/xml/parsers/nokogiri/loader.rb +42 -0
  204. data/lib/tdriver/util/xml/parsers/nokogiri/nodeset.rb +187 -0
  205. data/lib/tdriver/util/xml/xml.rb +170 -0
  206. data/lib/tdriver/verify/verify.rb +687 -0
  207. data/lib/tdriver/verify/verify.rb_org +630 -0
  208. data/lib/tdriver/version.rb +21 -0
  209. data/xml/behaviours/generic.xml +495 -0
  210. data/xml/defaults/generic.xml +97 -0
  211. data/xml/defaults/sut_generic.xml +36 -0
  212. data/xml/parameters/tdriver_parameters.xml +23 -0
  213. data/xml/templates/generic.xml +227 -0
  214. metadata +327 -0
@@ -0,0 +1,147 @@
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 ReportJUnitXml
22
+ def initialize(report_path)
23
+
24
+ @test_case_run_arr=Array.new
25
+ @junit_xml_report_path=report_path
26
+ @test_case_arr=Array.new
27
+ @test_run_properties_arr=Array.new
28
+
29
+ @test_set_name=MobyUtil::Parameter[ :quality_center_testset_name, "TestSetName" ]
30
+ @test_set_path =MobyUtil::Parameter[ :quality_center_testset_path, "TestSetPath" ]
31
+ @test_class_name=nil
32
+ @junit_xml_filename = convert_to_file_name('tdriver_junit_xml')
33
+ @failures = 0
34
+ @errors = 0
35
+ @tests = 0
36
+
37
+ @tests_start_time = Time.now
38
+ @tc_start_time = nil
39
+ @tc_end_time = nil
40
+ @pass_statuses=MobyUtil::Parameter[ :report_passed_statuses, "passed" ].split('|')
41
+ @fail_statuses=MobyUtil::Parameter[ :report_failed_statuses, "failed" ].split('|')
42
+ @not_run_statuses=MobyUtil::Parameter[ :report_not_run_statuses, "not run" ].split('|')
43
+ end
44
+ def convert_to_file_name(value)
45
+ "TEST-"+value.gsub(/[^\w_\.]/, '_') + ".xml"
46
+ end
47
+ def add_test_name(name,group)
48
+ @test_class_name=group.gsub(/[<\/?*>!)(}{\{@%"'.,:;~-]/,'')
49
+ @test_name = name.gsub(/[<\/?*>!)(}{\{@%"'.,:;~-]/,'')
50
+ end
51
+ def test_suite_properties(os,sw,variant,product,language,localization,total_memory,used_memory_start,used_memory_end)
52
+ @test_run_properties_arr=nil
53
+ @test_run_properties_arr=Array.new
54
+ @test_run_properties_arr << [os]
55
+ @test_run_properties_arr << [sw]
56
+ @test_run_properties_arr << [variant]
57
+ @test_run_properties_arr << [product]
58
+ @test_run_properties_arr << [language]
59
+ @test_run_properties_arr << [localization]
60
+ @test_run_properties_arr << [total_memory]
61
+ @test_run_properties_arr << [used_memory_start]
62
+ @test_run_properties_arr << [used_memory_end]
63
+ end
64
+
65
+ def add_test_result(status,start_time,end_time)
66
+ if @fail_statuses.include?(status)
67
+ @failures = @failures + 1
68
+ end
69
+ if @not_run_statuses.include?(status)
70
+ @errors = @errors + 1
71
+ end
72
+ @tests = @tests+1
73
+ @tc_start_time = start_time
74
+ @tc_end_time = end_time
75
+ end
76
+
77
+
78
+
79
+ def create_junit_xml()
80
+ test_run_properties_arr=@test_run_properties_arr
81
+ test_case_arr=$tdriver_reporter.read_result_storage('all')
82
+ failures=@failures
83
+ errors=@errors
84
+ tests=@tests
85
+ tests_end_time = Time.now
86
+ execution_time=tests_end_time - @tests_start_time
87
+ builder = Nokogiri::XML::Builder.new do |xml|
88
+ xml.testsuite(:failures => failures,
89
+ :errors => errors,
90
+ :tests => tests,
91
+ :name => "Test_Results" ) {
92
+ xml.properties {
93
+ xml.property(:os => test_run_properties_arr[0].to_s){
94
+ }
95
+ xml.property(:sw => test_run_properties_arr[1].to_s){
96
+ }
97
+ xml.property(:variant => test_run_properties_arr[2].to_s){
98
+ }
99
+ xml.property(:product => test_run_properties_arr[3].to_s){
100
+ }
101
+ xml.property(:language => test_run_properties_arr[4].to_s){
102
+ }
103
+ xml.property(:localization => test_run_properties_arr[5].to_s){
104
+ }
105
+ xml.property(:total_memory => test_run_properties_arr[6].to_s){
106
+ }
107
+ xml.property(:used_memory_start => test_run_properties_arr[7].to_s){
108
+ }
109
+ xml.property(:used_memory_end => test_run_properties_arr[8].to_s){
110
+ }
111
+ xml.property(:timestamp => @tests_start_time.to_s){
112
+ }
113
+ xml.property(:timestamp_end => tests_end_time.to_s){
114
+ }
115
+ xml.property(:time => execution_time.to_s){
116
+ }
117
+ }
118
+ test_case_arr.each do |test_case|
119
+ if test_case[7].to_s == 'passed' || @pass_statuses.include?(test_case[7].to_s)
120
+ xml.testcase(:classname => test_case[1].to_s, :name => test_case[0].to_s, :start_time => @tc_start_time , :end_time => @tc_end_time){
121
+ }
122
+ end
123
+ if test_case[7].to_s == 'failed' || @fail_statuses.include?(test_case[7].to_s)
124
+ xml.testcase(:classname => test_case[1].to_s, :name => test_case[0].to_s, :start_time => @tc_start_time , :end_time => @tc_end_time ){
125
+ xml.failure(:message => test_case[0].to_s){
126
+ xml.text(test_case[9].to_s.gsub('<br />'," \n ")){
127
+ }
128
+ }
129
+ }
130
+ end
131
+ if test_case[7].to_s == 'not run' || @not_run_statuses.include?(test_case[7].to_s)
132
+ xml.testcase(:classname => test_case[1].to_s, :name => test_case[0].to_s, :start_time => @tc_start_time , :end_time => @tc_end_time ){
133
+ xml.error(:message => test_case[0].to_s){
134
+ xml.text(test_case[9].to_s.gsub('<br />'," \n ")){
135
+ }
136
+ }
137
+ }
138
+ end
139
+ end
140
+ }
141
+ end
142
+ File.open(@junit_xml_report_path+'/junit_xml/'+@junit_xml_filename, 'w') { |file| file.write(builder.to_xml) }
143
+ builder=nil
144
+ test_case_arr=nil
145
+ end
146
+ end
147
+
@@ -0,0 +1,108 @@
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
+ require File.expand_path( File.join( File.dirname( __FILE__ ), 'report' ) )
22
+ begin
23
+ require 'spec/runner/formatter/base_text_formatter'
24
+ module Spec
25
+ module Runner
26
+ module Formatter
27
+ #Report module which contains the Cucumber, Test::Unit and RSpec report formatters
28
+ module TDriverReport
29
+ #Class for formatting RSpec report
30
+ class RSpecFormatter < BaseTextFormatter
31
+ include TDriverReportCreator
32
+ def initialize(options, output)
33
+ super
34
+ @current_example_group=nil
35
+ end
36
+ #This method is for the undefiened BaseTextFormatter methods
37
+ #
38
+ # === params
39
+ # === returns
40
+ # === raises
41
+ def method_missing(sym, *args)
42
+ # no-op
43
+ end
44
+ #This method initializes new test run
45
+ #
46
+ # === params
47
+ # === returns
48
+ # === raises
49
+ def start(example_count)
50
+ start_run()
51
+ end
52
+ #This method sets the group
53
+ #
54
+ # === params
55
+ # === returns
56
+ # === raises
57
+ def example_group_started(example)
58
+ @current_example_group=example.description
59
+ add_report_group('Specs:'+@current_example_group+'|')
60
+ end
61
+ #This method starts a new test case
62
+ #
63
+ # === params
64
+ # === returns
65
+ # === raises
66
+ def example_started(example)
67
+ start_test_case(example.description)
68
+ add_test_case_group(@current_example_group)
69
+ end
70
+ #This method records the passed test case result
71
+ #
72
+ # === params
73
+ # === returns
74
+ # === raises
75
+ def example_passed(example)
76
+ update_test_case('-')
77
+ end_test_case(example.description,'passed')
78
+ end
79
+ #This method records the failed test case result
80
+ #
81
+ # === params
82
+ # === returns
83
+ # === raises
84
+ def example_failed(example, counter, failure)
85
+ capture_screen_test_case()
86
+ update_test_case(failure)
87
+ update_test_case(failure.exception.message) unless failure.exception.message.nil?
88
+ update_test_case("#{format_backtrace(failure.exception.backtrace)}") unless failure.exception.nil?
89
+ end_test_case(example.description,'failed')
90
+ end
91
+ #This method records the not run test case result
92
+ #
93
+ # === params
94
+ # === returns
95
+ # === raises
96
+ def example_pending(example, message, pending_caller)
97
+ update_test_case(message)
98
+ end_test_case(example.description,'not run')
99
+ end
100
+ end
101
+ end
102
+ end
103
+ end
104
+ end
105
+ rescue LoadError
106
+
107
+ end
108
+
@@ -0,0 +1,621 @@
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
+
23
+ module TDriverReportCreator
24
+ #Test case class for new test case run
25
+ class TestCaseRun < TDriverReportCrashFileCapture
26
+ include TDriverReportWriter
27
+ attr_accessor(
28
+ :test_case_folder,
29
+ :test_cases_folder,
30
+ :test_case_name,
31
+ :test_case_ended,
32
+ :test_case_name_full,
33
+ :test_case_index,
34
+ :test_case_start_time,
35
+ :test_case_end_time,
36
+ :test_case_run_time,
37
+ :test_case_status,
38
+ :test_case_execution_log,
39
+ :test_case_user_data,
40
+ :test_case_user_data_columns,
41
+ :test_case_chronological_view_data,
42
+ :test_case_total_dump_count,
43
+ :test_case_total_data_sent,
44
+ :test_case_total_data_received,
45
+ :test_case_dump_count_at_start,
46
+ :test_case_dump_count_at_end,
47
+ :test_case_data_sent_at_start,
48
+ :test_case_data_sent_at_end,
49
+ :test_case_data_received_at_start,
50
+ :test_case_data_received_at_end,
51
+ :capture_screen_error,
52
+ :failed_dump_error,
53
+ :test_case_reboots,
54
+ :test_case_crash_files,
55
+ :test_case_behaviour_log,
56
+ :failed_screenshot,
57
+ :test_case_group,
58
+ :tc_video_recording,
59
+ :tc_video_filename,
60
+ :tc_previous_video_filename,
61
+ :tc_video_recorders,
62
+ :tc_memory_amount_start,
63
+ :tc_memory_amount_end,
64
+ :tc_memory_amount_start,
65
+ :tc_memory_amount_total,
66
+ :pass_statuses,
67
+ :fail_statuses,
68
+ :not_run_statuses,
69
+ :test_case_logging_level,
70
+ :trace_directory
71
+ )
72
+ def initialize()
73
+ @test_case_folder=nil
74
+ @test_cases_folder=nil
75
+ @test_case_name=nil
76
+ @test_case_ended=false
77
+ @test_case_name_full=nil
78
+ @test_case_index=nil
79
+ @test_case_start_time=nil
80
+ @test_case_end_time=nil
81
+ @test_case_run_time=nil
82
+ @test_case_status=nil
83
+ @test_case_execution_log=nil
84
+ @test_case_user_data=nil
85
+ @test_case_user_data_columns=nil
86
+ @test_case_chronological_view_data=nil
87
+ @capture_screen_error=nil
88
+ @failed_dump_error=nil
89
+ @test_case_reboots=0
90
+ @test_case_crash_files=0
91
+ @test_case_behaviour_log = Array.new
92
+ @failed_screenshot=nil
93
+ @test_case_group=nil
94
+ @tc_video_recording=false
95
+ @tc_video_filename=nil
96
+ @tc_previous_video_filename=nil
97
+ @tc_video_recorders=[]
98
+ @tc_memory_amount_start='-'
99
+ @tc_memory_amount_end='-'
100
+ @tc_memory_amount_total='-'
101
+ @test_case_total_dump_count=Hash.new
102
+ @test_case_total_data_sent=Hash.new
103
+ @test_case_total_data_received=Hash.new
104
+ @test_case_dump_count_at_start=Hash.new
105
+ @test_case_dump_count_at_end=Hash.new
106
+ @test_case_data_sent_at_start=Hash.new
107
+ @test_case_data_sent_at_end=Hash.new
108
+ @test_case_data_received_at_start=Hash.new
109
+ @test_case_data_received_at_end=Hash.new
110
+ @pass_statuses=MobyUtil::Parameter[ :report_passed_statuses, "passed" ].split('|')
111
+ @fail_statuses=MobyUtil::Parameter[ :report_failed_statuses, "failed" ].split('|')
112
+ @not_run_statuses=MobyUtil::Parameter[ :report_not_run_statuses, "not run" ].split('|')
113
+ @test_case_logging_level = MobyUtil::Parameter[ :logging_level, nil ]
114
+ @trace_directory=MobyUtil::Parameter[ :report_trace_folder, nil]
115
+ $tdriver_report_log_output = StringIO.new ""
116
+ begin
117
+ if MobyUtil::Parameter[:behaviour_logging] == 'true'
118
+ if @test_case_logging_level.to_i > 0
119
+ logger_instance = MobyUtil::Logger.instance.get_logger( 'TDriver' )
120
+ begin
121
+ MobyUtil::Logger.instance.remove_outputter(logger_instance, 'io' )
122
+ rescue
123
+ end
124
+ o = Log4r::IOOutputter.new("io",$tdriver_report_log_output)
125
+ MobyUtil::Logger.instance.add_outputter(logger_instance, o)
126
+ end
127
+ end
128
+ rescue
129
+ end
130
+ end
131
+ #This method sets the test case group
132
+ #
133
+ # === params
134
+ # value: test case report folder
135
+ # === returns
136
+ # nil
137
+ # === raises
138
+ def set_test_case_group(value)
139
+ @test_case_group=value
140
+ end
141
+ #This method sets the test case reboots
142
+ #
143
+ # === params
144
+ # value: amount
145
+ # === returns
146
+ # nil
147
+ # === raises
148
+ def set_test_case_reboots(value)
149
+ @test_case_reboots=@test_case_reboots.to_i+value.to_i
150
+ end
151
+ #This method sets the test case crash files
152
+ #
153
+ # === params
154
+ # value: amount
155
+ # === returns
156
+ # nil
157
+ # === raises
158
+ def set_test_case_crash_files(value)
159
+ @test_case_crash_files=@test_case_crash_files.to_i+value.to_i
160
+ end
161
+ #This method sets the tdriver test cases report folder
162
+ #
163
+ # === params
164
+ # value: test cases report folder
165
+ # === returns
166
+ # nil
167
+ # === raises
168
+ def set_test_cases_folder(value)
169
+ @test_cases_folder=value
170
+ end
171
+ #This method sets the tdriver test case has ended
172
+ #
173
+ # === params
174
+ # value: test cases report folder
175
+ # === returns
176
+ # nil
177
+ # === raises
178
+ def set_test_case_ended(value)
179
+ @test_case_ended=value
180
+ end
181
+ #This method sets the tdriver test case report folder
182
+ #
183
+ # === params
184
+ # value: test case report folder
185
+ # === returns
186
+ # nil
187
+ # === raises
188
+ def set_test_case_folder(value)
189
+ @test_case_folder=value
190
+ end
191
+ #This method sets the tdriver test case name
192
+ #
193
+ # === params
194
+ # value: test case name
195
+ # === returns
196
+ # nil
197
+ # === raises
198
+ def set_test_case_name_full(value)
199
+ @test_case_name_full=value
200
+ end
201
+ #This method sets the tdriver test case name
202
+ #
203
+ # === params
204
+ # value: test case name
205
+ # === returns
206
+ # nil
207
+ # === raises
208
+ def set_test_case_name(value)
209
+ @test_case_name_full=value
210
+ #Clean the test case name for unwanted chars
211
+ stripped=value.gsub(/[<\/?*>!)(}{\{@%"'.,:;~-]/,'').squeeze(" ")
212
+ if stripped==nil then
213
+ stripped=value.squeeze(" ")
214
+ end
215
+ stripped1 = stripped.to_s.gsub(' ','_')
216
+ if stripped1==nil
217
+ stripped1=stripped
218
+ end
219
+ str = stripped1.slice(0, 100)
220
+ if str == nil
221
+ str=stripped1
222
+ end
223
+ stripped1=str
224
+ @test_case_name=stripped1.to_s
225
+ end
226
+ #This method sets the test case index
227
+ #
228
+ # === params
229
+ # value: test case index
230
+ # === returns
231
+ # nil
232
+ # === raises
233
+ def set_test_case_index(value)
234
+ @test_case_index=value
235
+ end
236
+ #This method sets the test case start time
237
+ #
238
+ # === params
239
+ # value: test case start time
240
+ # === returns
241
+ # nil
242
+ # === raises
243
+ def set_test_case_start_time(value)
244
+ @test_case_start_time=value
245
+ end
246
+ #This method sets the test case end time
247
+ #
248
+ # === params
249
+ # value: test case end time
250
+ # === returns
251
+ # nil
252
+ # === raises
253
+ def set_test_case_end_time(value)
254
+ @test_case_end_time=value
255
+ end
256
+ #This method sets the test case run time
257
+ #
258
+ # === params
259
+ # value: test case run time
260
+ # === returns
261
+ # nil
262
+ # === raises
263
+ def set_test_case_run_time(value)
264
+ @test_case_run_time=value
265
+ end
266
+ #This method sets the test case status
267
+ #
268
+ # === params
269
+ # value: test case status
270
+ # === returns
271
+ # nil
272
+ # === raises
273
+ def set_test_case_status(value)
274
+ @test_case_status=value
275
+ end
276
+ #This method sets the test case execution log
277
+ #
278
+ # === params
279
+ # value: test case execution log entry
280
+ # === returns
281
+ # nil
282
+ # === raises
283
+ def set_test_case_execution_log(value)
284
+ @test_case_execution_log=@test_case_execution_log.to_s + '<br />' + value.to_s.gsub(/\n/,'<br />')
285
+ end
286
+ #This method sets the test case user data
287
+ #
288
+ # === params
289
+ # value: test case user data
290
+ # === returns
291
+ # nil
292
+ # === raises
293
+ def set_test_case_user_data(data,columns)
294
+ @test_case_user_data=data
295
+ @test_case_user_data_columns=columns
296
+ end
297
+ #This method sets the users data to display in chronological table
298
+ #
299
+ # === params
300
+ # value: test case user data
301
+ # === returns
302
+ # nil
303
+ # === raises
304
+ def set_test_case_chronological_view_data(data)
305
+ @test_case_chronological_view_data=data
306
+ end
307
+ #This method sets the test case behaviour log
308
+ #
309
+ # === params
310
+ # value: test case execution log entry
311
+ # === returns
312
+ # nil
313
+ # === raises
314
+ def set_test_case_behaviour_log(value,test_case)
315
+ @test_case_behaviour_log << [value.to_s,test_case]
316
+ end
317
+ #Thid methods sets video recording of the test case
318
+ #
319
+ # === params
320
+ # rec_name: String, name of video file to create
321
+ # previous_name: String, name of video file of previous test case
322
+ # === returns
323
+ # nil
324
+ def start_video_recording( rec_name, previous_name )
325
+
326
+ @tc_video_filename = rec_name
327
+ @tc_previous_video_filename = previous_name
328
+ tc_video_width = 640
329
+ tc_video_height = 480
330
+ tc_video_fps = 30
331
+
332
+ begin
333
+ tc_video_width = MobyUtil::Parameter[ :report_video_width ].to_i
334
+ rescue
335
+ # parameter not loaded, do nothing
336
+ end
337
+ begin
338
+ tc_video_height = MobyUtil::Parameter[ :report_video_height ].to_i
339
+ rescue
340
+ # parameter not loaded, do nothing
341
+ end
342
+ begin
343
+ tc_video_fps = MobyUtil::Parameter[ :report_video_fps ].to_i
344
+ rescue
345
+ # parameter not loaded, do nothing
346
+ end
347
+
348
+
349
+ @tc_video_recorders = []
350
+
351
+ begin
352
+ each_video_device do | video_device, device_index |
353
+
354
+ rec_options = { :width => tc_video_width, :height => tc_video_height, :fps => tc_video_fps }
355
+ rec_options[ :device ] = video_device unless video_device == "true" # use default device if "true"
356
+ video_recorder = MobyUtil::TDriverCam.new_cam( "cam_" + device_index + "_" + @tc_video_filename, rec_options )
357
+ video_recorder.start_recording
358
+ @tc_video_recorders << video_recorder
359
+ @tc_video_recording = true
360
+
361
+ end
362
+ rescue Exception => e
363
+ # make sure to stop any started cams if startup fails
364
+ stop_video_recording
365
+ raise e
366
+
367
+ end
368
+
369
+ nil
370
+
371
+ end
372
+
373
+ def stop_video_recording()
374
+
375
+
376
+ @tc_video_recorders.each do | video_recorder |
377
+ video_recorder.stop_recording
378
+ end
379
+
380
+ @tc_video_recording = false
381
+
382
+ end
383
+ #This method sets the tdriver test case memory at start
384
+ #
385
+ # === params
386
+ # value: memory
387
+ # === returns
388
+ # nil
389
+ # === raises
390
+ def set_tc_memory_amount_start(value)
391
+ @tc_memory_amount_start=value
392
+ end
393
+ #This method sets the tdriver test case memory at end
394
+ #
395
+ # === params
396
+ # value: memory
397
+ # === returns
398
+ # nil
399
+ # === raises
400
+ def set_tc_memory_amount_end(value)
401
+ @tc_memory_amount_end=value
402
+ end
403
+ #This method sets the tdriver test case total memory
404
+ #
405
+ # === params
406
+ # value: memory
407
+ # === returns
408
+ # nil
409
+ # === raises
410
+ def set_tc_memory_amount_total(value)
411
+ @tc_memory_amount_total=value
412
+ end
413
+
414
+ #This method updates the tdrivertest case details page
415
+ #
416
+ # === params
417
+ # nil
418
+ # === returns
419
+ # nil
420
+ # === raises
421
+ def update_test_case_page()
422
+ begin
423
+ #Calculate run time
424
+ @test_case_run_time=Time.now-@test_case_start_time
425
+
426
+ #make sure that test case folder exists:
427
+ if File::directory?(@test_case_folder)==false
428
+ FileUtils.mkdir_p @test_case_folder
429
+ end
430
+
431
+ write_page_start(@test_case_folder+'/index.html',@test_case_name)
432
+ write_test_case_body(@test_case_folder+'/index.html',
433
+ @test_case_name_full,
434
+ @test_case_start_time,
435
+ @test_case_end_time,
436
+ @test_case_run_time,
437
+ @test_case_status,
438
+ @test_case_index,
439
+ @test_case_folder,
440
+ @capture_screen_error,
441
+ @failed_dump_error,
442
+ @test_case_reboots,
443
+ @test_case_total_dump_count,
444
+ @test_case_total_data_sent,
445
+ @test_case_total_data_received
446
+ )
447
+ write_page_end(@test_case_folder+'/index.html')
448
+ rescue Exception => e
449
+ Kernel::raise e
450
+ end
451
+ return nil
452
+ end
453
+
454
+ #This method makes a copy of the video recording of this test case
455
+ def copy_video_capture()
456
+
457
+ stop_video_recording
458
+
459
+ logging_enabled = MobyUtil::Logger.instance.enabled
460
+ MobyUtil::Logger.instance.enabled=false
461
+ begin
462
+
463
+ video_folder=@test_case_folder+'/video'
464
+ if File::directory?(video_folder)==false
465
+ FileUtils.mkdir_p video_folder
466
+ end
467
+
468
+
469
+ each_video_device do | video_device, device_index |
470
+
471
+ begin
472
+ File.copy("cam_" + device_index + "_" + @tc_video_filename, video_folder)
473
+ rescue
474
+ # Copy failed, do nothing
475
+ end
476
+
477
+ begin
478
+ File.copy("cam_" + device_index + "_" + @tc_previous_video_filename, video_folder)
479
+ rescue
480
+ # Copy failed, do nothing
481
+ end
482
+
483
+ end
484
+
485
+
486
+
487
+ rescue Exception => e
488
+ @test_case_execution_log=@test_case_execution_log.to_s + '<br />' + "Unable to store video file: " + e.message
489
+ end
490
+
491
+ MobyUtil::Logger.instance.enabled=logging_enabled
492
+ return nil
493
+ end
494
+ #This method captures the failed xml dump and image
495
+ #
496
+ # === params
497
+ # nil
498
+ # === returns
499
+ # nil
500
+ # === raises
501
+ def capture_dump(take_screenshot=true)
502
+ MobyUtil::Logger.instance.enabled=false
503
+ image_html=Array.new
504
+ state_html=Array.new
505
+ self.set_test_case_execution_log('<hr />')
506
+ begin
507
+ dump_folder=@test_case_folder+'/state_xml'
508
+ if File::directory?(dump_folder)==false
509
+ FileUtils.mkdir_p dump_folder
510
+ end
511
+ MobyBase::SUTFactory.instance.connected_suts.each do |sut_id, sut_attributes|
512
+
513
+ t = Time.now
514
+ time_stamp=t.strftime( "%Y%m%d%H%M%S" )
515
+ if take_screenshot==true
516
+ begin
517
+ sut_attributes[:sut].capture_screen( :Filename => dump_folder+'/'+time_stamp+'_'+sut_id.to_s+'_state.png', :Redraw => true ) if sut_attributes[:is_connected]
518
+ image_html='<a href="state_xml/'<<
519
+ time_stamp+'_'+sut_id.to_s+'_state.png'<<
520
+ '"><img alt="" src="state_xml/'<<
521
+ time_stamp+'_'+sut_id.to_s+'_state.png'<<
522
+ '" width=20% height=20% /></a>'
523
+ self.set_test_case_execution_log(image_html.to_s)
524
+ rescue Exception=>e
525
+ @capture_screen_error="Unable to capture sceen image #{sut_id}: " + e.message
526
+ self.set_test_case_execution_log(@capture_screen_error.to_s)
527
+ end
528
+ end
529
+
530
+ begin
531
+ failed_xml_state=sut_attributes[:sut].xml_data() if sut_attributes[:is_connected]
532
+ File.open(dump_folder+'/'+time_stamp+'_'+sut_id.to_s+'_state.xml', 'w') { |file| file.write(failed_xml_state) }
533
+ state_html='<a href="state_xml/'<<
534
+ time_stamp+'_'+sut_id.to_s+'_state.xml'<<
535
+ '">'+time_stamp+'_'+sut_id.to_s+'_state.xml'+'</a>'
536
+ self.set_test_case_execution_log(state_html.to_s)
537
+ rescue Exception=>e
538
+ @failed_dump_error="Unable to capture state xml #{sut_id}: " + e.message
539
+ self.set_test_case_execution_log(@failed_dump_error.to_s)
540
+ end
541
+ end
542
+ rescue Exception => e
543
+ @capture_screen_error="Unable to capture state: " + e.message
544
+ self.set_test_case_execution_log(@capture_screen_error.to_s)
545
+ ensure
546
+ if MobyUtil::Parameter[ :logging_level, 0 ].to_i > 0
547
+ MobyUtil::Logger.instance.enabled=true
548
+ else
549
+ MobyUtil::Logger.instance.enabled=false
550
+ end
551
+ self.set_test_case_execution_log('<hr />')
552
+ end
553
+ end
554
+ #This method captures the trace files
555
+ #
556
+ # === params
557
+ # nil
558
+ # === returns
559
+ # nil
560
+ # === raises
561
+ def capture_trace_files()
562
+ if MobyUtil::Parameter[ :report_trace_capture, false]=="true"
563
+ trace_folder=MobyUtil::Parameter[ :report_trace_folder, nil]
564
+ if trace_folder!=nil
565
+ if File::directory?(trace_folder)==true
566
+ dump_folder=@test_case_folder+'/trace_files'
567
+ if File::directory?(dump_folder)==false
568
+ FileUtils.mkdir_p dump_folder
569
+ end
570
+ FileUtils.cp_r trace_folder, @test_case_folder+'/trace_files'
571
+ end
572
+ end
573
+ end
574
+ end
575
+ #This method creates a new TDriver test case folder when testing is ended
576
+ #
577
+ # === params
578
+ # nil
579
+ # === returns
580
+ # nil
581
+ # === raises
582
+ def create_test_case_folder(status)
583
+ begin
584
+ #check if report directory exists
585
+ @test_case_folder=@test_cases_folder+'/'+status+'_'+@test_case_index.to_s+'_'+@test_case_name
586
+ if File::directory?(@test_case_folder)==false
587
+ FileUtils.mkdir_p @test_case_folder
588
+ end
589
+ rescue Exception => e
590
+ Kernel::raise e
591
+ end
592
+ return nil
593
+ end
594
+
595
+ #This method renames a new TDriver test case folder when testing is ended
596
+ #
597
+ # === params
598
+ # nil
599
+ # === returns
600
+ # nil
601
+ # === raises
602
+ def rename_test_case_folder(status)
603
+ begin
604
+ #check if report directory exists
605
+ old_test_case_folder=@test_case_folder
606
+ new_test_case_folder=@test_case_folder.sub('result'+'_'+@test_case_index.to_s+'_'+@test_case_name,status+'_'+@test_case_index.to_s+'_'+@test_case_name)
607
+ if File::directory?(new_test_case_folder)==false
608
+ FileUtils.mv old_test_case_folder, new_test_case_folder , :force => true # no error
609
+ @test_case_folder=new_test_case_folder
610
+ end
611
+ rescue Exception => e
612
+ Kernel::raise e
613
+ end
614
+ return nil
615
+ end
616
+
617
+ def video_recording?
618
+ @tc_video_recording
619
+ end
620
+ end
621
+ end