quicktest 0.5.6 → 0.5.7
Sign up to get free protection for your applications and to get access to all the features.
- data/README +6 -1
- data/{rakefile → Rakefile} +13 -54
- data/TODO +1 -0
- data/bin/quickspec +0 -0
- data/doc/created.rid +1 -1
- data/lib/quicktest.rb +49 -27
- data/spec/__test.rb +7 -0
- data/spec/test.rb +9 -0
- data/spec/test_result.txt +38 -30
- data/tasks/gregproject.rake +65 -0
- data/tasks/helpers.rb +36 -0
- metadata +61 -49
data/README
CHANGED
@@ -93,11 +93,16 @@ http://gregweber.info/projects/quicktest.html
|
|
93
93
|
included with the gem
|
94
94
|
|
95
95
|
== Important Notes
|
96
|
+
- def quicktest will instantiate an object for the class you are testing, which gives a convenient referenct to self in the quicktest method. However, it calls new() without any parameters. If you need parameters for new(), you will have to use def self.quicktest and call new() yourself
|
97
|
+
|
98
|
+
== Configuration
|
96
99
|
- when testing module instance methods, the module is included into an anonymous class. By default, that class inherits from Object. To change this you must define an object that the module will be included into by defining the following in the module:
|
97
100
|
|
98
101
|
def self.quicktest_include_into; String end
|
99
102
|
|
100
|
-
-
|
103
|
+
- you can change the testing method name from quicktest to something else using the command line option
|
104
|
+
|
105
|
+
--quicktest better_testing_name
|
101
106
|
|
102
107
|
== TroubleShooting
|
103
108
|
- quicktest methods not working properly? if the class (or one of its ancestors) is overriding method tracing then including QuickTest::Tracer will fix it, but you should also fix the class or its ancestor.
|
data/{rakefile → Rakefile}
RENAMED
@@ -1,16 +1,19 @@
|
|
1
|
-
project = 'quicktest'
|
1
|
+
$project = 'quicktest'
|
2
|
+
require 'tasks/helpers'
|
3
|
+
|
2
4
|
def test_dir; Dir.chdir('spec') {|dir| yield dir } end
|
3
5
|
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
6
|
+
class String
|
7
|
+
def split_join( splitter=$/ )
|
8
|
+
yield( split( splitter ) ).join( splitter )
|
9
|
+
end
|
8
10
|
end
|
9
11
|
|
10
12
|
desc "test"
|
11
13
|
task :test do
|
12
14
|
t = 'spec -r ../lib/quicktest test.rb'
|
13
15
|
test_dir {(puts (run "#{t} >| test_result.txt || #{t}"))}
|
16
|
+
test_dir { puts `../bin/quickspec __test.rb --quicktest __test` }
|
14
17
|
end
|
15
18
|
|
16
19
|
namespace :test do
|
@@ -30,20 +33,6 @@ namespace :test do
|
|
30
33
|
end
|
31
34
|
end
|
32
35
|
|
33
|
-
class IO
|
34
|
-
def self.write( file, str )
|
35
|
-
self.open( file, 'w' ) { |fh| fh.print str }
|
36
|
-
end
|
37
|
-
def self.read_write( file, write_file=file )
|
38
|
-
self.write(write_file, (yield( self.read( file ))))
|
39
|
-
end
|
40
|
-
end
|
41
|
-
class String
|
42
|
-
def split_join( splitter=$/ )
|
43
|
-
yield( split( splitter ) ).join( splitter )
|
44
|
-
end
|
45
|
-
end
|
46
|
-
|
47
36
|
def decode_readme &block
|
48
37
|
fail unless block_given?
|
49
38
|
begin
|
@@ -82,55 +71,25 @@ namespace :readme do
|
|
82
71
|
fail unless system 'rdoc --force-update --quiet README'
|
83
72
|
end
|
84
73
|
require 'hpricot'
|
74
|
+
require 'htmlentities'
|
85
75
|
doc = open( 'doc/files/README.html' ) { |f| Hpricot(f) }
|
86
76
|
# find example code
|
87
77
|
doc.at('#description').search('pre').
|
88
78
|
select {|elem| elem.inner_html =~ /class |module /}.each do |ex|
|
89
79
|
# add coderay and undo what rdoc has done in the example code
|
90
|
-
ex.swap("<coderay lang='ruby'>#{
|
80
|
+
ex.swap("<coderay lang='ruby'>#{HTMLEntities.new.decode ex.inner_html}</coderay>")
|
91
81
|
end
|
92
82
|
puts doc.at('#description').to_html
|
93
83
|
end
|
94
84
|
end
|
95
85
|
|
96
|
-
desc "release a new gem to rubyforge"
|
97
|
-
task :release => [:test,:record,:rdoc,:website,:package] do
|
98
|
-
Dir.chdir('pkg') do
|
99
|
-
release = Dir['*.gem'].sort_by {|file| File.mtime(file)}.last
|
100
|
-
release =~ /^[^-]+-([.0-9]+).gem$/
|
101
|
-
(puts (run "rubyforge login && rubyforge add_release #{project} #{project} #$1 #{release}"))
|
102
|
-
end
|
103
|
-
Dir.chdir('doc') do
|
104
|
-
run "scp -r ./ gregwebs@rubyforge.org:/var/www/gforge-projects/#{project}"
|
105
|
-
end
|
106
|
-
end
|
107
|
-
|
108
|
-
desc "update website"
|
109
|
-
file :website => ['README','rakefile'] do
|
110
|
-
Dir.chdir '/home/greg/sites/projects/' do
|
111
|
-
(puts (run 'rake projects:update'))
|
112
|
-
(puts (run 'rake deploy:rsync'))
|
113
|
-
end
|
114
|
-
end
|
115
|
-
|
116
|
-
desc 'git add and push'
|
117
|
-
task :record do
|
118
|
-
unless `git diff`.chomp.empty?
|
119
|
-
ARGV.clear
|
120
|
-
puts "enter commit message"
|
121
|
-
(puts (run "git commit -a -m #{Kernel.gets}"))
|
122
|
-
puts "committed! now pushing.. "
|
123
|
-
(puts (run 'git push origin master'))
|
124
|
-
end
|
125
|
-
end
|
126
|
-
|
127
86
|
require 'rubygems'
|
128
87
|
require 'rake/gempackagetask'
|
129
88
|
|
130
89
|
spec = Gem::Specification.new do |s|
|
131
|
-
s.name = project
|
132
|
-
s.rubyforge_project = project
|
133
|
-
s.version = "0.5.
|
90
|
+
s.name = $project
|
91
|
+
s.rubyforge_project = $project
|
92
|
+
s.version = "0.5.7"
|
134
93
|
s.author = "Greg Weber"
|
135
94
|
s.email = "greg@gregweber.info"
|
136
95
|
s.homepage = "http://quicktest.rubyfore.org/"
|
data/bin/quickspec
CHANGED
File without changes
|
data/doc/created.rid
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
Mon, 28 Apr 2008 00:16:33 -0500
|
data/lib/quicktest.rb
CHANGED
@@ -8,6 +8,9 @@ module QuickTest
|
|
8
8
|
|
9
9
|
# create module variables
|
10
10
|
class << self
|
11
|
+
# then name of the testing method, default is :quicktest
|
12
|
+
attr_accessor :test_method
|
13
|
+
|
11
14
|
# don't record the fact that we add Module.method_added
|
12
15
|
attr_accessor :ignore_first_method_added
|
13
16
|
|
@@ -45,17 +48,17 @@ module QuickTest
|
|
45
48
|
|
46
49
|
# keep a list of all traced methods
|
47
50
|
self.methods = []
|
48
|
-
def self.add_method
|
51
|
+
def self.add_method meth
|
49
52
|
self.methods.push meth
|
50
53
|
end
|
51
|
-
def self.add_singleton_method
|
54
|
+
def self.add_singleton_method meth
|
52
55
|
self.methods.push meth
|
53
56
|
end
|
54
57
|
|
55
58
|
def initialize tested
|
56
59
|
self.class.tested_self = tested
|
57
60
|
|
58
|
-
q = tested.method(
|
61
|
+
q = tested.method(QuickTest.test_method)
|
59
62
|
tested.extend(QuickTest.runner_module)
|
60
63
|
QuickTest.runner_module::QuickTestIncludeModules.each do |mod|
|
61
64
|
tested.extend mod
|
@@ -64,10 +67,16 @@ module QuickTest
|
|
64
67
|
case q.arity
|
65
68
|
when 0 then q.call
|
66
69
|
when 1 then q.call tested.method(self.class.methods[-1])
|
67
|
-
else raise ArgumentError, "to many arguments for
|
70
|
+
else raise ArgumentError, "to many arguments for #{QuickTest.test_method} method"
|
68
71
|
end
|
69
72
|
|
70
73
|
tested.send :__quicktest_run_tests__
|
74
|
+
|
75
|
+
# removing the quicktest method will prevent Ruby from warning about the method being redefined
|
76
|
+
# I don't know how to remove a class method
|
77
|
+
unless tested.kind_of?(Class) or tested.kind_of?(Module)
|
78
|
+
tested.class.class_eval { remove_method QuickTest.test_method }
|
79
|
+
end
|
71
80
|
end
|
72
81
|
end
|
73
82
|
|
@@ -79,21 +88,22 @@ module QuickTest
|
|
79
88
|
@@after_block = nil
|
80
89
|
@@before_block = nil
|
81
90
|
|
82
|
-
def before( &block )
|
83
|
-
def after( &block )
|
84
|
-
def it
|
91
|
+
def before( *args, &block ) @@before_block = [args, block] end
|
92
|
+
def after( *args, &block ) @@after_block = [args, block] end
|
93
|
+
def it specification, &block
|
85
94
|
@@quicktests[(TestRunner.methods.pop.to_s << ' ' << specification)] = block
|
86
95
|
TestRunner.methods.clear
|
87
96
|
end
|
88
97
|
|
89
98
|
private
|
90
99
|
def __quicktest_run_tests__ # :nodoc:
|
91
|
-
|
100
|
+
before_args, before_block = @@before_block
|
101
|
+
after_args, after_block = @@after_block
|
92
102
|
tests = @@quicktests
|
93
103
|
|
94
104
|
describe( TestRunner.tested_self.to_s ) do
|
95
|
-
before { before_block.call } if before_block
|
96
|
-
after
|
105
|
+
before(*before_args) { before_block.call } if before_block
|
106
|
+
after(*after_args) { after_block.call } if after_block
|
97
107
|
|
98
108
|
tests.each_pair do |spec, test_block|
|
99
109
|
it( spec ) { test_block.call }
|
@@ -110,9 +120,9 @@ module QuickTest
|
|
110
120
|
module Tracer
|
111
121
|
def self.included(into)
|
112
122
|
if into == Class or into == Module # default include in in Module
|
113
|
-
self.tracer_include
|
123
|
+
self.tracer_include into
|
114
124
|
else
|
115
|
-
self.tracer_include(
|
125
|
+
self.tracer_include(class<<into;self;end)
|
116
126
|
end
|
117
127
|
end
|
118
128
|
|
@@ -125,7 +135,7 @@ module QuickTest
|
|
125
135
|
alias_method :__quicktest_method_added__, :method_added
|
126
136
|
|
127
137
|
# ruby tracing hook
|
128
|
-
def singleton_method_added
|
138
|
+
def singleton_method_added traced
|
129
139
|
# avoid infinite recursion if module is included into a class by a user
|
130
140
|
return if traced == QuickTest.runner.methods.last
|
131
141
|
|
@@ -134,7 +144,7 @@ module QuickTest
|
|
134
144
|
QuickTest.include_module_into = nil
|
135
145
|
end
|
136
146
|
|
137
|
-
if traced ==
|
147
|
+
if traced == QuickTest.test_method
|
138
148
|
QuickTest.runner.new self
|
139
149
|
|
140
150
|
elsif traced == :quicktest_include_into
|
@@ -149,20 +159,17 @@ module QuickTest
|
|
149
159
|
QuickTest.ignore_first_method_added = true
|
150
160
|
|
151
161
|
# ruby tracing hook
|
152
|
-
def method_added
|
162
|
+
def method_added traced
|
153
163
|
qt = QuickTest
|
154
164
|
# avoid infinite recursion if module is included into a class by a user
|
155
165
|
return if traced == qt.runner.methods.last
|
156
166
|
|
157
|
-
if traced ==
|
167
|
+
if traced == QuickTest.test_method
|
158
168
|
qt.runner.new(
|
159
169
|
if self.class != Module
|
160
170
|
self.new
|
161
171
|
else
|
162
|
-
|
163
|
-
o = (imi ? Class.new(imi) : Class.new).new
|
164
|
-
o.extend(self)
|
165
|
-
o
|
172
|
+
Class.new(QuickTest.include_module_into || Object).extend(self)
|
166
173
|
end
|
167
174
|
)
|
168
175
|
|
@@ -182,16 +189,31 @@ module QuickTest
|
|
182
189
|
end
|
183
190
|
|
184
191
|
|
185
|
-
#
|
192
|
+
# configurable
|
193
|
+
QuickTest.test_method = :quicktest
|
186
194
|
QuickTest.runner = QuickTest::TestRunner
|
187
|
-
QuickTest.runner_module =
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
195
|
+
QuickTest.runner_module = QuickTest::RSpecTestRunner
|
196
|
+
|
197
|
+
files = []
|
198
|
+
while(arg = ARGV.shift)
|
199
|
+
case arg
|
200
|
+
when '--rspec'
|
201
|
+
QuickTest.runner_module = ARGV.shift ||
|
202
|
+
(puts "--rspec requires an argument";exit(1))
|
203
|
+
when '--quicktest'
|
204
|
+
QuickTest.test_method = ARGV.shift.to_sym ||
|
205
|
+
(puts "--quicktest requires an argument";exit(1))
|
206
|
+
else
|
207
|
+
(puts "unknown argument: #{arg}";exit(1)) unless File.exist? arg
|
208
|
+
files.push(arg)
|
209
|
+
end
|
192
210
|
end
|
211
|
+
ARGV.concat files
|
193
212
|
|
213
|
+
# trace all methods
|
194
214
|
class Module # :nodoc:
|
195
215
|
include QuickTest::Tracer
|
196
216
|
end
|
197
|
-
|
217
|
+
|
218
|
+
# TODO: run pending tests at exit
|
219
|
+
#at_exit do end
|
data/spec/__test.rb
ADDED
data/spec/test.rb
CHANGED
@@ -90,6 +90,15 @@ module TestModule
|
|
90
90
|
7.times {$r.shift}
|
91
91
|
end
|
92
92
|
end
|
93
|
+
|
94
|
+
define_method(:the_method) {}
|
95
|
+
def quicktest
|
96
|
+
msg = "should include the module into class Object"
|
97
|
+
it msg do
|
98
|
+
$r.shift.should =~ /^'#<Class:0x[^>]+> the_method #{msg}' FAILED$/
|
99
|
+
7.times {$r.shift}
|
100
|
+
end
|
101
|
+
end
|
93
102
|
end
|
94
103
|
|
95
104
|
class TestClass
|
data/spec/test_result.txt
CHANGED
@@ -1,69 +1,77 @@
|
|
1
|
-
.....
|
1
|
+
.....FFFFFFFFF
|
2
2
|
|
3
3
|
1)
|
4
|
-
'#<Object:
|
4
|
+
'#<Object:0xb7b72b9c> should show class name in output' FAILED
|
5
5
|
expected: /^'#<Object:0x[^>]+> should show class name in output' FAILED$/,
|
6
6
|
got: nil (using =~)
|
7
7
|
./test.rb:58:in `quicktest'
|
8
|
-
../lib/quicktest.rb:
|
9
|
-
../lib/quicktest.rb:
|
8
|
+
../lib/quicktest.rb:109:in `call'
|
9
|
+
../lib/quicktest.rb:109:in `__quicktest_run_tests__'
|
10
10
|
|
11
11
|
2)
|
12
|
-
'#<Object:
|
12
|
+
'#<Object:0xb7b72098> new_method_added should show name of added method' FAILED
|
13
13
|
expected: /^'#<Object:0x[^>]+> new_method_added should show name of added method' FAILED$/,
|
14
14
|
got: nil (using =~)
|
15
15
|
./test.rb:68:in `quicktest'
|
16
|
-
../lib/quicktest.rb:
|
17
|
-
../lib/quicktest.rb:
|
16
|
+
../lib/quicktest.rb:109:in `call'
|
17
|
+
../lib/quicktest.rb:109:in `__quicktest_run_tests__'
|
18
18
|
|
19
19
|
3)
|
20
20
|
'TestModule should show class name in output' FAILED
|
21
21
|
expected: /^'TestModule should show class name in output' FAILED$/,
|
22
22
|
got: nil (using =~)
|
23
23
|
./test.rb:78:in `quicktest'
|
24
|
-
../lib/quicktest.rb:
|
25
|
-
../lib/quicktest.rb:
|
24
|
+
../lib/quicktest.rb:109:in `call'
|
25
|
+
../lib/quicktest.rb:109:in `__quicktest_run_tests__'
|
26
26
|
|
27
27
|
4)
|
28
28
|
'TestModule new_singleton_method_added should show class name in output' FAILED
|
29
29
|
expected: /^'TestModule new_singleton_method_added should show class name in output' FAILED$/,
|
30
30
|
got: nil (using =~)
|
31
31
|
./test.rb:89:in `quicktest'
|
32
|
-
../lib/quicktest.rb:
|
33
|
-
../lib/quicktest.rb:
|
32
|
+
../lib/quicktest.rb:109:in `call'
|
33
|
+
../lib/quicktest.rb:109:in `__quicktest_run_tests__'
|
34
34
|
|
35
35
|
5)
|
36
|
+
'#<Class:0xb7b6fa8c> the_method should include the module into class Object' FAILED
|
37
|
+
expected: /^'#<Class:0x[^>]+> the_method should include the module into class Object' FAILED$/,
|
38
|
+
got: nil (using =~)
|
39
|
+
./test.rb:98:in `quicktest'
|
40
|
+
../lib/quicktest.rb:109:in `call'
|
41
|
+
../lib/quicktest.rb:109:in `__quicktest_run_tests__'
|
42
|
+
|
43
|
+
6)
|
36
44
|
'TestClass should show class name in output' FAILED
|
37
45
|
expected: /^'TestClass should show class name in output' FAILED$/,
|
38
46
|
got: nil (using =~)
|
39
|
-
./test.rb:
|
40
|
-
../lib/quicktest.rb:
|
41
|
-
../lib/quicktest.rb:
|
47
|
+
./test.rb:109:in `quicktest'
|
48
|
+
../lib/quicktest.rb:109:in `call'
|
49
|
+
../lib/quicktest.rb:109:in `__quicktest_run_tests__'
|
42
50
|
|
43
|
-
|
44
|
-
'#<TestClass:
|
51
|
+
7)
|
52
|
+
'#<TestClass:0xb7b6e8bc> should show class name in output' FAILED
|
45
53
|
expected: /^'#<TestClass:0x[^>]+> should show class name in output' FAILED$/,
|
46
54
|
got: nil (using =~)
|
47
|
-
./test.rb:
|
48
|
-
../lib/quicktest.rb:
|
49
|
-
../lib/quicktest.rb:
|
55
|
+
./test.rb:116:in `quicktest'
|
56
|
+
../lib/quicktest.rb:109:in `call'
|
57
|
+
../lib/quicktest.rb:109:in `__quicktest_run_tests__'
|
50
58
|
|
51
|
-
|
52
|
-
'#<TestClass:
|
59
|
+
8)
|
60
|
+
'#<TestClass:0xb7b6de58> new_method_added should show name of added method' FAILED
|
53
61
|
expected: /^'#<TestClass:0x[^>]+> new_method_added should show name of added method' FAILED$/,
|
54
62
|
got: nil (using =~)
|
55
|
-
./test.rb:
|
56
|
-
../lib/quicktest.rb:
|
57
|
-
../lib/quicktest.rb:
|
63
|
+
./test.rb:126:in `quicktest'
|
64
|
+
../lib/quicktest.rb:109:in `call'
|
65
|
+
../lib/quicktest.rb:109:in `__quicktest_run_tests__'
|
58
66
|
|
59
|
-
|
67
|
+
9)
|
60
68
|
'TestClass new_singleton_method_added should show class name in output' FAILED
|
61
69
|
expected: /^'TestClass new_singleton_method_added should show class name in output' FAILED$/,
|
62
70
|
got: nil (using =~)
|
63
|
-
./test.rb:
|
64
|
-
../lib/quicktest.rb:
|
65
|
-
../lib/quicktest.rb:
|
71
|
+
./test.rb:137:in `quicktest'
|
72
|
+
../lib/quicktest.rb:109:in `call'
|
73
|
+
../lib/quicktest.rb:109:in `__quicktest_run_tests__'
|
66
74
|
|
67
|
-
Finished in 0.
|
75
|
+
Finished in 0.051081 seconds
|
68
76
|
|
69
|
-
|
77
|
+
14 examples, 9 failures
|
@@ -0,0 +1,65 @@
|
|
1
|
+
desc "run specs"
|
2
|
+
task :spec do
|
3
|
+
Dir[ 'spec/*' ].each do |file|
|
4
|
+
out "spec #{file}"
|
5
|
+
end
|
6
|
+
end
|
7
|
+
|
8
|
+
require 'rubygems'
|
9
|
+
require 'spec/rake/spectask'
|
10
|
+
desc "verify test coverage with RCov"
|
11
|
+
task :rcov => 'rcov:verify'
|
12
|
+
namespace :rcov do
|
13
|
+
Spec::Rake::SpecTask.new('rcov') do |t|
|
14
|
+
t.spec_files = ['spec/*.rb']
|
15
|
+
t.rcov = true
|
16
|
+
t.rcov_opts = ['--exclude', 'spec']
|
17
|
+
end
|
18
|
+
|
19
|
+
require 'spec/rake/verify_rcov'
|
20
|
+
# rcov is wrong- I am actually at 100%
|
21
|
+
RCov::VerifyTask.new(:verify => :rcov) do |t|
|
22
|
+
t.threshold = 100 # Make sure you have rcov 0.7 or higher!
|
23
|
+
t.index_html = $rcov_index_html
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
desc "create a new gem release"
|
28
|
+
task :release => [:test,:record,:rdoc,:website,:package] do
|
29
|
+
Dir.chdir('pkg') do
|
30
|
+
release = Dir['*.gem'].sort_by {|file| File.mtime(file)}.last
|
31
|
+
release =~ /^[^-]+-([.0-9]+).gem$/
|
32
|
+
out "rubyforge login && rubyforge add_release #{$project} #{$project} #$1 #{release}"
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
desc "update website"
|
37
|
+
file :website => ['README','Rakefile'] do
|
38
|
+
Dir.chdir '/home/greg/sites/projects/' do
|
39
|
+
out 'rake --silent projects:update'
|
40
|
+
out 'rake --silent deploy:rsync'
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
require 'rake/rdoctask'
|
45
|
+
|
46
|
+
Rake::RDocTask.new do |rd|
|
47
|
+
rd.main = "README"
|
48
|
+
rd.rdoc_dir = "doc"
|
49
|
+
rd.rdoc_files.include("README", "lib/**/*.rb")
|
50
|
+
rd.title = "#$project rdoc"
|
51
|
+
rd.options << '-S' # inline source
|
52
|
+
rd.template = `allison --path`.chomp + '.rb'
|
53
|
+
end
|
54
|
+
|
55
|
+
desc 'git add and push'
|
56
|
+
task :record do
|
57
|
+
unless `git status`.split($/).last =~ /nothing added/
|
58
|
+
puts `git diff`
|
59
|
+
ARGV.clear
|
60
|
+
puts "enter commit message"
|
61
|
+
out "git commit -a -m '#{Kernel.gets}'"
|
62
|
+
puts "committed! now pushing.. "
|
63
|
+
out 'git push origin master'
|
64
|
+
end
|
65
|
+
end
|
data/tasks/helpers.rb
ADDED
@@ -0,0 +1,36 @@
|
|
1
|
+
def exit_msg(msg, code=1)
|
2
|
+
puts msg
|
3
|
+
exit(code)
|
4
|
+
end
|
5
|
+
def run command
|
6
|
+
res = `#{command}`
|
7
|
+
if $?.exitstatus != 0
|
8
|
+
exit_msg(
|
9
|
+
"\nfailure on command:\n #{command.chomp}\nresult:\n #{res}\n",
|
10
|
+
$?.exitstatus
|
11
|
+
)
|
12
|
+
end
|
13
|
+
res
|
14
|
+
end
|
15
|
+
def out command
|
16
|
+
(puts (run command))
|
17
|
+
end
|
18
|
+
|
19
|
+
def cd_tmp
|
20
|
+
Dir.mkdir 'tmp' unless File.directory? 'tmp'
|
21
|
+
Dir.chdir('tmp') do |dir|
|
22
|
+
yield dir
|
23
|
+
end
|
24
|
+
rm_rf 'tmp'
|
25
|
+
end
|
26
|
+
|
27
|
+
class IO
|
28
|
+
def self.write( file, str )
|
29
|
+
self.open( file, 'w' ) { |fh| fh.print str }
|
30
|
+
end
|
31
|
+
def self.read_write( file, write_file=file )
|
32
|
+
self.write(write_file, (yield( self.read( file ))))
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
Dir.glob('tasks/*.rake').sort.each {|fn| import fn}
|
metadata
CHANGED
@@ -1,46 +1,43 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
|
-
rubygems_version: 0.9.4
|
3
|
-
specification_version: 1
|
4
2
|
name: quicktest
|
5
3
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 0.5.
|
7
|
-
date: 2008-03-11 00:00:00 -05:00
|
8
|
-
summary: utility for inlining tests with the code tested
|
9
|
-
require_paths:
|
10
|
-
- lib
|
11
|
-
email: greg@gregweber.info
|
12
|
-
homepage: http://quicktest.rubyfore.org/
|
13
|
-
rubyforge_project: quicktest
|
14
|
-
description:
|
15
|
-
autorequire:
|
16
|
-
default_executable:
|
17
|
-
bindir: bin
|
18
|
-
has_rdoc: true
|
19
|
-
required_ruby_version: !ruby/object:Gem::Version::Requirement
|
20
|
-
requirements:
|
21
|
-
- - ">"
|
22
|
-
- !ruby/object:Gem::Version
|
23
|
-
version: 0.0.0
|
24
|
-
version:
|
4
|
+
version: 0.5.7
|
25
5
|
platform: ruby
|
26
|
-
signing_key:
|
27
|
-
cert_chain:
|
28
|
-
post_install_message: |+
|
29
|
-
|
30
|
-
spec and quickspec are ruby executable scripts, whose directory location must be in your PATH environment variable (or you must invoke the with the full file path).
|
31
|
-
|
32
|
-
run tests with
|
33
|
-
quickspec [file1 file2 ...]
|
34
|
-
|
35
6
|
authors:
|
36
7
|
- Greg Weber
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
|
12
|
+
date: 2008-04-28 00:00:00 -05:00
|
13
|
+
default_executable:
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: rspec
|
17
|
+
version_requirement:
|
18
|
+
version_requirements: !ruby/object:Gem::Requirement
|
19
|
+
requirements:
|
20
|
+
- - ">="
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: 1.0.0
|
23
|
+
version:
|
24
|
+
description:
|
25
|
+
email: greg@gregweber.info
|
26
|
+
executables:
|
27
|
+
- quickspec
|
28
|
+
extensions: []
|
29
|
+
|
30
|
+
extra_rdoc_files:
|
31
|
+
- README
|
37
32
|
files:
|
38
33
|
- ./bin
|
39
34
|
- ./doc
|
40
35
|
- ./lib
|
36
|
+
- ./TODO
|
41
37
|
- ./spec
|
38
|
+
- ./Rakefile
|
39
|
+
- ./tasks
|
42
40
|
- ./README
|
43
|
-
- ./rakefile
|
44
41
|
- bin/quickspec
|
45
42
|
- doc/files
|
46
43
|
- doc/index.html
|
@@ -51,28 +48,43 @@ files:
|
|
51
48
|
- doc/created.rid
|
52
49
|
- doc/classes
|
53
50
|
- lib/quicktest.rb
|
51
|
+
- spec/__test.rb
|
54
52
|
- spec/test.rb
|
55
53
|
- spec/test_result.txt
|
54
|
+
- tasks/helpers.rb
|
55
|
+
- tasks/gregproject.rake
|
56
56
|
- README
|
57
|
-
|
58
|
-
|
57
|
+
has_rdoc: true
|
58
|
+
homepage: http://quicktest.rubyfore.org/
|
59
|
+
post_install_message: |+
|
60
|
+
|
61
|
+
spec and quickspec are ruby executable scripts, whose directory location must be in your PATH environment variable (or you must invoke the with the full file path).
|
62
|
+
|
63
|
+
run tests with
|
64
|
+
quickspec [file1 file2 ...]
|
65
|
+
|
59
66
|
rdoc_options: []
|
60
67
|
|
61
|
-
|
62
|
-
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
68
|
+
require_paths:
|
69
|
+
- lib
|
70
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
71
|
+
requirements:
|
72
|
+
- - ">="
|
73
|
+
- !ruby/object:Gem::Version
|
74
|
+
version: "0"
|
75
|
+
version:
|
76
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
77
|
+
requirements:
|
78
|
+
- - ">="
|
79
|
+
- !ruby/object:Gem::Version
|
80
|
+
version: "0"
|
81
|
+
version:
|
67
82
|
requirements: []
|
68
83
|
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
- !ruby/object:Gem::Version
|
77
|
-
version: 1.0.0
|
78
|
-
version:
|
84
|
+
rubyforge_project: quicktest
|
85
|
+
rubygems_version: 1.1.0
|
86
|
+
signing_key:
|
87
|
+
specification_version: 2
|
88
|
+
summary: utility for inlining tests with the code tested
|
89
|
+
test_files: []
|
90
|
+
|