testmgr 0.2.0 → 0.3.1.pre

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml 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.