testability-driver 0.9.2

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