single_test 0.4.1 → 0.4.2
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/Rakefile +1 -3
- data/Readme.md +20 -8
- data/VERSION +1 -1
- data/lib/single_test.rb +13 -1
- data/single_test.gemspec +2 -2
- data/spec/single_test_spec.rb +15 -0
- metadata +4 -4
data/Rakefile
CHANGED
data/Readme.md
CHANGED
@@ -1,26 +1,35 @@
|
|
1
1
|
Runs a single test/spec via rake.
|
2
2
|
|
3
|
-
|
3
|
+
INSTALLATION
|
4
4
|
=====
|
5
|
-
As Rails plugin
|
5
|
+
###As Rails plugin
|
6
|
+
|
6
7
|
script/plugin install git://github.com/grosser/single_test.git
|
7
8
|
|
8
|
-
As Gem
|
9
|
-
|
9
|
+
###As Gem
|
10
|
+
|
11
|
+
sudo gem install single_test
|
12
|
+
|
13
|
+
Include in your Rakefile:
|
10
14
|
|
11
|
-
|
12
|
-
|
13
|
-
SingleTest.load_tasks
|
15
|
+
require 'single_test'
|
16
|
+
SingleTest.load_tasks
|
14
17
|
|
18
|
+
USAGE
|
19
|
+
=====
|
15
20
|
|
16
21
|
###Single test/spec
|
17
|
-
|
22
|
+
Searches for test-files matching the given name.
|
18
23
|
|
19
24
|
rake spec:user #run spec/model/user_spec.rb
|
20
25
|
rake test:users_c #run test/functional/users_controller_test.rb
|
21
26
|
rake spec:admin/users_c #run spec/controllers/admin/users_controller_spec.rb
|
22
27
|
rake test:u*hel #run test/helpers/user_helper_test.rb
|
23
28
|
|
29
|
+
Searches for test-files by class (Foo::Bar -> foo/bar)
|
30
|
+
|
31
|
+
rake spec:Foo::Bar #run spec/foo/bar_spec.rb
|
32
|
+
|
24
33
|
###Single test-case/example
|
25
34
|
rake spec:user:token #run the first spec in user_spec.rb that matches /token/
|
26
35
|
rake test:user:token #run all tests in user_test.rb that match /token/
|
@@ -40,6 +49,7 @@ TIPS
|
|
40
49
|
====
|
41
50
|
- if `script/spec` is missing, if will use just `spec` for specs (which solves some issues)
|
42
51
|
- run whole describe blocks: `describe 'xxx' do describe 'yyy'` --> `rake spec:file:'xxx yyy'`
|
52
|
+
- run single examples or describe blocks via line-numbers `rspec spec/foo_spec:123`
|
43
53
|
|
44
54
|
TODO
|
45
55
|
====
|
@@ -50,6 +60,8 @@ Authors
|
|
50
60
|
|
51
61
|
### [Contributors](http://github.com/grosser/single_test/contributors)
|
52
62
|
- [Ian Young](https://github.com/iangreenleaf)
|
63
|
+
- [Lorrin Nelson](https://github.com/lorrin)
|
64
|
+
- [Jason King](https://github.com/smathy)
|
53
65
|
|
54
66
|
[Michael Grosser](http://grosser.it)<br/>
|
55
67
|
michael@grosser.it<br/>
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.4.
|
1
|
+
0.4.2
|
data/lib/single_test.rb
CHANGED
@@ -49,7 +49,7 @@ module SingleTest
|
|
49
49
|
# spec:user:blah --> [spec,user,blah]
|
50
50
|
def parse_cli(call)
|
51
51
|
raise "you should not have gotten here..." unless call =~ CMD_LINE_MATCHER
|
52
|
-
arguments = call.split(":",3)
|
52
|
+
arguments = underscore(call).split(":",3)
|
53
53
|
[
|
54
54
|
arguments[0], #type
|
55
55
|
arguments[1], #file name
|
@@ -109,6 +109,18 @@ module SingleTest
|
|
109
109
|
|
110
110
|
private
|
111
111
|
|
112
|
+
# copied from Rails - so we're not dependent
|
113
|
+
def underscore(camel_cased_word)
|
114
|
+
word = camel_cased_word.to_s.dup
|
115
|
+
word.gsub!(/::/, '/')
|
116
|
+
word.gsub!(/([A-Z]+)([A-Z][a-z])/,'\1_\2')
|
117
|
+
word.gsub!(/([a-z\d])([A-Z])/,'\1_\2')
|
118
|
+
word.tr!("-", "_")
|
119
|
+
word.downcase!
|
120
|
+
word
|
121
|
+
end
|
122
|
+
|
123
|
+
|
112
124
|
def test_name_matcher(executable, file, test_name)
|
113
125
|
if test_name and not executable.include?('rspec')
|
114
126
|
# rspec 1 only supports full test names -> find a matching test-name
|
data/single_test.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{single_test}
|
8
|
-
s.version = "0.4.
|
8
|
+
s.version = "0.4.2"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Michael Grosser"]
|
12
|
-
s.date = %q{2011-
|
12
|
+
s.date = %q{2011-10-13}
|
13
13
|
s.email = %q{grosser.michael@gmail.com}
|
14
14
|
s.files = [
|
15
15
|
"Gemfile",
|
data/spec/single_test_spec.rb
CHANGED
@@ -34,6 +34,21 @@ describe SingleTest do
|
|
34
34
|
it "does not split test name further" do
|
35
35
|
SingleTest.parse_cli('test:something:else:oh:no')[2].should == 'else:oh:no'
|
36
36
|
end
|
37
|
+
|
38
|
+
it "parses ClassNames" do
|
39
|
+
SingleTest.parse_cli('test:ClassNames')[1].should == 'class_names'
|
40
|
+
end
|
41
|
+
|
42
|
+
it "parses ClassNames::WithNamespaces" do
|
43
|
+
SingleTest.parse_cli('test:ClassNames::WithNamespaces')[1].should == 'class_names/with_namespaces'
|
44
|
+
end
|
45
|
+
|
46
|
+
it "doesn't confuse :s with ::s" do
|
47
|
+
parsed = SingleTest.parse_cli('test:ClassNames::WithNamespaces:foobar')
|
48
|
+
parsed[0].should == 'test'
|
49
|
+
parsed[1].should == 'class_names/with_namespaces'
|
50
|
+
parsed[2].should == 'foobar'
|
51
|
+
end
|
37
52
|
end
|
38
53
|
|
39
54
|
describe :find_test_file do
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: single_test
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 11
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 4
|
9
|
-
-
|
10
|
-
version: 0.4.
|
9
|
+
- 2
|
10
|
+
version: 0.4.2
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Michael Grosser
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-
|
18
|
+
date: 2011-10-13 00:00:00 +02:00
|
19
19
|
default_executable:
|
20
20
|
dependencies: []
|
21
21
|
|