chinchilla 0.2.0 → 0.2.1
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 +5 -0
- data/chinchilla.gemspec +3 -1
- data/lib/chinchilla/runner.rb +12 -6
- data/lib/chinchilla/version.rb +1 -1
- data/spec/runner_spec.rb +121 -0
- data/spec/spec_helper.rb +3 -0
- metadata +44 -2
data/Rakefile
CHANGED
data/chinchilla.gemspec
CHANGED
@@ -14,7 +14,9 @@ Gem::Specification.new do |gem|
|
|
14
14
|
|
15
15
|
gem.add_dependency 'capybara'
|
16
16
|
gem.add_dependency 'poltergeist'
|
17
|
-
gem.add_dependency 'rocha'
|
17
|
+
gem.add_dependency 'rocha', '~> 0.2.1'
|
18
|
+
gem.add_dependency 'rake'
|
19
|
+
gem.add_development_dependency "rspec"
|
18
20
|
|
19
21
|
gem.files = `git ls-files`.split($\)
|
20
22
|
gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
|
data/lib/chinchilla/runner.rb
CHANGED
@@ -1,12 +1,8 @@
|
|
1
1
|
module Chinchilla
|
2
2
|
class Runner
|
3
|
-
def self.start(options={})
|
4
|
-
new(options).run
|
5
|
-
end
|
6
|
-
|
7
3
|
attr_reader :reporter
|
8
4
|
|
9
|
-
def initialize(options)
|
5
|
+
def initialize(options={})
|
10
6
|
@options = options
|
11
7
|
@reporter = Rocha::Reporter.new(*formatters)
|
12
8
|
end
|
@@ -62,13 +58,23 @@ module Chinchilla
|
|
62
58
|
end
|
63
59
|
|
64
60
|
def formatters
|
65
|
-
@formatters ||= @options[:formatters] || default_formatters
|
61
|
+
@formatters ||= load_formatters(@options[:formatters]) || default_formatters
|
66
62
|
end
|
67
63
|
|
68
64
|
def default_application
|
69
65
|
defined?(Rails) ? Rails.application : nil
|
70
66
|
end
|
71
67
|
|
68
|
+
def load_formatters(formatters)
|
69
|
+
if formatters.kind_of?(String)
|
70
|
+
formatters.split(',').map do |formatter|
|
71
|
+
eval(formatter).new(STDOUT)
|
72
|
+
end
|
73
|
+
else
|
74
|
+
formatters
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
72
78
|
def default_formatters
|
73
79
|
[Rocha::Formatter.new(STDOUT)]
|
74
80
|
end
|
data/lib/chinchilla/version.rb
CHANGED
data/spec/runner_spec.rb
ADDED
@@ -0,0 +1,121 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Chinchilla::Runner do
|
4
|
+
before do
|
5
|
+
STDOUT.stub(:puts)
|
6
|
+
end
|
7
|
+
|
8
|
+
describe ".new" do
|
9
|
+
before do
|
10
|
+
class TestFormatter
|
11
|
+
def initialize(io)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
after do
|
17
|
+
Object.send(:remove_const, :TestFormatter)
|
18
|
+
end
|
19
|
+
|
20
|
+
it "initializes a reporter with formatters given in options" do
|
21
|
+
Rocha::Reporter.should_receive(:new).with(instance_of(Rocha::Formatter), instance_of(TestFormatter))
|
22
|
+
described_class.new :formatters => 'Rocha::Formatter, TestFormatter'
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
describe "#run" do
|
27
|
+
let(:suite) do
|
28
|
+
{'event' => 'suite',
|
29
|
+
'type' => 'suite',
|
30
|
+
'data' => {
|
31
|
+
'title' => 'failure',
|
32
|
+
'fullTitle' => 'failure',
|
33
|
+
'path' => 'failing_spec.js'
|
34
|
+
}}
|
35
|
+
end
|
36
|
+
|
37
|
+
let(:suite_end) do
|
38
|
+
{'event' => 'suite end',
|
39
|
+
'type' => 'suite',
|
40
|
+
'data' => {
|
41
|
+
'title' => 'failure',
|
42
|
+
'fullTitle' => 'failure',
|
43
|
+
'path' => 'failing_spec.js'
|
44
|
+
}}
|
45
|
+
end
|
46
|
+
|
47
|
+
let(:test) do
|
48
|
+
{'event' => 'test',
|
49
|
+
'type' => 'test',
|
50
|
+
'data' => {
|
51
|
+
'title' => 'fails',
|
52
|
+
'fullTitle' => 'failure fails',
|
53
|
+
'parentFullTitle' => 'failure',
|
54
|
+
'path' => 'failing_spec.js'}}
|
55
|
+
end
|
56
|
+
|
57
|
+
let(:failure) do
|
58
|
+
{'event' => 'fail',
|
59
|
+
'type' => 'test',
|
60
|
+
'data' => {
|
61
|
+
'title' => 'fails',
|
62
|
+
'fullTitle' => 'failure fails',
|
63
|
+
'parentFullTitle' => 'failure',
|
64
|
+
'status' => 'failed',
|
65
|
+
'path' => 'failing_spec.js',
|
66
|
+
'error' => {'message' => 'expected 4 to equal 5', 'name' => 'AssertionError'}}}
|
67
|
+
end
|
68
|
+
|
69
|
+
let(:error) do
|
70
|
+
{'event' => 'fail',
|
71
|
+
'type' => 'test',
|
72
|
+
'data' => {
|
73
|
+
'title' => 'errors',
|
74
|
+
'fullTitle' => 'failure errors',
|
75
|
+
'parentFullTitle' => 'failure',
|
76
|
+
'status' => 'failed',
|
77
|
+
'path' => 'failing_spec.js',
|
78
|
+
'error' => {'message' => 'this one errors out', 'name' => 'Error'}}}
|
79
|
+
end
|
80
|
+
|
81
|
+
let(:pass) do
|
82
|
+
{'event' => 'pass',
|
83
|
+
'type' => 'test',
|
84
|
+
'data' => {
|
85
|
+
'title' => 'is empty',
|
86
|
+
'fullTitle' => 'the body#konacha element is empty',
|
87
|
+
'parentFullTitle' => 'the body#konacha element',
|
88
|
+
'status' => 'passed',
|
89
|
+
'path' => 'body_spec.js.coffee',
|
90
|
+
'duration' => anything}}
|
91
|
+
end
|
92
|
+
|
93
|
+
let(:pending) do
|
94
|
+
{'event' => 'pending',
|
95
|
+
'type' => 'test',
|
96
|
+
'data' => {
|
97
|
+
'title' => 'is pending',
|
98
|
+
'fullTitle' => 'pending test is pending',
|
99
|
+
'parentFullTitle' => 'pending test',
|
100
|
+
'path' => 'pending_spec.js',
|
101
|
+
'status' => 'pending'}}
|
102
|
+
end
|
103
|
+
|
104
|
+
let(:start) { {'event' => 'start', 'testCount' => kind_of(Integer), 'data' => {} } }
|
105
|
+
let(:end_event) { {'event' => 'end', 'data' => {} } }
|
106
|
+
|
107
|
+
it "passes along the right events" do
|
108
|
+
subject.reporter.should_receive(:process_mocha_event).with(start)
|
109
|
+
subject.reporter.should_receive(:process_mocha_event).with(suite)
|
110
|
+
subject.reporter.should_receive(:process_mocha_event).with(suite_end)
|
111
|
+
subject.reporter.should_receive(:process_mocha_event).with(test)
|
112
|
+
subject.reporter.should_receive(:process_mocha_event).with(failure)
|
113
|
+
subject.reporter.should_receive(:process_mocha_event).with(error)
|
114
|
+
subject.reporter.should_receive(:process_mocha_event).with(pass)
|
115
|
+
subject.reporter.should_receive(:process_mocha_event).with(pending)
|
116
|
+
subject.reporter.should_receive(:process_mocha_event).with(end_event)
|
117
|
+
subject.reporter.should_receive(:process_mocha_event).any_number_of_times
|
118
|
+
subject.run
|
119
|
+
end
|
120
|
+
end
|
121
|
+
end
|
data/spec/spec_helper.rb
ADDED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: chinchilla
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -45,6 +45,22 @@ dependencies:
|
|
45
45
|
version: '0'
|
46
46
|
- !ruby/object:Gem::Dependency
|
47
47
|
name: rocha
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
50
|
+
requirements:
|
51
|
+
- - ~>
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: 0.2.1
|
54
|
+
type: :runtime
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ~>
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 0.2.1
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
name: rake
|
48
64
|
requirement: !ruby/object:Gem::Requirement
|
49
65
|
none: false
|
50
66
|
requirements:
|
@@ -59,6 +75,22 @@ dependencies:
|
|
59
75
|
- - ! '>='
|
60
76
|
- !ruby/object:Gem::Version
|
61
77
|
version: '0'
|
78
|
+
- !ruby/object:Gem::Dependency
|
79
|
+
name: rspec
|
80
|
+
requirement: !ruby/object:Gem::Requirement
|
81
|
+
none: false
|
82
|
+
requirements:
|
83
|
+
- - ! '>='
|
84
|
+
- !ruby/object:Gem::Version
|
85
|
+
version: '0'
|
86
|
+
type: :development
|
87
|
+
prerelease: false
|
88
|
+
version_requirements: !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
90
|
+
requirements:
|
91
|
+
- - ! '>='
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: '0'
|
62
94
|
description: mocha test runner
|
63
95
|
email:
|
64
96
|
- paul@chavard.net
|
@@ -75,6 +107,8 @@ files:
|
|
75
107
|
- lib/chinchilla.rb
|
76
108
|
- lib/chinchilla/runner.rb
|
77
109
|
- lib/chinchilla/version.rb
|
110
|
+
- spec/runner_spec.rb
|
111
|
+
- spec/spec_helper.rb
|
78
112
|
homepage: ''
|
79
113
|
licenses: []
|
80
114
|
post_install_message:
|
@@ -87,16 +121,24 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
87
121
|
- - ! '>='
|
88
122
|
- !ruby/object:Gem::Version
|
89
123
|
version: '0'
|
124
|
+
segments:
|
125
|
+
- 0
|
126
|
+
hash: 311499010911845055
|
90
127
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
91
128
|
none: false
|
92
129
|
requirements:
|
93
130
|
- - ! '>='
|
94
131
|
- !ruby/object:Gem::Version
|
95
132
|
version: '0'
|
133
|
+
segments:
|
134
|
+
- 0
|
135
|
+
hash: 311499010911845055
|
96
136
|
requirements: []
|
97
137
|
rubyforge_project:
|
98
138
|
rubygems_version: 1.8.23
|
99
139
|
signing_key:
|
100
140
|
specification_version: 3
|
101
141
|
summary: Run mocha test on Capybara
|
102
|
-
test_files:
|
142
|
+
test_files:
|
143
|
+
- spec/runner_spec.rb
|
144
|
+
- spec/spec_helper.rb
|