Class: Testmgr::TestReport

Inherits:
Object
  • Object
show all
Includes:
Singleton
Defined in:
lib/testmgr/base/test_report.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeTestReport

Returns a new instance of TestReport.



28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/testmgr/base/test_report.rb', line 28

def initialize()
  puts 'TestReport.initialize()'
  @description=""
  @test_list = []
  @req_list = []
  @requirements=[]
  @environment_under_test=:qa
  @id_under_test=nil
  @tStart=Time.now


  @webApp=nil
  @generalUser=GeneralUser.new()

  @moxywidgets={}
end

Instance Attribute Details

#browser_under_testObject

Returns the value of attribute browser_under_test.



17
18
19
# File 'lib/testmgr/base/test_report.rb', line 17

def browser_under_test
  @browser_under_test
end

#completedObject

END Commands



99
100
101
# File 'lib/testmgr/base/test_report.rb', line 99

def completed
  @completed
end

#data_under_testObject

Returns the value of attribute data_under_test.



18
19
20
# File 'lib/testmgr/base/test_report.rb', line 18

def data_under_test
  @data_under_test
end

#descriptionObject

Returns the value of attribute description.



13
14
15
# File 'lib/testmgr/base/test_report.rb', line 13

def description
  @description
end

#drugUnderTestObject

Returns the value of attribute drugUnderTest.



19
20
21
# File 'lib/testmgr/base/test_report.rb', line 19

def drugUnderTest
  @drugUnderTest
end

#environment_under_testObject

Returns the value of attribute environment_under_test.



14
15
16
# File 'lib/testmgr/base/test_report.rb', line 14

def environment_under_test
  @environment_under_test
end

#generalUserObject

Returns the value of attribute generalUser.



26
27
28
# File 'lib/testmgr/base/test_report.rb', line 26

def generalUser
  @generalUser
end

#req_listObject

Returns the value of attribute req_list.



21
22
23
# File 'lib/testmgr/base/test_report.rb', line 21

def req_list
  @req_list
end

#requirementsObject

Returns the value of attribute requirements.



22
23
24
# File 'lib/testmgr/base/test_report.rb', line 22

def requirements
  @requirements
end

#tEndObject

Returns the value of attribute tEnd.



15
16
17
# File 'lib/testmgr/base/test_report.rb', line 15

def tEnd
  @tEnd
end

#test_listObject

Returns the value of attribute test_list.



16
17
18
# File 'lib/testmgr/base/test_report.rb', line 16

def test_list
  @test_list
end

#tStartObject

Returns the value of attribute tStart.



15
16
17
# File 'lib/testmgr/base/test_report.rb', line 15

def tStart
  @tStart
end

#webAppObject

START Commands



85
86
87
# File 'lib/testmgr/base/test_report.rb', line 85

def webApp
  @webApp
end

#worksheet_under_testObject

Returns the value of attribute worksheet_under_test.



20
21
22
# File 'lib/testmgr/base/test_report.rb', line 20

def worksheet_under_test
  @worksheet_under_test
end

Instance Method Details

#add(rc, description) ⇒ Object



225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
# File 'lib/testmgr/base/test_report.rb', line 225

def add(rc, description)

  if !rc
    begin
      raise "Failed QA Test"
    rescue Exception => e
      puts e.backtrace
    end

    TestUtils.hitKey(__FILE__ + (__LINE__).to_s + " Test Fail : #{description.to_s}- HIT KEY")
  end

  puts __FILE__ + (__LINE__).to_s + " #{description.to_s} : #{rc.to_s}"
  @test_list.push({ :rc => rc, :description => description})
  rc
end

#addReq(r) ⇒ Object



221
222
223
# File 'lib/testmgr/base/test_report.rb', line 221

def addReq(r)
  @req_list << r.to_s
end

#addRequirement(req) ⇒ Object



217
218
219
# File 'lib/testmgr/base/test_report.rb', line 217

def addRequirement(req)
  @requirements << Testmgr::TestComposite.new(req)
end

#completed?Boolean

Returns:

  • (Boolean)


109
110
111
# File 'lib/testmgr/base/test_report.rb', line 109

def completed?
  @completed
end

#completedDateObject



104
105
106
# File 'lib/testmgr/base/test_report.rb', line 104

def completedDate()
  @tCompleted
end

#endTestObject



162
163
164
# File 'lib/testmgr/base/test_report.rb', line 162

def endTest()
  @tEnd=Time.now()
end

#execute(procs) ⇒ Object



252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
# File 'lib/testmgr/base/test_report.rb', line 252

def execute(procs)

  begin
    puts __FILE__ + (__LINE__).to_s + " == execute() =="

    if procs.has_key?(:setup)
      procs[:setup].call
    else
      puts __FILE__ + (__LINE__).to_s + " | execute default setup()"
      TestReport.instance.setup
    end

    if procs.has_key?(:execute)
      procs[:execute].call
    end

    TestReport.instance.completed()

  rescue Exception => e
    puts __FILE__ + (__LINE__).to_s + " == Message :\n" + e.message
    puts $@

  ensure

    if procs.has_key?(:teardown)
      procs[:teardown].call
    else
      TestReport.instance.teardown()
    end

  end

  puts __FILE__ + (__LINE__).to_s + " == exit execute() =="
end

#generateReportObject



296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
# File 'lib/testmgr/base/test_report.rb', line 296

def generateReport()
  endTest()

  puts "\n\n==== TEST REPORT SUMMARY ====\n"
  final_result=true
  passed=0
  failed=0

  i=0
  @test_list.each do |rc|
    puts i.to_s + '. ' + rc[:description].to_s + ' : ' + rc[:rc].to_s
    final_result &&= rc[:rc]

    if rc[:rc]
      passed += 1
    else
      failed += 1
    end

    i+=1
  end

  nAsserts = @test_list.size

  final_result &&=@completed

  puts "\n\nRequirements : " + @req_list.join(', ').to_s
  puts "Description : #{@description.to_s}"
  puts "Total assertions : #{nAsserts.to_s}"
  puts "\n\nPassed : #{passed.to_s}/#{nAsserts.to_s}"
  puts "Failed : #{failed.to_s}/#{nAsserts.to_s}"
  puts "Completed : #{@completed.to_s}"
  puts "Browser: #{@browser_under_test.to_s}"
  puts "Env    : #{@environment_under_test[:name].to_s}"
  puts "URL    : " + @environment_under_test[:url].to_s
  puts "Login  : " + getLoginId().to_s
  puts "DUT    : " + @data_under_test.to_s
  puts "Start/End  : #{@tStart.to_s}" + " / #{@tEnd.to_s}"
  elapsed_time=time_diff_milli(@tStart)
  puts "Elapsed time : #{elapsed_time.to_s} msec."
  puts "\n\nT*** Test Result : #{final_result.to_s} ***"
end

#getDataUnderTestObject



170
171
172
# File 'lib/testmgr/base/test_report.rb', line 170

def getDataUnderTest()
  @data_under_test
end

#getDescriptionObject



49
50
51
# File 'lib/testmgr/base/test_report.rb', line 49

def getDescription()
  @description.to_s
end

#getEnvironmentObject



196
197
198
# File 'lib/testmgr/base/test_report.rb', line 196

def getEnvironment()
  @environment_under_test
end

#getGeneralUserObject



117
118
119
# File 'lib/testmgr/base/test_report.rb', line 117

def getGeneralUser()
  @generalUser
end

#getIdObject



121
122
123
# File 'lib/testmgr/base/test_report.rb', line 121

def getId()
  @id_under_test
end

#getLoginIdObject



154
155
156
# File 'lib/testmgr/base/test_report.rb', line 154

def getLoginId()
  @generalUser.getLoginId()
end

#getLoginPasswordObject



138
139
140
# File 'lib/testmgr/base/test_report.rb', line 138

def getLoginPassword()
  @generalUser.getLoginPassword()
end

#getReq(req) ⇒ Object

if the requirement doesn’t exist, then add it.



206
207
208
209
210
211
212
213
214
215
# File 'lib/testmgr/base/test_report.rb', line 206

def getReq(req)
  @requirements.each do |r|
    if r.get_name==req
      return r
    end
  end

  addRequirement(req).last
#  return nil
end

#getUserObject



113
114
115
# File 'lib/testmgr/base/test_report.rb', line 113

def getUser()
  @generalUser
end

#getWorkSheetObject



150
151
152
# File 'lib/testmgr/base/test_report.rb', line 150

def getWorkSheet()
  @worksheet_under_test
end

#reportObject



288
289
290
291
292
293
294
# File 'lib/testmgr/base/test_report.rb', line 288

def report()
  puts "\n\n== Test Report ==\n"

  @requirements.each do |r|
    r.print
  end
end

#setBrowserUnderTest(bType = :firefox) ⇒ Object



200
201
202
203
# File 'lib/testmgr/base/test_report.rb', line 200

def setBrowserUnderTest(bType=:firefox)
  @browser_under_test=bType
  TestUtils.setDefaultBrowser(bType)
end

#setDataUnderTest(d) ⇒ Object



166
167
168
# File 'lib/testmgr/base/test_report.rb', line 166

def setDataUnderTest(d)
  @data_under_test=d
end

#setDescription(s) ⇒ Object



45
46
47
# File 'lib/testmgr/base/test_report.rb', line 45

def setDescription(s)
  @description=s.to_s
end

#setEnvironment(e = :qa, url = nil) ⇒ Object

Environments

> :qa

> :cert

> :dev

> :prod



179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
# File 'lib/testmgr/base/test_report.rb', line 179

def setEnvironment(e=:qa, url=nil)
  env={
      :qa   => { :name => 'QA',   :description => 'QA Env',  :url => 'https://www.qa.com'   },
      :qa2  => { :name => 'QA2',  :description => 'QA2 Env', :url => 'https://www.qa2.com' },
      :prod => { :name => 'PROD', :description => 'CERT',    :url => 'https://www.prod.com' }
  }


  if url.nil?
    @environment_under_test=env[e]
  else
    @environment_under_test={ :name => 'custom', :url => url.to_s }
  end


end

#setLoginId(s = nil) ⇒ Object



129
130
131
132
# File 'lib/testmgr/base/test_report.rb', line 129

def setLoginId(s=nil)
  puts __FILE__ + (__LINE__).to_s + " setLoginId(#{s.to_s})"
  @generalUser.setLoginId(s)
end

#setLoginPassword(s = nil) ⇒ Object



134
135
136
# File 'lib/testmgr/base/test_report.rb', line 134

def setLoginPassword(s=nil)
  @generalUser.setLoginPassword(s)
end

#setup(description = "TBD") ⇒ Object

Environments

> :qa

> :cert

> :dev

> :prod



58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
# File 'lib/testmgr/base/test_report.rb', line 58

def setup(description="TBD")
  TestReport.instance.setDescription(description)

  @tStart=Time.now()
  @completed=false

#    options=TestUtils.parseOptions()



#    TestReport.instance.setEnvironment(options[:env].to_sym, options[:url])
#    TestReport.instance.setBrowserUnderTest(options[:browser].to_sym)
#    TestReport.instance.setDataUnderTest(options[:dut])
#    TestReport.instance.setWorkSheet(options[:worksheet])
  #TestReport.instance.setPatientWorkSheet(options[:patient_worksheet])
#    @id_under_test=options[:id]
  # GeneralUser
#    TestReport.instance.setLoginPassword(options[:password])
#    TestReport.instance.setLoginId(options[:userid])

#   TestReport.instance.setPatientClassFile(options[:patient_class_file])
end

#setWebApp(w) ⇒ Object



89
90
91
92
# File 'lib/testmgr/base/test_report.rb', line 89

def setWebApp(w)
  puts __FILE__ + (__LINE__).to_s + " setWebApp(#{w.class.to_s})"
  @webApp=w
end

#setWorkSheet(s) ⇒ Object



142
143
144
# File 'lib/testmgr/base/test_report.rb', line 142

def setWorkSheet(s)
  @worksheet_under_test=s
end

#teardownObject



158
159
160
# File 'lib/testmgr/base/test_report.rb', line 158

def teardown()
  TestReport.instance.generateReport()
end

#time_diff_milli(start, finish = Time.now) ⇒ Object

Obtain time diff in milliseconds Example:

> t1 = Time.now

> .…

> t2 = Time.now

> TestUtils.time_diff_milli(t2, t1)



248
249
250
# File 'lib/testmgr/base/test_report.rb', line 248

def time_diff_milli(start, finish=Time.now)
  rc=(finish - start) * 1000.0
end