test-belt 1.1.2 → 2.0.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/.gitignore +1 -0
- data/Gemfile +2 -0
- data/Gemfile.lock +3 -1
- data/README.rdoc +8 -4
- data/Rakefile +3 -1
- data/lib/test-belt.rb +2 -0
- data/lib/test_belt.rb +3 -1
- data/lib/test_belt/helper.rb +2 -30
- data/lib/test_belt/rake_tasks.rb +4 -4
- data/lib/test_belt/setup.rb +78 -0
- data/lib/test_belt/version.rb +1 -1
- data/test/callbacks_test.rb +1 -1
- data/test/helper.rb +2 -1
- data/test/helpers_test.rb +1 -1
- data/test/irb.rb +8 -0
- data/test/matchers_test.rb +3 -3
- data/test/rake_tasks_test.rb +2 -2
- data/test/utils_test.rb +2 -2
- metadata +15 -13
- data/test/env.rb +0 -9
data/.gitignore
CHANGED
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,17 +1,19 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
test-belt (
|
4
|
+
test-belt (2.0.0)
|
5
5
|
leftright (~> 0.9.0)
|
6
6
|
|
7
7
|
GEM
|
8
8
|
remote: http://rubygems.org/
|
9
9
|
specs:
|
10
10
|
leftright (0.9.1)
|
11
|
+
rake (0.9.2)
|
11
12
|
|
12
13
|
PLATFORMS
|
13
14
|
ruby
|
14
15
|
|
15
16
|
DEPENDENCIES
|
16
17
|
bundler (~> 1.0)
|
18
|
+
rake (~> 0.9.2)
|
17
19
|
test-belt!
|
data/README.rdoc
CHANGED
@@ -22,16 +22,20 @@ TestBelt only impacts your testing environment or setup and is designed only for
|
|
22
22
|
# other gem dependencies ...
|
23
23
|
|
24
24
|
group :test do
|
25
|
-
gem 'test-belt'
|
25
|
+
gem 'test-belt'
|
26
26
|
|
27
27
|
# other testing gem dependencies ...
|
28
28
|
end
|
29
29
|
|
30
30
|
== Test Helpers
|
31
|
-
Requiring test belt loads in the testing libraries I like and use.
|
31
|
+
Requiring test belt loads in the testing libraries I like and use. First make sure all your tests are in a 'test' directory. Then in your test files require in test belt:
|
32
32
|
require 'test_belt'
|
33
33
|
|
34
|
-
This
|
34
|
+
This does a few things for you:
|
35
|
+
* adds your 'lib' and 'test' dirs to the $LOAD_PATH
|
36
|
+
* requires in a 'test/helper' file if one exists
|
37
|
+
|
38
|
+
In addition, it gives you the following tools. I use most of these helpers in testing this gem. To see examples of these in action, peruse this gem's test files (https://github.com/kelredd/test-belt/tree/master/test) and run the test suite with:
|
35
39
|
$ rake test
|
36
40
|
|
37
41
|
=== Test::Unit
|
@@ -83,7 +87,7 @@ To see what this gives you:
|
|
83
87
|
$ rake -T
|
84
88
|
|
85
89
|
=== IRB with your environment loaded
|
86
|
-
Many times in developing code, I need to quickly load up IRB with my environment. TestBelt will give you a rake task for doing that. Simply create an
|
90
|
+
Many times in developing code, I need to quickly load up IRB with my environment. TestBelt will give you a rake task for doing that. Simply create an irb.rb file in your test file directory and have it require 'test_belt'. See https://github.com/kelredd/test-belt/tree/master/test/irb.rb and demo for this gem with:
|
87
91
|
|
88
92
|
$ rake irb
|
89
93
|
> TestBelt
|
data/Rakefile
CHANGED
data/lib/test-belt.rb
ADDED
data/lib/test_belt.rb
CHANGED
data/lib/test_belt/helper.rb
CHANGED
@@ -1,30 +1,2 @@
|
|
1
|
-
|
2
|
-
require '
|
3
|
-
require 'leftright'
|
4
|
-
|
5
|
-
require 'test_belt/utils'
|
6
|
-
require 'test_belt/default_test'
|
7
|
-
require 'test_belt/testcase'
|
8
|
-
require 'test_belt/should'
|
9
|
-
require 'test_belt/context'
|
10
|
-
require 'test_belt/subject'
|
11
|
-
require 'test_belt/skip'
|
12
|
-
require 'test_belt/callbacks'
|
13
|
-
require 'test_belt/matchers'
|
14
|
-
|
15
|
-
module TestBelt
|
16
|
-
|
17
|
-
def self.included(receiving_test_class)
|
18
|
-
if receiving_test_class.ancestors.include?(::Test::Unit::TestCase)
|
19
|
-
receiving_test_class.send(:include, DefaultTest)
|
20
|
-
receiving_test_class.send(:include, TestCase)
|
21
|
-
receiving_test_class.send(:extend, Should)
|
22
|
-
receiving_test_class.send(:include, Context)
|
23
|
-
receiving_test_class.send(:include, Subject)
|
24
|
-
receiving_test_class.send(:include, Skip)
|
25
|
-
receiving_test_class.send(:include, Callbacks)
|
26
|
-
receiving_test_class.send(:include, Matchers)
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
|
-
end
|
1
|
+
# for backwards compatibility
|
2
|
+
require 'test_belt/setup'
|
data/lib/test_belt/rake_tasks.rb
CHANGED
@@ -52,11 +52,11 @@ module TestBelt::RakeTasks
|
|
52
52
|
end
|
53
53
|
|
54
54
|
def irb_task(path)
|
55
|
-
|
56
|
-
if File.exist?(
|
57
|
-
desc "Open irb preloaded with #{
|
55
|
+
irb_file = File.join(path, "irb.rb")
|
56
|
+
if File.exist?(irb_file)
|
57
|
+
desc "Open irb preloaded with #{irb_file}"
|
58
58
|
task :irb do
|
59
|
-
sh "irb -rubygems -r ./#{
|
59
|
+
sh "irb -rubygems -r ./#{irb_file}"
|
60
60
|
end
|
61
61
|
end
|
62
62
|
end
|
@@ -0,0 +1,78 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'test/unit'
|
3
|
+
require 'leftright'
|
4
|
+
|
5
|
+
require 'test_belt/utils'
|
6
|
+
require 'test_belt/default_test'
|
7
|
+
require 'test_belt/testcase'
|
8
|
+
require 'test_belt/should'
|
9
|
+
require 'test_belt/context'
|
10
|
+
require 'test_belt/subject'
|
11
|
+
require 'test_belt/skip'
|
12
|
+
require 'test_belt/callbacks'
|
13
|
+
require 'test_belt/matchers'
|
14
|
+
|
15
|
+
module TestBelt
|
16
|
+
|
17
|
+
def self.included(receiving_test_class)
|
18
|
+
if receiving_test_class.ancestors.include?(::Test::Unit::TestCase)
|
19
|
+
receiving_test_class.send(:include, DefaultTest)
|
20
|
+
receiving_test_class.send(:include, TestCase)
|
21
|
+
receiving_test_class.send(:extend, Should)
|
22
|
+
receiving_test_class.send(:include, Context)
|
23
|
+
receiving_test_class.send(:include, Subject)
|
24
|
+
receiving_test_class.send(:include, Skip)
|
25
|
+
receiving_test_class.send(:include, Callbacks)
|
26
|
+
receiving_test_class.send(:include, Matchers)
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
|
31
|
+
# assume the test dir path is ./test and the lib dir path ./test/../lib
|
32
|
+
TEST_DIR = "test"
|
33
|
+
LIB_DIR = "lib"
|
34
|
+
TEST_REGEX = /^#{TEST_DIR}$|^#{TEST_DIR}\/|\/#{TEST_DIR}\/|\/#{TEST_DIR}$/
|
35
|
+
TEST_HELPER_FILE = "helper"
|
36
|
+
class << self
|
37
|
+
|
38
|
+
# run some setup stuff based on the caller's info
|
39
|
+
def setup(caller_info)
|
40
|
+
if (crp = caller_root_path(caller_info))
|
41
|
+
add_caller_paths_to_load_path(crp)
|
42
|
+
require_caller_test_helper(crp)
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
private
|
47
|
+
|
48
|
+
# add the caller's lib/test dirs to the load path
|
49
|
+
def add_caller_paths_to_load_path(root_path)
|
50
|
+
add_to_load_path(File.join(root_path, LIB_DIR))
|
51
|
+
add_to_load_path(File.join(root_path, TEST_DIR))
|
52
|
+
end
|
53
|
+
|
54
|
+
def add_to_load_path(dir)
|
55
|
+
$LOAD_PATH.unshift(dir) unless $LOAD_PATH.include?(dir)
|
56
|
+
end
|
57
|
+
|
58
|
+
# require the caller's test/helper file if exists
|
59
|
+
def require_caller_test_helper(root_path)
|
60
|
+
if File.exists?(File.join(root_path, TEST_DIR, TEST_HELPER_FILE+'.rb')) &&
|
61
|
+
$LOAD_PATH.include?(File.join(root_path, TEST_DIR))
|
62
|
+
require TEST_HELPER_FILE
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
# this method inspects the caller info and finds the caller's root path
|
67
|
+
# this expects the caller's root path to be the parent dir of the first
|
68
|
+
# parent dir of caller named TEST_DIR
|
69
|
+
def caller_root_path(caller_info)
|
70
|
+
caller_dirname = File.expand_path(File.dirname(caller_info[0]))
|
71
|
+
if (test_dir_pos = caller_dirname.index(TEST_REGEX)) > 0
|
72
|
+
root_dir = caller_dirname[0..(test_dir_pos-1)]
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
end
|
77
|
+
|
78
|
+
end
|
data/lib/test_belt/version.rb
CHANGED
data/test/callbacks_test.rb
CHANGED
data/test/helper.rb
CHANGED
@@ -1 +1,2 @@
|
|
1
|
-
require '
|
1
|
+
# this file is automatically required in when you require 'test_belt'
|
2
|
+
# put test helpers here
|
data/test/helpers_test.rb
CHANGED
data/test/irb.rb
ADDED
data/test/matchers_test.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
|
-
require "
|
2
|
-
require '
|
1
|
+
require "test_belt"
|
2
|
+
require 'fixtures/thing'
|
3
3
|
|
4
4
|
module TestBelt::Matchers
|
5
5
|
|
@@ -25,7 +25,7 @@ module TestBelt::Matchers
|
|
25
25
|
should have_directory 'test'
|
26
26
|
should have_directories './test/fixtures'
|
27
27
|
should have_file 'test/fixtures/thing.rb'
|
28
|
-
should have_files './test/
|
28
|
+
should have_files './test/irb.rb', './test/helper.rb'
|
29
29
|
end
|
30
30
|
|
31
31
|
|
data/test/rake_tasks_test.rb
CHANGED
data/test/utils_test.rb
CHANGED
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: test-belt
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 15
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
|
-
- 1
|
8
|
-
- 1
|
9
7
|
- 2
|
10
|
-
|
8
|
+
- 0
|
9
|
+
- 0
|
10
|
+
version: 2.0.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Kelly D. Redding
|
@@ -15,11 +15,9 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-
|
18
|
+
date: 2011-07-26 00:00:00 Z
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
|
-
name: bundler
|
22
|
-
prerelease: false
|
23
21
|
requirement: &id001 !ruby/object:Gem::Requirement
|
24
22
|
none: false
|
25
23
|
requirements:
|
@@ -30,11 +28,11 @@ dependencies:
|
|
30
28
|
- 1
|
31
29
|
- 0
|
32
30
|
version: "1.0"
|
33
|
-
type: :development
|
34
31
|
version_requirements: *id001
|
35
|
-
- !ruby/object:Gem::Dependency
|
36
|
-
name: leftright
|
37
32
|
prerelease: false
|
33
|
+
name: bundler
|
34
|
+
type: :development
|
35
|
+
- !ruby/object:Gem::Dependency
|
38
36
|
requirement: &id002 !ruby/object:Gem::Requirement
|
39
37
|
none: false
|
40
38
|
requirements:
|
@@ -46,8 +44,10 @@ dependencies:
|
|
46
44
|
- 9
|
47
45
|
- 0
|
48
46
|
version: 0.9.0
|
49
|
-
type: :runtime
|
50
47
|
version_requirements: *id002
|
48
|
+
prerelease: false
|
49
|
+
name: leftright
|
50
|
+
type: :runtime
|
51
51
|
description: This is my Ruby testing "tool belt". It packages up the most common testing tools and paradigms I use. It is opinionated and custom to how I like to test.
|
52
52
|
email:
|
53
53
|
- kelly@kelredd.com
|
@@ -63,6 +63,7 @@ files:
|
|
63
63
|
- Gemfile.lock
|
64
64
|
- README.rdoc
|
65
65
|
- Rakefile
|
66
|
+
- lib/test-belt.rb
|
66
67
|
- lib/test_belt.rb
|
67
68
|
- lib/test_belt/callbacks.rb
|
68
69
|
- lib/test_belt/callbacks/case.rb
|
@@ -80,6 +81,7 @@ files:
|
|
80
81
|
- lib/test_belt/matchers/have_readers.rb
|
81
82
|
- lib/test_belt/matchers/have_writers.rb
|
82
83
|
- lib/test_belt/rake_tasks.rb
|
84
|
+
- lib/test_belt/setup.rb
|
83
85
|
- lib/test_belt/should.rb
|
84
86
|
- lib/test_belt/skip.rb
|
85
87
|
- lib/test_belt/subject.rb
|
@@ -88,11 +90,11 @@ files:
|
|
88
90
|
- lib/test_belt/version.rb
|
89
91
|
- test-belt.gemspec
|
90
92
|
- test/callbacks_test.rb
|
91
|
-
- test/env.rb
|
92
93
|
- test/fixtures/inherited_stuff.rb
|
93
94
|
- test/fixtures/thing.rb
|
94
95
|
- test/helper.rb
|
95
96
|
- test/helpers_test.rb
|
97
|
+
- test/irb.rb
|
96
98
|
- test/matchers_test.rb
|
97
99
|
- test/rake_tasks_test.rb
|
98
100
|
- test/utils_test.rb
|
@@ -131,11 +133,11 @@ specification_version: 3
|
|
131
133
|
summary: A gem for using testing tools I like - my Ruby testing toolbelt.
|
132
134
|
test_files:
|
133
135
|
- test/callbacks_test.rb
|
134
|
-
- test/env.rb
|
135
136
|
- test/fixtures/inherited_stuff.rb
|
136
137
|
- test/fixtures/thing.rb
|
137
138
|
- test/helper.rb
|
138
139
|
- test/helpers_test.rb
|
140
|
+
- test/irb.rb
|
139
141
|
- test/matchers_test.rb
|
140
142
|
- test/rake_tasks_test.rb
|
141
143
|
- test/utils_test.rb
|
data/test/env.rb
DELETED
@@ -1,9 +0,0 @@
|
|
1
|
-
# Add test and lib paths to the $LOAD_PATH
|
2
|
-
[ File.dirname(__FILE__),
|
3
|
-
File.join(File.dirname(__FILE__), '..', 'lib')
|
4
|
-
].each do |path|
|
5
|
-
full_path = File.expand_path(path)
|
6
|
-
$LOAD_PATH.unshift(full_path) unless $LOAD_PATH.include?(full_path)
|
7
|
-
end
|
8
|
-
|
9
|
-
require 'test_belt'
|