minitest 1.3.1 → 1.4.0
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.
- data.tar.gz.sig +0 -0
- data/History.txt +16 -0
- data/Manifest.txt +1 -0
- data/README.txt +4 -0
- data/Rakefile +4 -37
- data/design_rationale.rb +52 -0
- data/lib/minitest/autorun.rb +2 -0
- data/lib/minitest/spec.rb +29 -4
- data/lib/minitest/unit.rb +7 -7
- data/test/test_mini_test.rb +2 -1
- metadata +41 -7
- metadata.gz.sig +0 -0
data.tar.gz.sig
ADDED
Binary file
|
data/History.txt
CHANGED
@@ -1,3 +1,19 @@
|
|
1
|
+
=== 1.4.0 / 2009-06-18
|
2
|
+
|
3
|
+
* 5 minor enhancement:
|
4
|
+
|
5
|
+
* Added clarification doco.
|
6
|
+
* Added specs and mocks to autorun.
|
7
|
+
* Changed spec test class creation to be non-destructive.
|
8
|
+
* Updated rakefile for new hoe capabilities.
|
9
|
+
* describes are nestable (via subclass). before/after/def inherits, specs don't.
|
10
|
+
|
11
|
+
* 3 bug fixes:
|
12
|
+
|
13
|
+
* Fixed location on must/wont.
|
14
|
+
* Switched to __name__ to avoid common ivar name.
|
15
|
+
* Fixed indentation in test file (1.9).
|
16
|
+
|
1
17
|
=== 1.3.1 / 2009-01-20
|
2
18
|
|
3
19
|
* 1 minor enhancement:
|
data/Manifest.txt
CHANGED
data/README.txt
CHANGED
@@ -22,6 +22,10 @@ mini/mock, by Steven Baker, is a beautifully tiny mock object framework.
|
|
22
22
|
* Contains minitest/mock - a simple and clean mock system (35 lines!).
|
23
23
|
* Incredibly small and fast runner, but no bells and whistles.
|
24
24
|
|
25
|
+
== RATIONALE:
|
26
|
+
|
27
|
+
See design_rationale.rb to see how specs and tests work in minitest.
|
28
|
+
|
25
29
|
== REQUIREMENTS:
|
26
30
|
|
27
31
|
+ Ruby 1.8, maybe even 1.6 or lower. No magic is involved.
|
data/Rakefile
CHANGED
@@ -4,46 +4,13 @@ $TESTING_MINIUNIT = true
|
|
4
4
|
|
5
5
|
require 'rubygems'
|
6
6
|
require 'hoe'
|
7
|
-
require './lib/minitest/unit.rb'
|
8
7
|
|
9
|
-
Hoe.
|
10
|
-
miniunit.rubyforge_name = "bfts"
|
8
|
+
Hoe.plugin :seattlerb
|
11
9
|
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
class Hoe # TODO: fix - I shouldn't need this
|
16
|
-
def run_tests(multi=false) # :nodoc:
|
17
|
-
tests = test_globs.map { |g| Dir.glob(g) }.flatten
|
18
|
-
tests.map! {|f| %Q(require "#{f}")}
|
19
|
-
cmd = "#{RUBY_FLAGS} -e '#{tests.join("; ")}' #{FILTER}"
|
20
|
-
|
21
|
-
send :ruby, cmd
|
22
|
-
end
|
23
|
-
end
|
10
|
+
Hoe.spec 'minitest' do
|
11
|
+
developer 'Ryan Davis', 'ryand-ruby@zenspider.com'
|
24
12
|
|
25
|
-
|
26
|
-
require 'rcov/rcovtask'
|
27
|
-
Rcov::RcovTask.new do |t|
|
28
|
-
t.verbose = true
|
29
|
-
t.rcov_opts << "--include-file lib/test"
|
30
|
-
t.rcov_opts << "--no-color"
|
31
|
-
end
|
32
|
-
|
33
|
-
task :rcov_info do
|
34
|
-
pattern = ENV['PATTERN'] || "test/test_*.rb"
|
35
|
-
ruby "-Ilib -S rcov --text-report --include-file lib/test --save coverage.info #{pattern}"
|
36
|
-
end
|
37
|
-
|
38
|
-
task :rcov_overlay do
|
39
|
-
rcov, eol = Marshal.load(File.read("coverage.info")).last[ENV["FILE"]], 1
|
40
|
-
puts rcov[:lines].zip(rcov[:coverage]).map { |line, coverage|
|
41
|
-
bol, eol = eol, eol + line.length
|
42
|
-
[bol, eol, "#ffcccc"] unless coverage
|
43
|
-
}.compact.inspect
|
44
|
-
end
|
45
|
-
rescue LoadError
|
46
|
-
# skip
|
13
|
+
self.rubyforge_name = "bfts"
|
47
14
|
end
|
48
15
|
|
49
16
|
def loc dir
|
data/design_rationale.rb
ADDED
@@ -0,0 +1,52 @@
|
|
1
|
+
# Specs: # Equivalent Unit Tests:
|
2
|
+
###############################################################################
|
3
|
+
describe Thingy do # class TestThingy < MiniTest::Unit::TestCase
|
4
|
+
before do # def setup
|
5
|
+
do_some_setup # super
|
6
|
+
end # do_some_setup
|
7
|
+
# end
|
8
|
+
it "should do the first thing" do #
|
9
|
+
1.must_equal 1 # def test_first_thing
|
10
|
+
end # assert_equal 1, 1
|
11
|
+
# end
|
12
|
+
describe SubThingy do # end
|
13
|
+
before do #
|
14
|
+
do_more_setup # class TestSubThingy < TestThingy
|
15
|
+
end # def setup
|
16
|
+
# super
|
17
|
+
it "should do the second thing" do # do_more_setup
|
18
|
+
2.must_equal 2 # end
|
19
|
+
end #
|
20
|
+
end # def test_second_thing
|
21
|
+
end # assert_equal 2, 2
|
22
|
+
# end
|
23
|
+
# end
|
24
|
+
###############################################################################
|
25
|
+
# runs 2 specs # runs 3 tests
|
26
|
+
###############################################################################
|
27
|
+
# The specs generate:
|
28
|
+
|
29
|
+
class ThingySpec < MiniTest::Spec
|
30
|
+
def setup
|
31
|
+
super
|
32
|
+
do_some_setup
|
33
|
+
end
|
34
|
+
|
35
|
+
def test_should_do_the_first_thing
|
36
|
+
assert_equal 1, 1
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
class SubThingySpec < ThingySpec
|
41
|
+
def setup
|
42
|
+
super
|
43
|
+
do_more_setup
|
44
|
+
end
|
45
|
+
|
46
|
+
# because only setup/teardown is inherited, not specs
|
47
|
+
remove_method :test_should_do_the_first_thing
|
48
|
+
|
49
|
+
def test_should_do_the_second_thing
|
50
|
+
assert_equal 2, 2
|
51
|
+
end
|
52
|
+
end
|
data/lib/minitest/autorun.rb
CHANGED
data/lib/minitest/spec.rb
CHANGED
@@ -49,15 +49,25 @@ end
|
|
49
49
|
|
50
50
|
module Kernel
|
51
51
|
def describe desc, &block
|
52
|
-
|
53
|
-
|
52
|
+
stack = MiniTest::Spec.describe_stack
|
53
|
+
name = desc.to_s.split(/\W+/).map { |s| s.capitalize }.join + "Spec"
|
54
|
+
cls = Object.class_eval "class #{name} < #{stack.last}; end; #{name}"
|
54
55
|
|
56
|
+
cls.nuke_test_methods!
|
57
|
+
|
58
|
+
stack.push cls
|
55
59
|
cls.class_eval(&block)
|
60
|
+
stack.pop
|
56
61
|
end
|
57
62
|
private :describe
|
58
63
|
end
|
59
64
|
|
60
65
|
class MiniTest::Spec < MiniTest::Unit::TestCase
|
66
|
+
@@describe_stack = [MiniTest::Spec]
|
67
|
+
def self.describe_stack
|
68
|
+
@@describe_stack
|
69
|
+
end
|
70
|
+
|
61
71
|
def self.current
|
62
72
|
@@current_spec
|
63
73
|
end
|
@@ -67,14 +77,29 @@ class MiniTest::Spec < MiniTest::Unit::TestCase
|
|
67
77
|
@@current_spec = self
|
68
78
|
end
|
69
79
|
|
80
|
+
def self.nuke_test_methods!
|
81
|
+
self.public_instance_methods.grep(/^test_/).each do |name|
|
82
|
+
send :remove_method, name rescue nil
|
83
|
+
end
|
84
|
+
end
|
85
|
+
|
86
|
+
def self.define_inheritable_method name, &block
|
87
|
+
super_method = self.superclass.instance_method name
|
88
|
+
|
89
|
+
define_method name do
|
90
|
+
super_method.bind(self).call if super_method # regular super() warns
|
91
|
+
instance_eval(&block)
|
92
|
+
end
|
93
|
+
end
|
94
|
+
|
70
95
|
def self.before(type = :each, &block)
|
71
96
|
raise "unsupported before type: #{type}" unless type == :each
|
72
|
-
|
97
|
+
define_inheritable_method :setup, &block
|
73
98
|
end
|
74
99
|
|
75
100
|
def self.after(type = :each, &block)
|
76
101
|
raise "unsupported after type: #{type}" unless type == :each
|
77
|
-
|
102
|
+
define_inheritable_method :teardown, &block
|
78
103
|
end
|
79
104
|
|
80
105
|
def self.it desc, &block
|
data/lib/minitest/unit.rb
CHANGED
@@ -313,7 +313,7 @@ module MiniTest
|
|
313
313
|
end
|
314
314
|
|
315
315
|
class Unit
|
316
|
-
VERSION = "1.
|
316
|
+
VERSION = "1.4.0"
|
317
317
|
|
318
318
|
attr_accessor :report, :failures, :errors, :skips
|
319
319
|
attr_accessor :test_count, :assertion_count
|
@@ -337,7 +337,7 @@ module MiniTest
|
|
337
337
|
def location e
|
338
338
|
last_before_assertion = ""
|
339
339
|
e.backtrace.reverse_each do |s|
|
340
|
-
break if s =~ /in .(assert|refute|flunk|pass|fail|raise)/
|
340
|
+
break if s =~ /in .(assert|refute|flunk|pass|fail|raise|must|wont)/
|
341
341
|
last_before_assertion = s
|
342
342
|
end
|
343
343
|
last_before_assertion.sub(/:in .*$/, '')
|
@@ -424,30 +424,30 @@ module MiniTest
|
|
424
424
|
end
|
425
425
|
|
426
426
|
class TestCase
|
427
|
-
attr_reader :
|
427
|
+
attr_reader :__name__
|
428
428
|
|
429
429
|
def run runner
|
430
430
|
result = '.'
|
431
431
|
begin
|
432
432
|
@passed = nil
|
433
433
|
self.setup
|
434
|
-
self.__send__ self.
|
434
|
+
self.__send__ self.__name__
|
435
435
|
@passed = true
|
436
436
|
rescue Exception => e
|
437
437
|
@passed = false
|
438
|
-
result = runner.puke(self.class, self.
|
438
|
+
result = runner.puke(self.class, self.__name__, e)
|
439
439
|
ensure
|
440
440
|
begin
|
441
441
|
self.teardown
|
442
442
|
rescue Exception => e
|
443
|
-
result = runner.puke(self.class, self.
|
443
|
+
result = runner.puke(self.class, self.__name__, e)
|
444
444
|
end
|
445
445
|
end
|
446
446
|
result
|
447
447
|
end
|
448
448
|
|
449
449
|
def initialize name
|
450
|
-
@
|
450
|
+
@__name__ = name
|
451
451
|
@passed = nil
|
452
452
|
end
|
453
453
|
|
data/test/test_mini_test.rb
CHANGED
@@ -319,7 +319,8 @@ Finished in 0.00
|
|
319
319
|
output.sub!(/^(\s+)(?:#{Regexp.union(__FILE__, File.expand_path(__FILE__))}):\d+:/o, '\1FILE:LINE:')
|
320
320
|
output.sub!(/\[(?:#{Regexp.union(__FILE__, File.expand_path(__FILE__))}):\d+\]/o, '[FILE:LINE]')
|
321
321
|
assert_equal(expected, output)
|
322
|
-
|
322
|
+
end
|
323
|
+
|
323
324
|
def test_run_failing_filtered
|
324
325
|
tc = Class.new(MiniTest::Unit::TestCase) do
|
325
326
|
def test_something
|
metadata
CHANGED
@@ -1,15 +1,36 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: minitest
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ryan Davis
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
|
-
cert_chain:
|
10
|
+
cert_chain:
|
11
|
+
- |
|
12
|
+
-----BEGIN CERTIFICATE-----
|
13
|
+
MIIDPjCCAiagAwIBAgIBADANBgkqhkiG9w0BAQUFADBFMRMwEQYDVQQDDApyeWFu
|
14
|
+
ZC1ydWJ5MRkwFwYKCZImiZPyLGQBGRYJemVuc3BpZGVyMRMwEQYKCZImiZPyLGQB
|
15
|
+
GRYDY29tMB4XDTA5MDMwNjE4NTMxNVoXDTEwMDMwNjE4NTMxNVowRTETMBEGA1UE
|
16
|
+
AwwKcnlhbmQtcnVieTEZMBcGCgmSJomT8ixkARkWCXplbnNwaWRlcjETMBEGCgmS
|
17
|
+
JomT8ixkARkWA2NvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALda
|
18
|
+
b9DCgK+627gPJkB6XfjZ1itoOQvpqH1EXScSaba9/S2VF22VYQbXU1xQXL/WzCkx
|
19
|
+
taCPaLmfYIaFcHHCSY4hYDJijRQkLxPeB3xbOfzfLoBDbjvx5JxgJxUjmGa7xhcT
|
20
|
+
oOvjtt5P8+GSK9zLzxQP0gVLS/D0FmoE44XuDr3iQkVS2ujU5zZL84mMNqNB1znh
|
21
|
+
GiadM9GHRaDiaxuX0cIUBj19T01mVE2iymf9I6bEsiayK/n6QujtyCbTWsAS9Rqt
|
22
|
+
qhtV7HJxNKuPj/JFH0D2cswvzznE/a5FOYO68g+YCuFi5L8wZuuM8zzdwjrWHqSV
|
23
|
+
gBEfoTEGr7Zii72cx+sCAwEAAaM5MDcwCQYDVR0TBAIwADALBgNVHQ8EBAMCBLAw
|
24
|
+
HQYDVR0OBBYEFEfFe9md/r/tj/Wmwpy+MI8d9k/hMA0GCSqGSIb3DQEBBQUAA4IB
|
25
|
+
AQAY59gYvDxqSqgC92nAP9P8dnGgfZgLxP237xS6XxFGJSghdz/nI6pusfCWKM8m
|
26
|
+
vzjjH2wUMSSf3tNudQ3rCGLf2epkcU13/rguI88wO6MrE0wi4ZqLQX+eZQFskJb/
|
27
|
+
w6x9W1ur8eR01s397LSMexySDBrJOh34cm2AlfKr/jokKCTwcM0OvVZnAutaovC0
|
28
|
+
l1SVZ0ecg88bsWHA0Yhh7NFxK1utWoIhtB6AFC/+trM0FQEB/jZkIS8SaNzn96Rl
|
29
|
+
n0sZEf77FLf5peR8TP/PtmIg7Cyqz23sLM4mCOoTGIy5OcZ8TdyiyINUHtb5ej/T
|
30
|
+
FBHgymkyj/AOSqKRIpXPhjC6
|
31
|
+
-----END CERTIFICATE-----
|
11
32
|
|
12
|
-
date: 2009-
|
33
|
+
date: 2009-06-18 00:00:00 -07:00
|
13
34
|
default_executable:
|
14
35
|
dependencies:
|
15
36
|
- !ruby/object:Gem::Dependency
|
@@ -20,9 +41,19 @@ dependencies:
|
|
20
41
|
requirements:
|
21
42
|
- - ">="
|
22
43
|
- !ruby/object:Gem::Version
|
23
|
-
version: 1.
|
44
|
+
version: 2.1.0
|
24
45
|
version:
|
25
|
-
description:
|
46
|
+
description: |-
|
47
|
+
minitest/unit is a small and fast replacement for ruby's huge and slow
|
48
|
+
test/unit. This is meant to be clean and easy to use both as a regular
|
49
|
+
test writer and for language implementors that need a minimal set of
|
50
|
+
methods to bootstrap a working unit test suite.
|
51
|
+
|
52
|
+
mini/spec is a functionally complete spec engine.
|
53
|
+
|
54
|
+
mini/mock, by Steven Baker, is a beautifully tiny mock object framework.
|
55
|
+
|
56
|
+
(This package was called miniunit once upon a time)
|
26
57
|
email:
|
27
58
|
- ryand-ruby@zenspider.com
|
28
59
|
executables: []
|
@@ -39,6 +70,7 @@ files:
|
|
39
70
|
- Manifest.txt
|
40
71
|
- README.txt
|
41
72
|
- Rakefile
|
73
|
+
- design_rationale.rb
|
42
74
|
- lib/minitest/autorun.rb
|
43
75
|
- lib/minitest/mock.rb
|
44
76
|
- lib/minitest/spec.rb
|
@@ -48,6 +80,8 @@ files:
|
|
48
80
|
- test/test_mini_test.rb
|
49
81
|
has_rdoc: true
|
50
82
|
homepage: http://rubyforge.org/projects/bfts
|
83
|
+
licenses: []
|
84
|
+
|
51
85
|
post_install_message:
|
52
86
|
rdoc_options:
|
53
87
|
- --main
|
@@ -69,9 +103,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
69
103
|
requirements: []
|
70
104
|
|
71
105
|
rubyforge_project: bfts
|
72
|
-
rubygems_version: 1.3.
|
106
|
+
rubygems_version: 1.3.4
|
73
107
|
signing_key:
|
74
|
-
specification_version:
|
108
|
+
specification_version: 3
|
75
109
|
summary: minitest/unit is a small and fast replacement for ruby's huge and slow test/unit
|
76
110
|
test_files:
|
77
111
|
- test/test_mini_mock.rb
|
metadata.gz.sig
ADDED
Binary file
|