testmgr 0.2.0 → 0.3.1.pre

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 7f9530479cbe48581dec9f1f5560504e86d24ecf
4
- data.tar.gz: 7907c57a9d048e27dcb1c50cc449cdcc3bcd1edf
3
+ metadata.gz: c788171781d05e43fe0bb67af44a10298917bdce
4
+ data.tar.gz: 30952ea5a9c7fb6b371ba34ea7178d4066340944
5
5
  SHA512:
6
- metadata.gz: 203b5bd3e1086eafaa1c7c743ecd61cd960e320e404af023fb71c527cfa14569801dad3395b88b62d09f507fa796ffb26cea7d19cbb80419d1dcca6433d0aec0
7
- data.tar.gz: 403cbcd4075d3f203d1e5af2eea720a4ebd01e6cfd50e10b38e485ec1f93c08b4d74a011979374b40fd84142caa5917990e0fe90f12ad143371c81251cfacf72
6
+ metadata.gz: baaf2dd58fa586a0e04ad62b201d23bc296e0c421633a5a3bee5e8712b5ef0f261f196ac62c84ae809be818383c8d4d675c893fa8d29bb24768fb8c30bd9d981
7
+ data.tar.gz: eacb47d26ede485337c6da4b1d6307d87ddfbd3a36c2cbe663415d5fceb28b984d915f85895369924b48b94621957ff21149729c67104d09a9bf2f93f090ef91
data/examples/ex1.rb ADDED
@@ -0,0 +1,21 @@
1
+ require_relative('../lib/testmgr')
2
+
3
+
4
+ Testmgr::TestReport.instance.addRequirement('REQ-ABC')
5
+ req=Testmgr::TestReport.instance.getReq('REQ-ABC')
6
+
7
+
8
+ Testmgr::TestReport.instance.getReq('REQ-ABC').add(Testmgr::TestCase.new('visible_when', "Dynamic"))
9
+
10
+ tc = Testmgr::TestReport.instance.getReq('REQ-ABC').tc('visible_when').add(true, 'Must be true')
11
+
12
+
13
+
14
+ Testmgr::TestReport.instance.getReq('REQ-ABC').tc('visible_when').add(false, 'Must be false')
15
+
16
+ Testmgr::TestReport.instance.getReq('REQ-ABC').get_child('peter').add(true, 'Peter 1')
17
+
18
+ Testmgr::TestReport.instance.report()
19
+
20
+ puts Testmgr::TestReport.instance.getMetrics()
21
+
@@ -24,9 +24,13 @@ module Testmgr
24
24
  @metrics[:total] > 0 && @metrics[:passed] > 0 && @metrics[:failed]==0
25
25
  end
26
26
 
27
+ def getMetrics()
28
+ @metrics
29
+ end
30
+
27
31
  def add(rc, desc)
28
32
 
29
- puts __FILE__ + (__LINE__).to_s + " TestCase.add(#{rc}, #{desc})"
33
+ puts __FILE__ + (__LINE__).to_s + " TestCase.add(#{rc}, #{desc})" if Testmgr::TestReport.instance.verbose
30
34
  @assertions << { :rc => rc, :description => desc }
31
35
 
32
36
  if rc.nil?
@@ -60,6 +60,10 @@ module Testmgr
60
60
  @sub_tasks.each { |task| time += task.get_time_required }
61
61
  end
62
62
 
63
+ def totalTestCases()
64
+ @sub_tasks.length
65
+ end
66
+
63
67
  def getResult()
64
68
  rc=true
65
69
  @sub_tasks.each do |task|
@@ -78,6 +82,23 @@ module Testmgr
78
82
  end
79
83
  end
80
84
 
85
+ def getMetrics()
86
+ m={:passed => 0, :failed => 0, :skipped => 0, :total => 0}
87
+ @sub_tasks.each do |t|
88
+ if t.is_a?(Testmgr::TestCase)
89
+ _m = t.getMetrics()
90
+ m[:total] += _m[:total]
91
+ m[:passed] += _m[:passed]
92
+ m[:failed] += _m[:failed]
93
+ m[:skipped] += _m[:skipped]
94
+ else
95
+ puts __FILE__ + (__LINE__).to_s + " Unsure here."
96
+ end
97
+ end
98
+
99
+ m
100
+ end
101
+
81
102
  def tc(name)
82
103
  child(name)
83
104
  end
@@ -8,7 +8,8 @@ module Testmgr
8
8
  class TestReport
9
9
  include Singleton
10
10
 
11
- attr_accessor :webApp
11
+ DEFAULT_REQ='__TBD__'
12
+
12
13
  attr_accessor :completed
13
14
  attr_accessor :description
14
15
  attr_accessor :environment_under_test
@@ -16,18 +17,20 @@ class TestReport
16
17
  attr_accessor :test_list
17
18
  attr_accessor :browser_under_test
18
19
  attr_accessor :data_under_test
19
- attr_accessor :drugUnderTest
20
20
  attr_accessor :worksheet_under_test
21
21
  attr_accessor :req_list
22
22
  attr_accessor :requirements
23
23
 
24
+ attr_accessor :current_rec
24
25
 
25
-
26
+ attr_accessor :verbose
26
27
  attr_accessor :generalUser
27
28
 
29
+
28
30
  def initialize()
29
- puts 'TestReport.initialize()'
31
+ @verbose=false
30
32
  @description=""
33
+ @current_rec = { :req => DEFAULT_REQ, :tc => DEFAULT_REQ}
31
34
  @test_list = []
32
35
  @req_list = []
33
36
  @requirements=[]
@@ -36,10 +39,51 @@ class TestReport
36
39
  @tStart=Time.now
37
40
 
38
41
 
39
- @webApp=nil
40
42
  @generalUser=GeneralUser.new()
43
+ end
41
44
 
42
- @moxywidgets={}
45
+ def verbose
46
+ @verbose
47
+ end
48
+
49
+ def enableVerbose
50
+ @verbose=true
51
+ end
52
+
53
+ def disableVerbose
54
+ @verbose=false
55
+ end
56
+
57
+ def setCurrentReq(_r=DEFAULT_REQ)
58
+ @current_rec[:req]=_r
59
+ end
60
+
61
+ def setCurrentRequirement(_r=DEFAULT_REQ)
62
+ setReq(_r)
63
+ end
64
+
65
+ def getCurrentReq()
66
+ @current_rec[:req]
67
+ end
68
+
69
+ def getCurrentRequirement()
70
+ getReq()
71
+ end
72
+
73
+ def getCurrentTC()
74
+ @current_rec[:tc]
75
+ end
76
+
77
+ def getCurrentTestCase()
78
+ getTC()
79
+ end
80
+
81
+ def setCurrentTC(_t=DEFAULT_REQ)
82
+ @current_rec[:tc]=_t
83
+ end
84
+
85
+ def setCurrentTestCase(_t=DEFAULT_REQ)
86
+ setTC(_t)
43
87
  end
44
88
 
45
89
  def setDescription(s)
@@ -60,37 +104,12 @@ class TestReport
60
104
 
61
105
  @tStart=Time.now()
62
106
  @completed=false
63
-
64
- # options=TestUtils.parseOptions()
65
-
66
-
67
-
68
- # TestReport.instance.setEnvironment(options[:env].to_sym, options[:url])
69
- # TestReport.instance.setBrowserUnderTest(options[:browser].to_sym)
70
- # TestReport.instance.setDataUnderTest(options[:dut])
71
- # TestReport.instance.setWorkSheet(options[:worksheet])
72
- #TestReport.instance.setPatientWorkSheet(options[:patient_worksheet])
73
- # @id_under_test=options[:id]
74
- # GeneralUser
75
- # TestReport.instance.setLoginPassword(options[:password])
76
- # TestReport.instance.setLoginId(options[:userid])
77
-
78
- # TestReport.instance.setPatientClassFile(options[:patient_class_file])
79
107
  end
80
108
 
81
109
  ##
82
110
  # START Commands
83
111
  ##
84
112
 
85
- def webApp()
86
- end
87
-
88
-
89
- def setWebApp(w)
90
- puts __FILE__ + (__LINE__).to_s + " setWebApp(#{w.class.to_s})"
91
- @webApp=w
92
- end
93
-
94
113
 
95
114
  ##
96
115
  # END Commands
@@ -123,11 +142,7 @@ class TestReport
123
142
  end
124
143
 
125
144
 
126
-
127
-
128
-
129
145
  def setLoginId(s=nil)
130
- puts __FILE__ + (__LINE__).to_s + " setLoginId(#{s.to_s})"
131
146
  @generalUser.setLoginId(s)
132
147
  end
133
148
 
@@ -234,7 +249,7 @@ class TestReport
234
249
  TestUtils.hitKey(__FILE__ + (__LINE__).to_s + " Test Fail : #{description.to_s}- HIT KEY")
235
250
  end
236
251
 
237
- puts __FILE__ + (__LINE__).to_s + " #{description.to_s} : #{rc.to_s}"
252
+ puts __FILE__ + (__LINE__).to_s + " #{description.to_s} : #{rc.to_s}" if @verbose
238
253
  @test_list.push({ :rc => rc, :description => description})
239
254
  rc
240
255
  end
@@ -252,12 +267,12 @@ class TestReport
252
267
  def execute(procs)
253
268
 
254
269
  begin
255
- puts __FILE__ + (__LINE__).to_s + " == execute() =="
270
+ puts __FILE__ + (__LINE__).to_s + " == execute() ==" if @verbose
256
271
 
257
272
  if procs.has_key?(:setup)
258
273
  procs[:setup].call
259
274
  else
260
- puts __FILE__ + (__LINE__).to_s + " | execute default setup()"
275
+ puts __FILE__ + (__LINE__).to_s + " | execute default setup()" if @verbose
261
276
  TestReport.instance.setup
262
277
  end
263
278
 
@@ -281,7 +296,7 @@ class TestReport
281
296
 
282
297
  end
283
298
 
284
- puts __FILE__ + (__LINE__).to_s + " == exit execute() =="
299
+ puts __FILE__ + (__LINE__).to_s + " == exit execute() ==" if @verbose
285
300
  end
286
301
 
287
302
 
@@ -293,6 +308,62 @@ class TestReport
293
308
  end
294
309
  end
295
310
 
311
+ def _passed?(metrics)
312
+ metrics[:total] > 0 && metrics[:passed] > 0 && metrics[:failed] == 0
313
+ end
314
+
315
+
316
+ def getMetrics()
317
+ puts "\n\n== Test Metrics ==\n"
318
+
319
+ asserts_metrics={:passed => 0, :failed => 0, :skipped => 0, :total => 0, :result => nil}
320
+
321
+ tc_metrics = {:passed => 0, :failed => 0, :skipped => 0, :total => 0 }
322
+
323
+ rq_metrics = {:passed => 0, :failed => 0, :skipped => 0, :total => 0 }
324
+
325
+ rc=true
326
+
327
+ @requirements.each do |r|
328
+ puts "#{r.class.to_s}"
329
+
330
+ rq_metrics[:total]+=1
331
+
332
+ if r.is_a?(Testmgr::TestComposite)
333
+ _m=r.getMetrics
334
+ asserts_metrics[:total] += _m[:total]
335
+ asserts_metrics[:passed] += _m[:passed]
336
+ asserts_metrics[:failed] += _m[:failed]
337
+
338
+
339
+ tc_metrics[:total]+=r.totalTestCases()
340
+ if _passed?(_m)
341
+ tc_metrics[:passed]+=1
342
+ else
343
+ tc_metrics[:failed]+=1
344
+ end
345
+
346
+ else
347
+ puts "Unhandled : #{r.class.to_s}"
348
+ end
349
+
350
+ if _passed?(tc_metrics)
351
+ rq_metrics[:passed]+=1
352
+ else
353
+ rq_metrics[:failed]+=1
354
+ end
355
+
356
+
357
+ end
358
+
359
+ rc = rq_metrics[:failed] == 0 && tc_metrics[:failed] && asserts_metrics[:failed]==0
360
+
361
+
362
+ asserts_metrics[:result] = _passed?(asserts_metrics)
363
+
364
+ { :rc => rc, :assertions => asserts_metrics, :testcases => tc_metrics, :requirements => rq_metrics }
365
+ end
366
+
296
367
  def generateReport()
297
368
  endTest()
298
369
 
@@ -326,10 +397,10 @@ class TestReport
326
397
  puts "Failed : #{failed.to_s}/#{nAsserts.to_s}"
327
398
  puts "Completed : #{@completed.to_s}"
328
399
  puts "Browser: #{@browser_under_test.to_s}"
329
- puts "Env : #{@environment_under_test[:name].to_s}"
330
- puts "URL : " + @environment_under_test[:url].to_s
331
- puts "Login : " + getLoginId().to_s
332
- puts "DUT : " + @data_under_test.to_s
400
+ # puts "Env : #{@environment_under_test[:name].to_s}"
401
+ # puts "URL : " + @environment_under_test[:url].to_s
402
+ # puts "Login : " + getLoginId().to_s
403
+ # puts "DUT : " + @data_under_test.to_s
333
404
  puts "Start/End : #{@tStart.to_s}" + " / #{@tEnd.to_s}"
334
405
  elapsed_time=time_diff_milli(@tStart)
335
406
  puts "Elapsed time : #{elapsed_time.to_s} msec."
@@ -1,3 +1,3 @@
1
1
  module Testmgr
2
- VERSION = "0.2.0"
2
+ VERSION = "0.3.1.pre"
3
3
  end
metadata CHANGED
@@ -1,69 +1,69 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: testmgr
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.1.pre
5
5
  platform: ruby
6
6
  authors:
7
7
  - h20dragon
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-02-20 00:00:00.000000000 Z
11
+ date: 2016-03-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - '>='
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '0'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - '>='
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - '>='
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - '>='
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rspec
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - '>='
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
47
  version: '0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - '>='
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: json
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - '>='
59
+ - - ">="
60
60
  - !ruby/object:Gem::Version
61
61
  version: '0'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - '>='
66
+ - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
69
  description: Manager test requirements, assertions, and results to create test reports.
@@ -73,12 +73,12 @@ executables: []
73
73
  extensions: []
74
74
  extra_rdoc_files: []
75
75
  files:
76
- - .gitignore
77
- - .idea/dictionaries/pkim.xml
78
- - .idea/encodings.xml
79
- - .idea/testmgr.iml
80
- - .rspec
81
- - .travis.yml
76
+ - ".gitignore"
77
+ - ".idea/dictionaries/pkim.xml"
78
+ - ".idea/encodings.xml"
79
+ - ".idea/testmgr.iml"
80
+ - ".rspec"
81
+ - ".travis.yml"
82
82
  - CODE_OF_CONDUCT.md
83
83
  - Gemfile
84
84
  - LICENSE.txt
@@ -86,6 +86,7 @@ files:
86
86
  - Rakefile
87
87
  - bin/console
88
88
  - bin/setup
89
+ - examples/ex1.rb
89
90
  - lib/testmgr.rb
90
91
  - lib/testmgr/base/abstract_test.rb
91
92
  - lib/testmgr/base/general_user.rb
@@ -104,17 +105,17 @@ require_paths:
104
105
  - lib
105
106
  required_ruby_version: !ruby/object:Gem::Requirement
106
107
  requirements:
107
- - - '>='
108
+ - - ">="
108
109
  - !ruby/object:Gem::Version
109
110
  version: '0'
110
111
  required_rubygems_version: !ruby/object:Gem::Requirement
111
112
  requirements:
112
- - - '>='
113
+ - - ">"
113
114
  - !ruby/object:Gem::Version
114
- version: '0'
115
+ version: 1.3.1
115
116
  requirements: []
116
117
  rubyforge_project:
117
- rubygems_version: 2.4.7
118
+ rubygems_version: 2.6.2
118
119
  signing_key:
119
120
  specification_version: 4
120
121
  summary: General purpose test manager.