quick_test_runner 0.0.2 → 0.0.3

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.
@@ -3,184 +3,185 @@ require 'test/unit/ui/console/testrunner'
3
3
  #module QuickTestRunner
4
4
  # Your code goes here...
5
5
  #end
6
-
7
- # TODO: run tests that failed the last time
8
- # TODO: figure out how to reload helpers
9
- # TODO: get functional tests to work
10
- # TODO: blueprints don't get updated
11
- # TODO: reports2_test doesn't seem to work the second time around
12
- class QuickTestRunner
13
- attr_accessor :test_path, :test_name, :options
14
- attr_accessor :klass, :test_names
15
- attr_accessor :test_buffer
16
-
17
- def initialize args={}
18
- self.test_path = args[:test_path]
19
- self.test_name = args[:test_name]
20
- self.test_buffer = []
21
- self.options = args[:options] || {}
22
- end
23
-
24
- def self.readme
25
- puts ""
26
- puts " **************************************************************************** "
27
- puts " * * "
28
- puts " * Type tr.help to see all available commands for the Quick Test Runner * "
29
- puts " * * "
30
- puts " * * "
31
- puts " * NOTE that you will need to restart console if you: * "
32
- puts " * * "
33
- puts " * 1. modify helper implementation code * "
34
- puts " * * "
35
- puts " * 2. modify blueprint code * "
36
- puts " * * "
37
- puts " **************************************************************************** "
38
- puts ""
39
- end
40
-
41
- def help
42
- console_puts "Quick Test Runner Help"
43
- puts " run 'path', 'keyword' : runs the tests filtered by keyword of test path"
44
- puts " path does not need the '_test' appended"
45
- puts " example: tr.run 'helper/jobs_helper', 'search'"
46
- puts ""
47
- puts " run 'path' : runs the tests filtered by keyword of test path"
48
- puts " example: tr.run 'vendor'"
49
- puts ""
50
- puts " run number : rerun a test from the buffer - use tr.list to see buffer"
51
- puts " example: tr.run 2"
52
- puts ""
53
- puts " run : rerun the last test"
54
- puts " example: tr.run"
55
- puts ""
56
- puts " run_suite 'path' : run all tests in a suite specified by the path"
57
- puts " example: tr.run_suite 'vendor'"
58
- puts ""
59
- puts " run_test 'keyword' : runs the tests filtered to keyword of a previously specified test suite (use tr.run_suite or tr.run to set the suite)"
60
- puts " example: tr.run_test 'search'"
61
- puts ""
62
- puts " list : list buffer of previous run tests"
63
- puts " example: tr.list"
64
- puts ""
65
- puts " Feel free too look at /test/test_runner.rb and offer improvements, suggestions or complaints!"
66
- puts ""
67
- end
68
-
69
- def run tp=nil, tn=nil, opts={}
70
- if tp.is_a? Integer
71
- rerun tp
72
- return
6
+ module QuickTestRunner
7
+ # TODO: run tests that failed the last time
8
+ # TODO: figure out how to reload helpers
9
+ # TODO: get functional tests to work
10
+ # TODO: blueprints don't get updated
11
+ # TODO: reports2_test doesn't seem to work the second time around
12
+ class Runner
13
+ attr_accessor :test_path, :test_name, :options
14
+ attr_accessor :klass, :test_names
15
+ attr_accessor :test_buffer
16
+
17
+ def initialize args={}
18
+ self.test_path = args[:test_path]
19
+ self.test_name = args[:test_name]
20
+ self.test_buffer = []
21
+ self.options = args[:options] || {}
73
22
  end
74
23
 
75
- if tn.nil? and not tp.nil?
76
- run_suite tp
77
- return
24
+ def self.readme
25
+ puts ""
26
+ puts " **************************************************************************** "
27
+ puts " * * "
28
+ puts " * Type tr.help to see all available commands for the Quick Test Runner * "
29
+ puts " * * "
30
+ puts " * * "
31
+ puts " * NOTE that you will need to restart console if you: * "
32
+ puts " * * "
33
+ puts " * 1. modify helper implementation code * "
34
+ puts " * * "
35
+ puts " * 2. modify blueprint code * "
36
+ puts " * * "
37
+ puts " **************************************************************************** "
38
+ puts ""
78
39
  end
79
40
 
80
- self.test_path = tp ? tp : self.test_path
81
- self.test_name = tn ? tn : self.test_name
82
- self.options = opts
41
+ def help
42
+ console_puts "Quick Test Runner Help"
43
+ puts " run 'path', 'keyword' : runs the tests filtered by keyword of test path"
44
+ puts " path does not need the '_test' appended"
45
+ puts " example: tr.run 'helper/jobs_helper', 'search'"
46
+ puts ""
47
+ puts " run 'path' : runs the tests filtered by keyword of test path"
48
+ puts " example: tr.run 'vendor'"
49
+ puts ""
50
+ puts " run number : rerun a test from the buffer - use tr.list to see buffer"
51
+ puts " example: tr.run 2"
52
+ puts ""
53
+ puts " run : rerun the last test"
54
+ puts " example: tr.run"
55
+ puts ""
56
+ puts " run_suite 'path' : run all tests in a suite specified by the path"
57
+ puts " example: tr.run_suite 'vendor'"
58
+ puts ""
59
+ puts " run_test 'keyword' : runs the tests filtered to keyword of a previously specified test suite (use tr.run_suite or tr.run to set the suite)"
60
+ puts " example: tr.run_test 'search'"
61
+ puts ""
62
+ puts " list : list buffer of previous run tests"
63
+ puts " example: tr.list"
64
+ puts ""
65
+ puts " Feel free too look at /test/test_runner.rb and offer improvements, suggestions or complaints!"
66
+ puts ""
67
+ end
83
68
 
84
- internal_run
85
- end
69
+ def run tp=nil, tn=nil, opts={}
70
+ if tp.is_a? Integer
71
+ rerun tp
72
+ return
73
+ end
86
74
 
87
- def run_suite tp=nil
88
- self.test_path = tp ? tp : self.test_path
89
- self.test_name = nil
75
+ if tn.nil? and not tp.nil?
76
+ run_suite tp
77
+ return
78
+ end
90
79
 
91
- internal_run
92
- end
80
+ self.test_path = tp ? tp : self.test_path
81
+ self.test_name = tn ? tn : self.test_name
82
+ self.options = opts
93
83
 
94
- def run_test tn
95
- self.test_name = tn
84
+ internal_run
85
+ end
96
86
 
97
- internal_run
98
- end
87
+ def run_suite tp=nil
88
+ self.test_path = tp ? tp : self.test_path
89
+ self.test_name = nil
99
90
 
100
- def list
101
- self.test_buffer.each_with_index do |test_entry, i|
102
- txt = "#{i+1}. #{test_entry[0]}"
103
- txt << " - #{test_entry[1]}" if test_entry[1]
104
- puts txt
91
+ internal_run
105
92
  end
106
- puts ""
107
- end
108
93
 
109
- # necessary to "undef" test methods so that we can reload them again (via load "test/unit...") so that any changes made to the test file get through
110
- def clean verbose=true
111
- return unless self.klass
94
+ def run_test tn
95
+ self.test_name = tn
112
96
 
113
- self.test_names.each do |tn|
114
- self.klass.send(:remove_method, tn.to_sym)
97
+ internal_run
115
98
  end
116
99
 
117
- self.klass = nil
118
- self.test_names = nil
119
- console_puts "Successfully cleaned test names" if verbose
120
- end
100
+ def list
101
+ self.test_buffer.each_with_index do |test_entry, i|
102
+ txt = "#{i+1}. #{test_entry[0]}"
103
+ txt << " - #{test_entry[1]}" if test_entry[1]
104
+ puts txt
105
+ end
106
+ puts ""
107
+ end
121
108
 
122
- private
123
- def rerun number
124
- self.test_path = self.test_buffer[number-1][0]
125
- self.test_name = self.test_buffer[number-1][1]
126
- internal_run
127
- end
109
+ # necessary to "undef" test methods so that we can reload them again (via load "test/unit...") so that any changes made to the test file get through
110
+ def clean verbose=true
111
+ return unless self.klass
128
112
 
129
- def add_to_buffer path, name
130
- self.test_buffer << [self.test_path, self.test_name]
131
- self.test_buffer.uniq!
132
- end
113
+ self.test_names.each do |tn|
114
+ self.klass.send(:remove_method, tn.to_sym)
115
+ end
133
116
 
134
- def console_puts text
135
- puts ""
136
- puts " *** #{text} *** "
137
- puts ""
138
- end
117
+ self.klass = nil
118
+ self.test_names = nil
119
+ console_puts "Successfully cleaned test names" if verbose
120
+ end
139
121
 
140
- def internal_run
141
- if self.test_path.nil?
142
- console_puts "ERROR: a test path needs to be specified"
143
- return
122
+ private
123
+ def rerun number
124
+ self.test_path = self.test_buffer[number-1][0]
125
+ self.test_name = self.test_buffer[number-1][1]
126
+ internal_run
144
127
  end
145
128
 
146
- # reload needs to be done before load otherwise can't load the unit tests that are nested in modules/folders
147
- reload!
148
- load "test/unit/#{self.test_path}_test.rb"
129
+ def add_to_buffer path, name
130
+ self.test_buffer << [self.test_path, self.test_name]
131
+ self.test_buffer.uniq!
132
+ end
149
133
 
150
- self.klass = begin
151
- "#{self.test_path.split('/').last.camelize}Test".constantize
152
- rescue NameError
153
- "#{self.test_path.camelize}Test".constantize
134
+ def console_puts text
135
+ puts ""
136
+ puts " *** #{text} *** "
137
+ puts ""
154
138
  end
155
139
 
156
- suite = Test::Unit::TestSuite.new(self.klass.to_s)
140
+ def internal_run
141
+ if self.test_path.nil?
142
+ console_puts "ERROR: a test path needs to be specified"
143
+ return
144
+ end
145
+
146
+ # reload needs to be done before load otherwise can't load the unit tests that are nested in modules/folders
147
+ reload!
148
+ load "test/unit/#{self.test_path}_test.rb"
149
+
150
+ self.klass = begin
151
+ "#{self.test_path.split('/').last.camelize}Test".constantize
152
+ rescue NameError
153
+ "#{self.test_path.camelize}Test".constantize
154
+ end
157
155
 
158
- console_puts "Running all tests in #{self.klass} suite." if self.test_name.blank?
159
- console_puts "Running tests filtered by '#{self.test_name}' keyword in #{self.klass} suite." unless self.test_name.blank?
156
+ suite = Test::Unit::TestSuite.new(self.klass.to_s)
160
157
 
161
- self.test_names = self.klass.suite.tests.collect {|t| t.method_name}
162
- add_to_buffer self.test_path, self.test_name
158
+ console_puts "Running all tests in #{self.klass} suite." if self.test_name.blank?
159
+ console_puts "Running tests filtered by '#{self.test_name}' keyword in #{self.klass} suite." unless self.test_name.blank?
163
160
 
164
- begin
165
- if self.test_name
166
- self.test_names.each do |t|
167
- suite << self.klass.new(t) if t.include?(self.test_name)
161
+ self.test_names = self.klass.suite.tests.collect {|t| t.method_name}
162
+ add_to_buffer self.test_path, self.test_name
163
+
164
+ begin
165
+ if self.test_name
166
+ self.test_names.each do |t|
167
+ suite << self.klass.new(t) if t.include?(self.test_name)
168
+ end
169
+ else
170
+ suite << self.klass.suite
168
171
  end
169
- else
170
- suite << self.klass.suite
171
- end
172
- runner = Test::Unit::UI::Console::TestRunner.new(suite)
173
- runner.start
174
-
175
- if test_name
176
- puts "\n\nTests ran: "
177
- suite.tests.each {|t| puts " #{t.method_name}"}
178
- ""
179
- else
180
- ""
172
+ runner = Test::Unit::UI::Console::TestRunner.new(suite)
173
+ runner.start
174
+
175
+ if test_name
176
+ puts "\n\nTests ran: "
177
+ suite.tests.each {|t| puts " #{t.method_name}"}
178
+ ""
179
+ else
180
+ ""
181
+ end
182
+ ensure
183
+ clean false
181
184
  end
182
- ensure
183
- clean false
184
185
  end
185
186
  end
186
187
  end
@@ -1,3 +1,3 @@
1
1
  module QuickTestRunner
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 0
8
- - 2
9
- version: 0.0.2
8
+ - 3
9
+ version: 0.0.3
10
10
  platform: ruby
11
11
  authors:
12
12
  - James Ho