baretest 0.2.3 → 0.2.4

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.
Files changed (45) hide show
  1. data/LICENSE.txt +4 -4
  2. data/MANIFEST.txt +4 -2
  3. data/README.rdoc +3 -2
  4. data/bin/baretest +7 -17
  5. data/doc/quickref.rdoc +1 -1
  6. data/doc/whats_going_on.rdoc +35 -0
  7. data/examples/test.rake +4 -4
  8. data/examples/tests/irb_mode/failures.rb +1 -1
  9. data/lib/baretest/assertion/context.rb +1 -1
  10. data/lib/baretest/assertion/failure.rb +1 -1
  11. data/lib/baretest/assertion/skip.rb +1 -1
  12. data/lib/baretest/assertion/support.rb +10 -10
  13. data/lib/baretest/assertion.rb +1 -1
  14. data/lib/baretest/irb_mode.rb +7 -7
  15. data/lib/baretest/layout.rb +1 -1
  16. data/lib/baretest/rr.rb +16 -0
  17. data/lib/baretest/run/cli.rb +1 -1
  18. data/lib/baretest/run/errors.rb +20 -18
  19. data/lib/baretest/run/minimal.rb +1 -1
  20. data/lib/baretest/run/profile.rb +1 -1
  21. data/lib/baretest/run/spec.rb +1 -1
  22. data/lib/baretest/run/tap.rb +1 -1
  23. data/lib/baretest/run/xml.rb +1 -1
  24. data/lib/baretest/run.rb +1 -1
  25. data/lib/baretest/setup.rb +1 -1
  26. data/lib/baretest/skipped/assertion.rb +1 -1
  27. data/lib/baretest/skipped/suite.rb +1 -1
  28. data/lib/baretest/skipped.rb +1 -1
  29. data/lib/baretest/suite.rb +4 -2
  30. data/lib/baretest/version.rb +2 -2
  31. data/lib/baretest.rb +13 -9
  32. data/lib/{baretest/utilities.rb → ruby/kernel.rb} +2 -2
  33. data/test/suite/lib/baretest/assertion/support.rb +2 -2
  34. data/test/suite/lib/baretest/assertion.rb +1 -1
  35. data/test/suite/lib/baretest/irb_mode.rb +1 -1
  36. data/test/suite/lib/baretest/run/cli.rb +1 -1
  37. data/test/suite/lib/baretest/run/errors.rb +1 -1
  38. data/test/suite/lib/baretest/run/interactive.rb +1 -1
  39. data/test/suite/lib/baretest/run/spec.rb +1 -1
  40. data/test/suite/lib/baretest/run/tap.rb +1 -1
  41. data/test/suite/lib/baretest/run/xml.rb +1 -1
  42. data/test/suite/lib/baretest/run.rb +1 -1
  43. data/test/suite/lib/baretest/suite.rb +1 -1
  44. data/test/suite/lib/baretest.rb +1 -1
  45. metadata +7 -5
data/LICENSE.txt CHANGED
@@ -1,5 +1,5 @@
1
1
  The BareTest library is copyrighted free software by Stefan Rusterholz.
2
- You can redistribute it and/or modify it under the terms o the conditions
2
+ You can redistribute it and/or modify it under the terms of the conditions
3
3
  below (also known as the 'Ruby License'):
4
4
 
5
5
  1. You may make and give away verbatim copies of the source form of the
@@ -38,11 +38,11 @@ below (also known as the 'Ruby License'):
38
38
  d) make other distribution arrangements with the author.
39
39
 
40
40
  4. You may modify and include the part of the software into any other
41
- software (possibly commercial).
41
+ software (possibly commercial).
42
42
 
43
- 5. The scripts and library files supplied as input to or produced as
43
+ 5. The scripts and library files supplied as input to or produced as
44
44
  output from the software do not automatically fall under the
45
- copyright of the software, but belong to whomever generated them,
45
+ copyright of the software, but belong to whomever generated them,
46
46
  and may be sold commercially, and may be aggregated with this
47
47
  software.
48
48
 
data/MANIFEST.txt CHANGED
@@ -5,7 +5,9 @@ bin/baretest
5
5
  doc/baretest.rdoc
6
6
  doc/mocking_stubbing_test_doubles.rdoc
7
7
  doc/quickref.rdoc
8
+ doc/whats_going_on.rdoc
8
9
  doc/writing_tests.rdoc
10
+ examples/test.rake
9
11
  examples/tests/irb_mode/failures.rb
10
12
  examples/tests/mock_developer/test/helper/mocks.rb
11
13
  examples/tests/mock_developer/test/setup.rb
@@ -14,7 +16,6 @@ examples/tests/overview/test.rb
14
16
  examples/tests/variations/variations_01.rb
15
17
  examples/tests/variations/variations_02.rb
16
18
  examples/tests/variations/variations_03.rb
17
- examples/test.rake
18
19
  lib/baretest.rb
19
20
  lib/baretest/assertion.rb
20
21
  lib/baretest/assertion/context.rb
@@ -24,6 +25,7 @@ lib/baretest/assertion/support.rb
24
25
  lib/baretest/irb_mode.rb
25
26
  lib/baretest/layout.rb
26
27
  lib/baretest/mocha.rb
28
+ lib/baretest/rr.rb
27
29
  lib/baretest/run.rb
28
30
  lib/baretest/run/cli.rb
29
31
  lib/baretest/run/errors.rb
@@ -37,8 +39,8 @@ lib/baretest/skipped.rb
37
39
  lib/baretest/skipped/assertion.rb
38
40
  lib/baretest/skipped/suite.rb
39
41
  lib/baretest/suite.rb
40
- lib/baretest/utilities.rb
41
42
  lib/baretest/version.rb
43
+ lib/ruby/kernel.rb
42
44
  test/external/bootstraptest.rb
43
45
  test/external/bootstrapwrap.rb
44
46
  test/helper/mocks.rb
data/README.rdoc CHANGED
@@ -246,8 +246,9 @@ From examples/test.rb:
246
246
  * showing me every dirty little bit I did wrong
247
247
  * fixes
248
248
  * added line number on failures
249
-
250
-
249
+ * Tass
250
+ * adding rr integration
251
+ * reporting bugs
251
252
 
252
253
  == Known bugs
253
254
 
data/bin/baretest CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
3
  #--
4
- # Copyright 2009 by Stefan Rusterholz.
4
+ # Copyright 2009-2010 by Stefan Rusterholz.
5
5
  # All rights reserved.
6
6
  # See LICENSE.txt for permissions.
7
7
  #++
@@ -132,22 +132,12 @@ end
132
132
 
133
133
 
134
134
  # Load the setup file, all helper files and all test files
135
- if ARGV.empty? then
136
- BareTest.load_standard_test_files(
137
- :verbose => $VERBOSE,
138
- :setup_path => setup_path,
139
- :chdir => '.'
140
- )
141
- else
142
- load(setup_path) if setup_path && File.exist?(setup_path)
143
- ARGV.each { |path|
144
- if File.directory?(path) then
145
- Dir.glob("#{path}/**/*.rb") { load(path) }
146
- else
147
- Dir.glob(path) { load(path) }
148
- end
149
- }
150
- end
135
+ BareTest.load_standard_test_files(
136
+ :verbose => $VERBOSE,
137
+ :setup_path => setup_path,
138
+ :files => (ARGV.empty? ? nil : ARGV),
139
+ :chdir => '.'
140
+ )
151
141
 
152
142
 
153
143
 
data/doc/quickref.rdoc CHANGED
@@ -161,7 +161,7 @@ can alternatively be used with named arguments:
161
161
  Failure: case_equal(String, 1)
162
162
 
163
163
  * equal_unordered(expected, actual, message=nil)
164
- Description: Compares unordered enumerables, on the enumerable it uses each,
164
+ Description: Compares unordered enumerables, on the enumerable it uses each,
165
165
  on the items it uses hash and eql?
166
166
  Success: equal_unordered([1,2], [2,1])
167
167
  Failure: equal_unordered([1,2], [2,1,2])
@@ -0,0 +1,35 @@
1
+ With the following test definition:
2
+ BareTest.suite "A"
3
+ setup do
4
+ @x = 1
5
+ end
6
+
7
+ suite "B" do
8
+ setup do
9
+ @y = 2
10
+ end
11
+
12
+ assert "Foo" do
13
+ @x == foo(@y)
14
+ end
15
+ end
16
+ end
17
+
18
+ Is this approximately as if you'd execute following code:
19
+ context = Assertion::Context.new
20
+ context.instance_eval do @x = 1 end # setup of suite A
21
+ context.instance_eval do @y = 1 end # setup of suite B
22
+ # execute assertion
23
+ success = false
24
+ begin
25
+ success = context.instance_eval do @x = foo(@y) end # assertion
26
+ status = success ? :success : :failure
27
+ rescue *PassthroughExceptions
28
+ Kernel.raise # let those exceptions pass unhandled
29
+ rescue Assertion::Failure
30
+ status = :failure
31
+ rescue Assertion::Skip
32
+ status = :skipped
33
+ rescue Exception # catch-all for the rest
34
+ status = :error
35
+ end
data/examples/test.rake CHANGED
@@ -1,5 +1,5 @@
1
1
  #--
2
- # Copyright 2009 by Stefan Rusterholz.
2
+ # Copyright 2009-2010 by Stefan Rusterholz.
3
3
  # All rights reserved.
4
4
  # See LICENSE.txt for permissions.
5
5
  #++
@@ -41,18 +41,18 @@ namespace :test do
41
41
  }.find { |path|
42
42
  File.directory?(path)
43
43
  }
44
-
44
+
45
45
  # Verify that the test directory exists
46
46
  raise "Could not determine test directory, please adapt this rake task to " \
47
47
  "your directory structure first (see rake test:structure)." unless test_dir
48
-
48
+
49
49
  # Load all test definitions
50
50
  BareTest.load_standard_test_files(
51
51
  :verbose => $VERBOSE,
52
52
  :setup_file => 'test/setup.rb',
53
53
  :chdir => File.dirname(test_dir) # must chdir to 1 above the 'test' dir
54
54
  )
55
-
55
+
56
56
  # Run all tests
57
57
  format = ENV["FORMAT"] || 'cli'
58
58
  interactive = ENV["INTERACTIVE"] == 'true'
@@ -1,5 +1,5 @@
1
1
  #--
2
- # Copyright 2009 by Stefan Rusterholz.
2
+ # Copyright 2009-2010 by Stefan Rusterholz.
3
3
  # All rights reserved.
4
4
  # See LICENSE.txt for permissions.
5
5
  #++
@@ -1,5 +1,5 @@
1
1
  #--
2
- # Copyright 2009 by Stefan Rusterholz.
2
+ # Copyright 2009-2010 by Stefan Rusterholz.
3
3
  # All rights reserved.
4
4
  # See LICENSE.txt for permissions.
5
5
  #++
@@ -1,5 +1,5 @@
1
1
  #--
2
- # Copyright 2009 by Stefan Rusterholz.
2
+ # Copyright 2009-2010 by Stefan Rusterholz.
3
3
  # All rights reserved.
4
4
  # See LICENSE.txt for permissions.
5
5
  #++
@@ -1,5 +1,5 @@
1
1
  #--
2
- # Copyright 2009 by Stefan Rusterholz.
2
+ # Copyright 2009-2010 by Stefan Rusterholz.
3
3
  # All rights reserved.
4
4
  # See LICENSE.txt for permissions.
5
5
  #++
@@ -1,5 +1,5 @@
1
1
  #--
2
- # Copyright 2009 by Stefan Rusterholz.
2
+ # Copyright 2009-2010 by Stefan Rusterholz.
3
3
  # All rights reserved.
4
4
  # See LICENSE.txt for permissions.
5
5
  #++
@@ -118,7 +118,7 @@ module BareTest
118
118
  else
119
119
  true
120
120
  end
121
- rescue *::BareTest::Assertion::PassthroughExceptions
121
+ rescue ::BareTest::Assertion::Failure, *::BareTest::Assertion::PassthroughExceptions
122
122
  ::Kernel.raise
123
123
  rescue => exception
124
124
  failure "Expected block to raise #{exception_class}, but it raised #{exception.class}."
@@ -129,7 +129,7 @@ module BareTest
129
129
  # Will raise a Failure if the given block raises.
130
130
  def raises_nothing
131
131
  yield
132
- rescue *::BareTest::Assertion::PassthroughExceptions
132
+ rescue ::BareTest::Assertion::Failure, *::BareTest::Assertion::PassthroughExceptions
133
133
  ::Kernel.raise
134
134
  rescue Exception => exception
135
135
  failure "Expected block to raise nothing, but it raised #{exception.class}."
@@ -142,7 +142,7 @@ module BareTest
142
142
  # of the possible rounding differences.
143
143
  def within_delta(a, b, delta)
144
144
  (a-b).abs < delta
145
- rescue *::BareTest::Assertion::PassthroughExceptions
145
+ rescue ::BareTest::Assertion::Failure, *::BareTest::Assertion::PassthroughExceptions
146
146
  ::Kernel.raise
147
147
  rescue Exception => e
148
148
  failure "Could not compare %p with %p due to %s", a, b, e
@@ -209,7 +209,7 @@ module BareTest
209
209
  end
210
210
  true
211
211
 
212
- rescue *::BareTest::Assertion::PassthroughExceptions
212
+ rescue ::BareTest::Assertion::Failure, *::BareTest::Assertion::PassthroughExceptions
213
213
  ::Kernel.raise
214
214
  rescue Exception => e
215
215
  failure "Could not compare %p with %p due to %s", expected, actual, e
@@ -232,7 +232,7 @@ module BareTest
232
232
  end
233
233
  true
234
234
 
235
- rescue *::BareTest::Assertion::PassthroughExceptions
235
+ rescue ::BareTest::Assertion::Failure, *::BareTest::Assertion::PassthroughExceptions
236
236
  ::Kernel.raise
237
237
  rescue Exception => e
238
238
  failure "Could not compare %p with %p due to %s", expected, actual, e
@@ -255,7 +255,7 @@ module BareTest
255
255
  end
256
256
  true
257
257
 
258
- rescue *::BareTest::Assertion::PassthroughExceptions
258
+ rescue ::BareTest::Assertion::Failure, *::BareTest::Assertion::PassthroughExceptions
259
259
  ::Kernel.raise
260
260
  rescue Exception => e
261
261
  failure "Could not compare %p with %p due to %s", expected, actual, e
@@ -278,7 +278,7 @@ module BareTest
278
278
  end
279
279
  true
280
280
 
281
- rescue *::BareTest::Assertion::PassthroughExceptions
281
+ rescue ::BareTest::Assertion::Failure, *::BareTest::Assertion::PassthroughExceptions
282
282
  ::Kernel.raise
283
283
  rescue Exception => e
284
284
  failure "Could not compare %p with %p due to %s", expected, actual, e
@@ -309,7 +309,7 @@ module BareTest
309
309
  end
310
310
  true
311
311
 
312
- rescue *::BareTest::Assertion::PassthroughExceptions
312
+ rescue ::BareTest::Assertion::Failure, *::BareTest::Assertion::PassthroughExceptions
313
313
  ::Kernel.raise
314
314
  rescue Exception => e
315
315
  failure "Could not compare %p with %p due to %s", expected, actual, e
@@ -327,7 +327,7 @@ module BareTest
327
327
  end
328
328
  true
329
329
 
330
- rescue *::BareTest::Assertion::PassthroughExceptions
330
+ rescue ::BareTest::Assertion::Failure, *::BareTest::Assertion::PassthroughExceptions
331
331
  ::Kernel.raise
332
332
  rescue Exception => e
333
333
  failure "Could not test whether %p is a child of %p due to %s", actual, expected, e
@@ -1,5 +1,5 @@
1
1
  #--
2
- # Copyright 2009 by Stefan Rusterholz.
2
+ # Copyright 2009-2010 by Stefan Rusterholz.
3
3
  # All rights reserved.
4
4
  # See LICENSE.txt for permissions.
5
5
  #++
@@ -1,5 +1,5 @@
1
1
  #--
2
- # Copyright 2009 by Stefan Rusterholz.
2
+ # Copyright 2009-2010 by Stefan Rusterholz.
3
3
  # All rights reserved.
4
4
  # See LICENSE.txt for permissions.
5
5
  #++
@@ -88,9 +88,9 @@ module BareTest
88
88
 
89
89
  # Prints the original assertion's backtrace
90
90
  def bt!(size=nil)
91
- if @__assertion__.exception then
91
+ if @__original__.exception then
92
92
  size ||= caller.size+3
93
- puts @__assertion__.exception.backtrace[0..-size]
93
+ puts @__original__.exception.backtrace[0..-size]
94
94
  else
95
95
  puts "No exception occurred, therefore no backtrace is available"
96
96
  end
@@ -113,19 +113,19 @@ module BareTest
113
113
 
114
114
  # Prints a string of the original assertion's nesting within suites
115
115
  def description
116
- puts @__assertion__.description
116
+ puts @__original__.description
117
117
  end
118
118
 
119
119
  # Prints a string of the original assertion's nesting within suites
120
120
  def nesting
121
- puts @__assertion__.suite.ancestors[0..-2].reverse.map { |s| s.description }.join(' > ')
121
+ puts @__original__.suite.ancestors[0..-2].reverse.map { |s| s.description }.join(' > ')
122
122
  end
123
123
 
124
124
  # Prints the code of the assertion
125
125
  # Be aware that this relies on your code being properly indented.
126
126
  def code!
127
- if code = @__assertion__.code then
128
- puts(insert_line_numbers(code, @__assertion__.line-1))
127
+ if code = @__original__.code then
128
+ puts(insert_line_numbers(code, @__original__.line-1))
129
129
  else
130
130
  puts "Code could not be extracted"
131
131
  end
@@ -1,5 +1,5 @@
1
1
  #--
2
- # Copyright 2009 by Stefan Rusterholz.
2
+ # Copyright 2009-2010 by Stefan Rusterholz.
3
3
  # All rights reserved.
4
4
  # See LICENSE.txt for permissions.
5
5
  #++
@@ -0,0 +1,16 @@
1
+ # Load this file and get integration with the "rr" mocking framework.
2
+
3
+ require 'rr'
4
+
5
+ class BareTest::Assertion::Context
6
+ include RR::Adapters::RRMethods
7
+ end
8
+
9
+ BareTest.toplevel_suite.teardown do
10
+ begin
11
+ RR.verify
12
+ rescue RR::Errors => e
13
+ @reason = e.message
14
+ @status = :failure
15
+ end
16
+ end
@@ -1,5 +1,5 @@
1
1
  #--
2
- # Copyright 2009 by Stefan Rusterholz.
2
+ # Copyright 2009-2010 by Stefan Rusterholz.
3
3
  # All rights reserved.
4
4
  # See LICENSE.txt for permissions.
5
5
  #++
@@ -1,5 +1,5 @@
1
1
  #--
2
- # Copyright 2009 by Stefan Rusterholz.
2
+ # Copyright 2009-2010 by Stefan Rusterholz.
3
3
  # All rights reserved.
4
4
  # See LICENSE.txt for permissions.
5
5
  #++
@@ -16,29 +16,31 @@ module BareTest
16
16
  module Errors # :nodoc:
17
17
  def run_all
18
18
  @depth = 0
19
- puts "Running all tests, reporting errors"
20
- super
19
+ puts "Running all tests, reporting only errors and failures"
21
20
  start = Time.now
22
- puts "\nDone, #{@count[:error]} errors encountered."
23
- end
24
-
25
- def run_suite(suite)
26
- return super unless suite.description
27
- puts "#{' '*@depth+suite.description} (#{suite.assertions.size} tests, #{suite.skipped.size} skipped)"
28
- @depth += 1
29
- super # run the suite
30
- @depth -= 1
21
+ super
22
+ stop = Time.now
23
+ printf "\Ran #{@count[:test]} tests (#{@count[:pending]} pending) in %.1fs\n" \
24
+ "#{@count[:failure]} failures and #{@count[:error]} errors encountered.\n",
25
+ (stop-start)
31
26
  end
32
27
 
33
28
  def run_test(assertion, setup)
34
29
  rv = super # run the assertion
35
- puts(' '*@depth+rv.description)
36
- if rv.exception then
37
- size = caller.size+5
38
- puts((['-'*80, rv.exception.message]+rv.exception.backtrace[0..-size]+['-'*80, '']).map { |l|
39
- (' '*(@depth+1))+l
40
- })
30
+ if rv.status == :failure then
31
+ head = "FAILURE in #{rv.description}"
32
+ message = rv.reason || "no failure reason given"
33
+ stack = "#{rv.file}:#{rv.line}"
34
+ elsif rv.exception then
35
+ size = caller.size+5
36
+ head = "ERROR in #{rv.description}"
37
+ message = rv.exception.message || "no exception message given"
38
+ stack = rv.exception.backtrace[0..-size].join("\n ")
39
+ else
40
+ return
41
41
  end
42
+
43
+ puts head, " "+message.gsub(/\n/, "\n "), " "+stack, ""
42
44
  end
43
45
  end
44
46
  end
@@ -1,5 +1,5 @@
1
1
  #--
2
- # Copyright 2009 by Stefan Rusterholz.
2
+ # Copyright 2009-2010 by Stefan Rusterholz.
3
3
  # All rights reserved.
4
4
  # See LICENSE.txt for permissions.
5
5
  #++
@@ -1,6 +1,6 @@
1
1
  # encoding: utf-8
2
2
  #--
3
- # Copyright 2009 by Stefan Rusterholz.
3
+ # Copyright 2009-2010 by Stefan Rusterholz.
4
4
  # All rights reserved.
5
5
  # See LICENSE.txt for permissions.
6
6
  #++
@@ -1,5 +1,5 @@
1
1
  #--
2
- # Copyright 2009 by Stefan Rusterholz.
2
+ # Copyright 2009-2010 by Stefan Rusterholz.
3
3
  # All rights reserved.
4
4
  # See LICENSE.txt for permissions.
5
5
  #++
@@ -1,5 +1,5 @@
1
1
  #--
2
- # Copyright 2009 by Stefan Rusterholz.
2
+ # Copyright 2009-2010 by Stefan Rusterholz.
3
3
  # All rights reserved.
4
4
  # See LICENSE.txt for permissions.
5
5
  #++
@@ -1,5 +1,5 @@
1
1
  #--
2
- # Copyright 2009 by Stefan Rusterholz.
2
+ # Copyright 2009-2010 by Stefan Rusterholz.
3
3
  # All rights reserved.
4
4
  # See LICENSE.txt for permissions.
5
5
  #++
data/lib/baretest/run.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  #--
2
- # Copyright 2009 by Stefan Rusterholz.
2
+ # Copyright 2009-2010 by Stefan Rusterholz.
3
3
  # All rights reserved.
4
4
  # See LICENSE.txt for permissions.
5
5
  #++
@@ -1,5 +1,5 @@
1
1
  #--
2
- # Copyright 2009 by Stefan Rusterholz.
2
+ # Copyright 2009-2010 by Stefan Rusterholz.
3
3
  # All rights reserved.
4
4
  # See LICENSE.txt for permissions.
5
5
  #++
@@ -1,5 +1,5 @@
1
1
  #--
2
- # Copyright 2009 by Stefan Rusterholz.
2
+ # Copyright 2009-2010 by Stefan Rusterholz.
3
3
  # All rights reserved.
4
4
  # See LICENSE.txt for permissions.
5
5
  #++
@@ -1,5 +1,5 @@
1
1
  #--
2
- # Copyright 2009 by Stefan Rusterholz.
2
+ # Copyright 2009-2010 by Stefan Rusterholz.
3
3
  # All rights reserved.
4
4
  # See LICENSE.txt for permissions.
5
5
  #++
@@ -1,5 +1,5 @@
1
1
  #--
2
- # Copyright 2009 by Stefan Rusterholz.
2
+ # Copyright 2009-2010 by Stefan Rusterholz.
3
3
  # All rights reserved.
4
4
  # See LICENSE.txt for permissions.
5
5
  #++
@@ -1,5 +1,5 @@
1
1
  #--
2
- # Copyright 2009 by Stefan Rusterholz.
2
+ # Copyright 2009-2010 by Stefan Rusterholz.
3
3
  # All rights reserved.
4
4
  # See LICENSE.txt for permissions.
5
5
  #++
@@ -147,7 +147,7 @@ module BareTest
147
147
  @setup[component] ||= []
148
148
 
149
149
  case multiplexed
150
- when String
150
+ when nil, String
151
151
  @setup[component] << ::BareTest::Setup.new(component, multiplexed, nil, block)
152
152
  when Array
153
153
  multiplexed.each do |substitute|
@@ -157,6 +157,8 @@ module BareTest
157
157
  multiplexed.each do |substitute, value|
158
158
  @setup[component] << BareTest::Setup.new(component, substitute, value, block)
159
159
  end
160
+ else
161
+ raise TypeError, "multiplexed must be an instance of NilClass, String, Array or Hash, but #{multiplexed.class} given."
160
162
  end
161
163
  elsif component || multiplexed
162
164
  raise ArgumentError, "With component or multiplexed given, a block must be provided too."
@@ -1,5 +1,5 @@
1
1
  #--
2
- # Copyright 2009 by Stefan Rusterholz.
2
+ # Copyright 2009-2010 by Stefan Rusterholz.
3
3
  # All rights reserved.
4
4
  # See LICENSE.txt for permissions.
5
5
  #++
@@ -18,7 +18,7 @@ module BareTest
18
18
  MINOR = 2
19
19
 
20
20
  # The tiny version number
21
- TINY = 3
21
+ TINY = 4
22
22
 
23
23
  # The version as a string
24
24
  def self.to_s
data/lib/baretest.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  #--
2
- # Copyright 2009 by Stefan Rusterholz.
2
+ # Copyright 2009-2010 by Stefan Rusterholz.
3
3
  # All rights reserved.
4
4
  # See LICENSE.txt for permissions.
5
5
  #++
@@ -10,8 +10,8 @@ require 'baretest/assertion'
10
10
  require 'baretest/irb_mode'
11
11
  require 'baretest/run'
12
12
  require 'baretest/suite'
13
- require 'baretest/utilities'
14
13
  require 'baretest/version'
14
+ require 'ruby/kernel'
15
15
  # See bottom for more requires
16
16
 
17
17
 
@@ -45,15 +45,19 @@ module BareTest
45
45
  verbose = opts.delete(:verbose)
46
46
  setup_path = opts.delete(:setup_path) || 'test/setup.rb'
47
47
  chdir = opts.delete(:chdir) || '.'
48
+ files = opts.delete(:files) || ['test/{suite,unit,integration,system}/**/*.rb']
48
49
  Dir.chdir(chdir) do
49
50
  load(setup_path) if File.exist?(setup_path)
50
- Dir.glob('test/{suite,unit,integration,system}/**/*.rb') { |path|
51
- helper_path = path.sub(%r{^test/(suite|unit|integration|system)/}, 'test/helper/\1/')
52
- puts(File.exist?(helper_path) ? "Loading helper file #{helper_path}" : "No helper file #{helper_path} to load") if verbose
53
- load(helper_path) if File.exist?(helper_path)
54
- puts "Loading test file #{path}" if verbose
55
- load(path)
56
- }
51
+ files.each do |glob|
52
+ glob = "#{glob}/**/*.rb" if File.directory?(glob)
53
+ Dir.glob(glob) { |path|
54
+ helper_path = path.sub(%r{^test/(suite|unit|integration|system)/}, 'test/helper/\1/')
55
+ puts(File.exist?(helper_path) ? "Loading helper file #{helper_path}" : "No helper file #{helper_path} to load") if verbose
56
+ load(helper_path) if File.exist?(helper_path)
57
+ puts "Loading test file #{path}" if verbose
58
+ load(path)
59
+ }
60
+ end
57
61
  end
58
62
  end
59
63
 
@@ -1,5 +1,5 @@
1
1
  #--
2
- # Copyright 2009 by Stefan Rusterholz.
2
+ # Copyright 2009-2010 by Stefan Rusterholz.
3
3
  # All rights reserved.
4
4
  # See LICENSE.txt for permissions.
5
5
  #++
@@ -40,4 +40,4 @@ module Kernel
40
40
  end
41
41
 
42
42
  module_function :require_path, :expanded_require_path, :load_into
43
- end
43
+ end
@@ -1,5 +1,5 @@
1
1
  #--
2
- # Copyright 2009 by Stefan Rusterholz.
2
+ # Copyright 2009-2010 by Stefan Rusterholz.
3
3
  # All rights reserved.
4
4
  # See LICENSE.txt for permissions.
5
5
  #++
@@ -20,7 +20,7 @@ module BareTest
20
20
  unless failed then
21
21
  failure "Expected the block to fail, but it returned a true value."
22
22
  end
23
-
23
+
24
24
  true
25
25
  end
26
26
  end
@@ -1,5 +1,5 @@
1
1
  #--
2
- # Copyright 2009 by Stefan Rusterholz.
2
+ # Copyright 2009-2010 by Stefan Rusterholz.
3
3
  # All rights reserved.
4
4
  # See LICENSE.txt for permissions.
5
5
  #++
@@ -1,5 +1,5 @@
1
1
  #--
2
- # Copyright 2009 by Stefan Rusterholz.
2
+ # Copyright 2009-2010 by Stefan Rusterholz.
3
3
  # All rights reserved.
4
4
  # See LICENSE.txt for permissions.
5
5
  #++
@@ -1,5 +1,5 @@
1
1
  #--
2
- # Copyright 2009 by Stefan Rusterholz.
2
+ # Copyright 2009-2010 by Stefan Rusterholz.
3
3
  # All rights reserved.
4
4
  # See LICENSE.txt for permissions.
5
5
  #++
@@ -1,5 +1,5 @@
1
1
  #--
2
- # Copyright 2009 by Stefan Rusterholz.
2
+ # Copyright 2009-2010 by Stefan Rusterholz.
3
3
  # All rights reserved.
4
4
  # See LICENSE.txt for permissions.
5
5
  #++
@@ -1,5 +1,5 @@
1
1
  #--
2
- # Copyright 2009 by Stefan Rusterholz.
2
+ # Copyright 2009-2010 by Stefan Rusterholz.
3
3
  # All rights reserved.
4
4
  # See LICENSE.txt for permissions.
5
5
  #++
@@ -1,5 +1,5 @@
1
1
  #--
2
- # Copyright 2009 by Stefan Rusterholz.
2
+ # Copyright 2009-2010 by Stefan Rusterholz.
3
3
  # All rights reserved.
4
4
  # See LICENSE.txt for permissions.
5
5
  #++
@@ -1,5 +1,5 @@
1
1
  #--
2
- # Copyright 2009 by Stefan Rusterholz.
2
+ # Copyright 2009-2010 by Stefan Rusterholz.
3
3
  # All rights reserved.
4
4
  # See LICENSE.txt for permissions.
5
5
  #++
@@ -1,5 +1,5 @@
1
1
  #--
2
- # Copyright 2009 by Stefan Rusterholz.
2
+ # Copyright 2009-2010 by Stefan Rusterholz.
3
3
  # All rights reserved.
4
4
  # See LICENSE.txt for permissions.
5
5
  #++
@@ -1,5 +1,5 @@
1
1
  #--
2
- # Copyright 2009 by Stefan Rusterholz.
2
+ # Copyright 2009-2010 by Stefan Rusterholz.
3
3
  # All rights reserved.
4
4
  # See LICENSE.txt for permissions.
5
5
  #++
@@ -1,5 +1,5 @@
1
1
  #--
2
- # Copyright 2009 by Stefan Rusterholz.
2
+ # Copyright 2009-2010 by Stefan Rusterholz.
3
3
  # All rights reserved.
4
4
  # See LICENSE.txt for permissions.
5
5
  #++
@@ -1,5 +1,5 @@
1
1
  #--
2
- # Copyright 2009 by Stefan Rusterholz.
2
+ # Copyright 2009-2010 by Stefan Rusterholz.
3
3
  # All rights reserved.
4
4
  # See LICENSE.txt for permissions.
5
5
  #++
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: baretest
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.3
4
+ version: 0.2.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stefan Rusterholz
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-11-27 00:00:00 +01:00
12
+ date: 2010-01-14 00:00:00 +01:00
13
13
  default_executable:
14
14
  dependencies: []
15
15
 
@@ -31,7 +31,9 @@ files:
31
31
  - doc/baretest.rdoc
32
32
  - doc/mocking_stubbing_test_doubles.rdoc
33
33
  - doc/quickref.rdoc
34
+ - doc/whats_going_on.rdoc
34
35
  - doc/writing_tests.rdoc
36
+ - examples/test.rake
35
37
  - examples/tests/irb_mode/failures.rb
36
38
  - examples/tests/mock_developer/test/helper/mocks.rb
37
39
  - examples/tests/mock_developer/test/setup.rb
@@ -40,7 +42,6 @@ files:
40
42
  - examples/tests/variations/variations_01.rb
41
43
  - examples/tests/variations/variations_02.rb
42
44
  - examples/tests/variations/variations_03.rb
43
- - examples/test.rake
44
45
  - lib/baretest.rb
45
46
  - lib/baretest/assertion.rb
46
47
  - lib/baretest/assertion/context.rb
@@ -50,6 +51,7 @@ files:
50
51
  - lib/baretest/irb_mode.rb
51
52
  - lib/baretest/layout.rb
52
53
  - lib/baretest/mocha.rb
54
+ - lib/baretest/rr.rb
53
55
  - lib/baretest/run.rb
54
56
  - lib/baretest/run/cli.rb
55
57
  - lib/baretest/run/errors.rb
@@ -63,8 +65,8 @@ files:
63
65
  - lib/baretest/skipped/assertion.rb
64
66
  - lib/baretest/skipped/suite.rb
65
67
  - lib/baretest/suite.rb
66
- - lib/baretest/utilities.rb
67
68
  - lib/baretest/version.rb
69
+ - lib/ruby/kernel.rb
68
70
  - test/external/bootstraptest.rb
69
71
  - test/external/bootstrapwrap.rb
70
72
  - test/helper/mocks.rb
@@ -94,7 +96,7 @@ rdoc_options:
94
96
  - --tab-width
95
97
  - "2"
96
98
  - -t
97
- - baretest-0.2.3 Documentation
99
+ - baretest-0.2.4 Documentation
98
100
  require_paths:
99
101
  - lib
100
102
  required_ruby_version: !ruby/object:Gem::Requirement