testmgr 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (51) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +9 -0
  3. data/.idea/testmgr.iml +38 -0
  4. data/.rspec +2 -0
  5. data/.travis.yml +4 -0
  6. data/CODE_OF_CONDUCT.md +13 -0
  7. data/Gemfile +4 -0
  8. data/LICENSE.txt +21 -0
  9. data/README.md +41 -0
  10. data/Rakefile +6 -0
  11. data/bin/console +14 -0
  12. data/bin/setup +7 -0
  13. data/lib/testmgr/base/abstract_test.rb +31 -0
  14. data/lib/testmgr/base/general_user.rb +27 -0
  15. data/lib/testmgr/base/test_case.rb +113 -0
  16. data/lib/testmgr/base/test_composite.rb +113 -0
  17. data/lib/testmgr/base/test_report.rb +329 -0
  18. data/lib/testmgr/base/testmgr/.gitignore +9 -0
  19. data/lib/testmgr/base/testmgr/.rspec +2 -0
  20. data/lib/testmgr/base/testmgr/.travis.yml +4 -0
  21. data/lib/testmgr/base/testmgr/CODE_OF_CONDUCT.md +13 -0
  22. data/lib/testmgr/base/testmgr/Gemfile +4 -0
  23. data/lib/testmgr/base/testmgr/LICENSE.txt +21 -0
  24. data/lib/testmgr/base/testmgr/README.md +41 -0
  25. data/lib/testmgr/base/testmgr/Rakefile +6 -0
  26. data/lib/testmgr/base/testmgr/bin/console +14 -0
  27. data/lib/testmgr/base/testmgr/bin/setup +7 -0
  28. data/lib/testmgr/base/testmgr/lib/testmgr/version.rb +3 -0
  29. data/lib/testmgr/base/testmgr/lib/testmgr.rb +5 -0
  30. data/lib/testmgr/base/testmgr/spec/spec_helper.rb +2 -0
  31. data/lib/testmgr/base/testmgr/spec/testmgr_spec.rb +8 -0
  32. data/lib/testmgr/base/testmgr/testmgr.gemspec +33 -0
  33. data/lib/testmgr/version.rb +3 -0
  34. data/lib/testmgr.rb +9 -0
  35. data/testmgr/.gitignore +9 -0
  36. data/testmgr/.rspec +2 -0
  37. data/testmgr/.travis.yml +4 -0
  38. data/testmgr/CODE_OF_CONDUCT.md +13 -0
  39. data/testmgr/Gemfile +4 -0
  40. data/testmgr/LICENSE.txt +21 -0
  41. data/testmgr/README.md +41 -0
  42. data/testmgr/Rakefile +6 -0
  43. data/testmgr/bin/console +14 -0
  44. data/testmgr/bin/setup +7 -0
  45. data/testmgr/lib/testmgr/version.rb +3 -0
  46. data/testmgr/lib/testmgr.rb +5 -0
  47. data/testmgr/spec/spec_helper.rb +2 -0
  48. data/testmgr/spec/testmgr_spec.rb +11 -0
  49. data/testmgr/testmgr.gemspec +33 -0
  50. data/testmgr.gemspec +34 -0
  51. metadata +149 -0
@@ -0,0 +1,329 @@
1
+
2
+ require 'singleton'
3
+
4
+ #require 'general_user'
5
+
6
+ module Testmgr
7
+
8
+ class TestReport
9
+ include Singleton
10
+
11
+ attr_accessor :webApp
12
+ attr_accessor :completed
13
+ attr_accessor :description
14
+ attr_accessor :environment_under_test
15
+ attr_accessor :tStart, :tEnd
16
+ attr_accessor :test_list
17
+ attr_accessor :browser_under_test
18
+ attr_accessor :data_under_test
19
+ attr_accessor :drugUnderTest
20
+ attr_accessor :worksheet_under_test
21
+ attr_accessor :req_list
22
+ attr_accessor :test_patient
23
+ attr_accessor :patient_class_file
24
+ attr_accessor :patient_worksheet # Worksheet name from patient-class XLS file
25
+
26
+ attr_accessor :generalUser
27
+
28
+ def initialize()
29
+ puts 'TestReport.initialize()'
30
+ @description=""
31
+ @test_list = []
32
+ @req_list = []
33
+ @environment_under_test=:qa
34
+ @id_under_test=nil
35
+ @patient_worksheet=nil
36
+ @patient_class_file='c:/tmp/patient-class.xls'
37
+ @webApp=nil
38
+ @generalUser=GeneralUser.new()
39
+ @test_patient={}
40
+ @moxywidgets={}
41
+ end
42
+
43
+ def setDescription(s)
44
+ @description=s.to_s
45
+ end
46
+
47
+ def getDescription()
48
+ @description.to_s
49
+ end
50
+
51
+ # Environments
52
+ # => :qa
53
+ # => :cert
54
+ # => :dev
55
+ # => :prod
56
+ def setup(description="TBD")
57
+ TestReport.instance.setDescription(description)
58
+
59
+ @tStart=Time.now()
60
+ @completed=false
61
+
62
+ # options=TestUtils.parseOptions()
63
+
64
+
65
+
66
+ # TestReport.instance.setEnvironment(options[:env].to_sym, options[:url])
67
+ # TestReport.instance.setBrowserUnderTest(options[:browser].to_sym)
68
+ # TestReport.instance.setDataUnderTest(options[:dut])
69
+ # TestReport.instance.setWorkSheet(options[:worksheet])
70
+ #TestReport.instance.setPatientWorkSheet(options[:patient_worksheet])
71
+ # @id_under_test=options[:id]
72
+ # GeneralUser
73
+ # TestReport.instance.setLoginPassword(options[:password])
74
+ # TestReport.instance.setLoginId(options[:userid])
75
+
76
+ # TestReport.instance.setPatientClassFile(options[:patient_class_file])
77
+ end
78
+
79
+ ##
80
+ # START Commands
81
+ ##
82
+
83
+ def webApp()
84
+ end
85
+
86
+
87
+
88
+
89
+ def setWebApp(w)
90
+ puts __FILE__ + (__LINE__).to_s + " setWebApp(#{w.class.to_s})"
91
+ @webApp=w
92
+ end
93
+
94
+
95
+ ##
96
+ # END Commands
97
+ ##
98
+
99
+ def completed()
100
+ @completed=true
101
+ @tCompleted=Time.now
102
+ end
103
+
104
+ def completedDate()
105
+ @tCompleted
106
+ end
107
+
108
+
109
+ def completed?
110
+ @completed
111
+ end
112
+
113
+ def getUser()
114
+ @generalUser
115
+ end
116
+
117
+ def getGeneralUser()
118
+ @generalUser
119
+ end
120
+
121
+ def getId()
122
+ @id_under_test
123
+ end
124
+
125
+ def getPatientClassFile()
126
+ @patient_class_file
127
+ end
128
+
129
+ def setPatientClassFile(f)
130
+ if !f.nil?
131
+ @patient_class_file=f.to_s
132
+ end
133
+ @patient_class_file
134
+ end
135
+
136
+ def setLoginId(s=nil)
137
+ puts __FILE__ + (__LINE__).to_s + " setLoginId(#{s.to_s})"
138
+ @generalUser.setLoginId(s)
139
+ end
140
+
141
+ def setLoginPassword(s=nil)
142
+ @generalUser.setLoginPassword(s)
143
+ end
144
+
145
+ def getLoginPassword()
146
+ @generalUser.getLoginPassword()
147
+ end
148
+
149
+ def setWorkSheet(s)
150
+ @worksheet_under_test=s
151
+ end
152
+
153
+ def setPatientWorkSheet(s)
154
+ @patient_worksheet=s
155
+ end
156
+
157
+ def getPatientWorkSheet()
158
+ @patient_worksheet
159
+ end
160
+
161
+ def getWorkSheet()
162
+ @worksheet_under_test
163
+ end
164
+
165
+ def getLoginId()
166
+ @generalUser.getLoginId()
167
+ end
168
+
169
+ def teardown()
170
+ TestReport.instance.generateReport()
171
+ end
172
+
173
+ def endTest()
174
+ @tEnd=Time.now()
175
+ end
176
+
177
+ def setDataUnderTest(d)
178
+ @data_under_test=d
179
+ end
180
+
181
+ def getDataUnderTest()
182
+ @data_under_test
183
+ end
184
+
185
+ # Environments
186
+ # => :qa
187
+ # => :cert
188
+ # => :dev
189
+ # => :prod
190
+ def setEnvironment(e=:qa, url=nil)
191
+ env={
192
+ :qa => { :name => 'QA', :description => 'QA Env', :url => 'https://ww0.drfirst.com' },
193
+ :qa2 => { :name => 'QA2', :description => 'QA2 Env', :url => 'https://qa2-187-1001.qa.drfirst.com/login.jsp' },
194
+ :cert => { :name => 'CERT', :description => 'CERT', :url => 'https://cert.drfirst.com' }
195
+ }
196
+
197
+
198
+ if url.nil?
199
+ @environment_under_test=env[e]
200
+ else
201
+ @environment_under_test={ :name => 'custom', :url => url.to_s }
202
+ end
203
+
204
+
205
+ end
206
+
207
+ def getEnvironment()
208
+ @environment_under_test
209
+ end
210
+
211
+ def setBrowserUnderTest(bType=:firefox)
212
+ @browser_under_test=bType
213
+ TestUtils.setDefaultBrowser(bType)
214
+ end
215
+
216
+
217
+ def addReq(r)
218
+ @req_list << r.to_s
219
+ end
220
+
221
+ def add(rc, description)
222
+
223
+ if !rc
224
+ begin
225
+ raise "Failed QA Test"
226
+ rescue Exception => e
227
+ puts e.backtrace
228
+ end
229
+
230
+ TestUtils.hitKey(__FILE__ + (__LINE__).to_s + " Test Fail : #{description.to_s}- HIT KEY")
231
+ end
232
+
233
+ puts __FILE__ + (__LINE__).to_s + " #{description.to_s} : #{rc.to_s}"
234
+ @test_list.push({ :rc => rc, :description => description})
235
+ rc
236
+ end
237
+
238
+ # Obtain time diff in milliseconds
239
+ # Example:
240
+ # => t1 = Time.now
241
+ # => ....
242
+ # => t2 = Time.now
243
+ # => TestUtils.time_diff_milli(t2, t1)
244
+ def time_diff_milli(start, finish=Time.now)
245
+ rc=(finish - start) * 1000.0
246
+ end
247
+
248
+ def execute(procs)
249
+
250
+ begin
251
+ puts __FILE__ + (__LINE__).to_s + " == execute() =="
252
+
253
+ if procs.has_key?(:setup)
254
+ procs[:setup].call
255
+ else
256
+ puts __FILE__ + (__LINE__).to_s + " | execute default setup()"
257
+ TestReport.instance.setup
258
+ end
259
+
260
+ if procs.has_key?(:execute)
261
+ procs[:execute].call
262
+ end
263
+
264
+ TestReport.instance.completed()
265
+
266
+ rescue Exception => e
267
+ puts __FILE__ + (__LINE__).to_s + " == Message :\n" + e.message
268
+ puts $@
269
+
270
+ ensure
271
+
272
+ if procs.has_key?(:teardown)
273
+ procs[:teardown].call
274
+ else
275
+ TestReport.instance.teardown()
276
+ end
277
+
278
+ end
279
+
280
+ puts __FILE__ + (__LINE__).to_s + " == exit execute() =="
281
+ end
282
+
283
+
284
+ def generateReport()
285
+ endTest()
286
+
287
+ puts "\n\n==== TEST REPORT SUMMARY ====\n"
288
+ final_result=true
289
+ passed=0
290
+ failed=0
291
+
292
+ i=0
293
+ @test_list.each do |rc|
294
+ puts i.to_s + '. ' + rc[:description].to_s + ' : ' + rc[:rc].to_s
295
+ final_result &&= rc[:rc]
296
+
297
+ if rc[:rc]
298
+ passed += 1
299
+ else
300
+ failed += 1
301
+ end
302
+
303
+ i+=1
304
+ end
305
+
306
+ nAsserts = @test_list.size
307
+
308
+ final_result &&=@completed
309
+
310
+ puts "\n\nRequirements : " + @req_list.join(', ').to_s
311
+ puts "Description : #{@description.to_s}"
312
+ puts "Total assertions : #{nAsserts.to_s}"
313
+ puts "\n\nPassed : #{passed.to_s}/#{nAsserts.to_s}"
314
+ puts "Failed : #{failed.to_s}/#{nAsserts.to_s}"
315
+ puts "Completed : #{@completed.to_s}"
316
+ puts "Browser: #{@browser_under_test.to_s}"
317
+ puts "Env : #{@environment_under_test[:name].to_s}"
318
+ puts "URL : " + @environment_under_test[:url].to_s
319
+ puts "Login : " + getLoginId().to_s
320
+ puts "DUT : " + @data_under_test.to_s
321
+ puts "Start/End : #{@tStart.to_s}" + " / #{@tEnd.to_s}"
322
+ elapsed_time=time_diff_milli(@tStart)
323
+ puts "Elapsed time : #{elapsed_time.to_s} msec."
324
+ puts "\n\nTest Result : #{final_result.to_s}"
325
+ end
326
+
327
+ end
328
+
329
+ end
@@ -0,0 +1,9 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /Gemfile.lock
4
+ /_yardoc/
5
+ /coverage/
6
+ /doc/
7
+ /pkg/
8
+ /spec/reports/
9
+ /tmp/
@@ -0,0 +1,2 @@
1
+ --format documentation
2
+ --color
@@ -0,0 +1,4 @@
1
+ language: ruby
2
+ rvm:
3
+ - 2.0.0
4
+ before_install: gem install bundler -v 1.10.6
@@ -0,0 +1,13 @@
1
+ # Contributor Code of Conduct
2
+
3
+ As contributors and maintainers of this project, we pledge to respect all people who contribute through reporting issues, posting feature requests, updating documentation, submitting pull requests or patches, and other activities.
4
+
5
+ We are committed to making participation in this project a harassment-free experience for everyone, regardless of level of experience, gender, gender identity and expression, sexual orientation, disability, personal appearance, body size, race, ethnicity, age, or religion.
6
+
7
+ Examples of unacceptable behavior by participants include the use of sexual language or imagery, derogatory comments or personal attacks, trolling, public or private harassment, insults, or other unprofessional conduct.
8
+
9
+ Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct. Project maintainers who do not follow the Code of Conduct may be removed from the project team.
10
+
11
+ Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by opening an issue or contacting one or more of the project maintainers.
12
+
13
+ This Code of Conduct is adapted from the [Contributor Covenant](http://contributor-covenant.org), version 1.0.0, available at [http://contributor-covenant.org/version/1/0/0/](http://contributor-covenant.org/version/1/0/0/)
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in testmgr.gemspec
4
+ gemspec
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2015 h20dragon
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
@@ -0,0 +1,41 @@
1
+ # Testmgr
2
+
3
+ Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/testmgr`. To experiment with that code, run `bin/console` for an interactive prompt.
4
+
5
+ TODO: Delete this and the text above, and describe your gem
6
+
7
+ ## Installation
8
+
9
+ Add this line to your application's Gemfile:
10
+
11
+ ```ruby
12
+ gem 'testmgr'
13
+ ```
14
+
15
+ And then execute:
16
+
17
+ $ bundle
18
+
19
+ Or install it yourself as:
20
+
21
+ $ gem install testmgr
22
+
23
+ ## Usage
24
+
25
+ TODO: Write usage instructions here
26
+
27
+ ## Development
28
+
29
+ After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
30
+
31
+ To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
32
+
33
+ ## Contributing
34
+
35
+ Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/testmgr. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](contributor-covenant.org) code of conduct.
36
+
37
+
38
+ ## License
39
+
40
+ The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
41
+
@@ -0,0 +1,6 @@
1
+ require "bundler/gem_tasks"
2
+ require "rspec/core/rake_task"
3
+
4
+ RSpec::Core::RakeTask.new(:spec)
5
+
6
+ task :default => :spec
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "bundler/setup"
4
+ require "testmgr"
5
+
6
+ # You can add fixtures and/or initialization code here to make experimenting
7
+ # with your gem easier. You can also use a different console, if you like.
8
+
9
+ # (If you use this, don't forget to add pry to your Gemfile!)
10
+ # require "pry"
11
+ # Pry.start
12
+
13
+ require "irb"
14
+ IRB.start
@@ -0,0 +1,7 @@
1
+ #!/bin/bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+
5
+ bundle install
6
+
7
+ # Do any other automated setup that you need to do here
@@ -0,0 +1,3 @@
1
+ module Testmgr
2
+ VERSION = "0.1.0"
3
+ end
@@ -0,0 +1,5 @@
1
+ require "testmgr/version"
2
+
3
+ module Testmgr
4
+ # Your code goes here...
5
+ end
@@ -0,0 +1,2 @@
1
+ $LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
2
+ require 'testmgr'
@@ -0,0 +1,8 @@
1
+ require 'spec_helper'
2
+
3
+ describe Testmgr do
4
+ it 'has a version number' do
5
+ expect(Testmgr::VERSION).not_to be nil
6
+ end
7
+
8
+ end
@@ -0,0 +1,33 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'testmgr/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "testmgr"
8
+ spec.version = Testmgr::VERSION
9
+ spec.authors = ["h20dragon"]
10
+ spec.email = ["h20dragon@outlook.com"]
11
+
12
+ spec.summary = %q{TODO: Write a short summary, because Rubygems requires one.}
13
+ spec.description = %q{TODO: Write a longer description or delete this line.}
14
+ spec.homepage = "TODO: Put your gem's website or public repo URL here."
15
+ spec.license = "MIT"
16
+
17
+ # Prevent pushing this gem to RubyGems.org by setting 'allowed_push_host', or
18
+ # delete this section to allow pushing this gem to any host.
19
+ if spec.respond_to?(:metadata)
20
+ spec.metadata['allowed_push_host'] = "TODO: Set to 'http://mygemserver.com'"
21
+ else
22
+ raise "RubyGems 2.0 or newer is required to protect against public gem pushes."
23
+ end
24
+
25
+ spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
26
+ spec.bindir = "exe"
27
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
28
+ spec.require_paths = ["lib"]
29
+
30
+ spec.add_development_dependency "bundler", "~> 1.10"
31
+ spec.add_development_dependency "rake", "~> 10.0"
32
+ spec.add_development_dependency "rspec"
33
+ end
@@ -0,0 +1,3 @@
1
+ module Testmgr
2
+ VERSION = "0.1.0"
3
+ end
data/lib/testmgr.rb ADDED
@@ -0,0 +1,9 @@
1
+ require "testmgr/version"
2
+
3
+ module Testmgr
4
+
5
+ ROOT_DIR = File.join(File.dirname(File.expand_path(__FILE__)), 'testmgr').freeze
6
+
7
+ Dir["#{ROOT_DIR}/*.rb"].each { |f| require f }
8
+ Dir["#{ROOT_DIR}/**/*.rb"].each { |f| require f }
9
+ end
@@ -0,0 +1,9 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /Gemfile.lock
4
+ /_yardoc/
5
+ /coverage/
6
+ /doc/
7
+ /pkg/
8
+ /spec/reports/
9
+ /tmp/
data/testmgr/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --format documentation
2
+ --color
@@ -0,0 +1,4 @@
1
+ language: ruby
2
+ rvm:
3
+ - 2.0.0
4
+ before_install: gem install bundler -v 1.10.6
@@ -0,0 +1,13 @@
1
+ # Contributor Code of Conduct
2
+
3
+ As contributors and maintainers of this project, we pledge to respect all people who contribute through reporting issues, posting feature requests, updating documentation, submitting pull requests or patches, and other activities.
4
+
5
+ We are committed to making participation in this project a harassment-free experience for everyone, regardless of level of experience, gender, gender identity and expression, sexual orientation, disability, personal appearance, body size, race, ethnicity, age, or religion.
6
+
7
+ Examples of unacceptable behavior by participants include the use of sexual language or imagery, derogatory comments or personal attacks, trolling, public or private harassment, insults, or other unprofessional conduct.
8
+
9
+ Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct. Project maintainers who do not follow the Code of Conduct may be removed from the project team.
10
+
11
+ Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by opening an issue or contacting one or more of the project maintainers.
12
+
13
+ This Code of Conduct is adapted from the [Contributor Covenant](http://contributor-covenant.org), version 1.0.0, available at [http://contributor-covenant.org/version/1/0/0/](http://contributor-covenant.org/version/1/0/0/)
data/testmgr/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in testmgr.gemspec
4
+ gemspec
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2015 h20dragon
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
data/testmgr/README.md ADDED
@@ -0,0 +1,41 @@
1
+ # Testmgr
2
+
3
+ Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/testmgr`. To experiment with that code, run `bin/console` for an interactive prompt.
4
+
5
+ TODO: Delete this and the text above, and describe your gem
6
+
7
+ ## Installation
8
+
9
+ Add this line to your application's Gemfile:
10
+
11
+ ```ruby
12
+ gem 'testmgr'
13
+ ```
14
+
15
+ And then execute:
16
+
17
+ $ bundle
18
+
19
+ Or install it yourself as:
20
+
21
+ $ gem install testmgr
22
+
23
+ ## Usage
24
+
25
+ TODO: Write usage instructions here
26
+
27
+ ## Development
28
+
29
+ After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
30
+
31
+ To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
32
+
33
+ ## Contributing
34
+
35
+ Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/testmgr. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](contributor-covenant.org) code of conduct.
36
+
37
+
38
+ ## License
39
+
40
+ The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
41
+
data/testmgr/Rakefile ADDED
@@ -0,0 +1,6 @@
1
+ require "bundler/gem_tasks"
2
+ require "rspec/core/rake_task"
3
+
4
+ RSpec::Core::RakeTask.new(:spec)
5
+
6
+ task :default => :spec
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "bundler/setup"
4
+ require "testmgr"
5
+
6
+ # You can add fixtures and/or initialization code here to make experimenting
7
+ # with your gem easier. You can also use a different console, if you like.
8
+
9
+ # (If you use this, don't forget to add pry to your Gemfile!)
10
+ # require "pry"
11
+ # Pry.start
12
+
13
+ require "irb"
14
+ IRB.start
data/testmgr/bin/setup ADDED
@@ -0,0 +1,7 @@
1
+ #!/bin/bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+
5
+ bundle install
6
+
7
+ # Do any other automated setup that you need to do here
@@ -0,0 +1,3 @@
1
+ module Testmgr
2
+ VERSION = "0.1.0"
3
+ end