rspec-instafail 0.1.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/Rakefile +20 -0
- data/Readme.md +39 -0
- data/VERSION +1 -0
- data/lib/rspec/instafail.rb +32 -0
- data/rspec-instafail.gemspec +49 -0
- data/spec/instafail_spec.rb +13 -0
- data/spec/rspec_1/Gemfile +2 -0
- data/spec/rspec_1/Gemfile.lock +10 -0
- data/spec/rspec_1/a_test.rb +21 -0
- data/spec/rspec_2/Gemfile +2 -0
- data/spec/rspec_2/Gemfile.lock +18 -0
- data/spec/rspec_2/a_test.rb +21 -0
- metadata +75 -0
data/Rakefile
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
task :default => :spec
|
2
|
+
require 'spec/rake/spectask'
|
3
|
+
Spec::Rake::SpecTask.new {|t| t.spec_opts = ['--color --backtrace']}
|
4
|
+
|
5
|
+
begin
|
6
|
+
require 'jeweler'
|
7
|
+
project_name = 'rspec-instafail'
|
8
|
+
|
9
|
+
Jeweler::Tasks.new do |gem|
|
10
|
+
gem.name = project_name
|
11
|
+
gem.summary = "Show failing specs instantly"
|
12
|
+
gem.email = "grosser.michael@gmail.com"
|
13
|
+
gem.homepage = "http://github.com/grosser/#{project_name}"
|
14
|
+
gem.authors = ["Michael Grosser"]
|
15
|
+
end
|
16
|
+
|
17
|
+
Jeweler::GemcutterTasks.new
|
18
|
+
rescue LoadError
|
19
|
+
puts "Jeweler, or one of its dependencies, is not available. Install it with: gem install jeweler"
|
20
|
+
end
|
data/Readme.md
ADDED
@@ -0,0 +1,39 @@
|
|
1
|
+
Show failing specs instantly. Show passing spec as green dots as usual.
|
2
|
+
|
3
|
+
Output
|
4
|
+
======
|
5
|
+
....................................................*....
|
6
|
+
1: User as seller should be a seller when it has an activated shop
|
7
|
+
-> expected is_seller? to return false, got true
|
8
|
+
..................................................................
|
9
|
+
2: Product validations is invalid with too short title
|
10
|
+
-> expected not: == 1,
|
11
|
+
got: 1
|
12
|
+
............................................................
|
13
|
+
Finished in 650.095614 seconds
|
14
|
+
|
15
|
+
1680 examples, 2 failure, 1 pending
|
16
|
+
|
17
|
+
|
18
|
+
|
19
|
+
Install
|
20
|
+
=======
|
21
|
+
As Gem:
|
22
|
+
gem install rspec-instafail
|
23
|
+
|
24
|
+
# spec/spec.opts
|
25
|
+
--require rspec/instafail
|
26
|
+
--format RSpec::Instafail
|
27
|
+
|
28
|
+
As plugin:
|
29
|
+
script/plugin install git://github.com/grosser/rspec-instafail.git
|
30
|
+
|
31
|
+
# spec/spec.opts
|
32
|
+
--require vendor/plugins/rspec-instafail/lib/rspec/instafail
|
33
|
+
--format RSpec::Instafail
|
34
|
+
|
35
|
+
Author
|
36
|
+
======
|
37
|
+
[Michael Grosser](http://pragmatig.wordpress.com)
|
38
|
+
grosser.michael@gmail.com
|
39
|
+
Hereby placed under public domain, do what you want, just do not hold me accountable...
|
data/VERSION
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
0.1.0
|
@@ -0,0 +1,32 @@
|
|
1
|
+
module RSpec
|
2
|
+
klass = if defined? Spec
|
3
|
+
# rspec 1.x
|
4
|
+
require 'spec/runner/formatter/progress_bar_formatter'
|
5
|
+
class Instafail < Spec::Runner::Formatter::ProgressBarFormatter
|
6
|
+
def example_failed(example, counter, failure)
|
7
|
+
output.puts
|
8
|
+
output.puts red("#{counter}: #{example_group.description} #{example.description}")
|
9
|
+
output.puts " -> #{failure.exception}"
|
10
|
+
output.flush
|
11
|
+
end
|
12
|
+
end
|
13
|
+
Instafail
|
14
|
+
else
|
15
|
+
# rspec 2.x
|
16
|
+
require 'rspec'
|
17
|
+
require 'rspec/core/formatters/progress_formatter'
|
18
|
+
class Instafail < RSpec::Core::Formatters::ProgressFormatter
|
19
|
+
def example_failed(example)
|
20
|
+
@counter ||= 0
|
21
|
+
@counter += 1
|
22
|
+
output.puts
|
23
|
+
output.puts red("#{@counter}: #{example.example_group.description} #{example.description}")
|
24
|
+
output.puts " -> #{example.metadata[:execution_result][:exception_encountered]}"
|
25
|
+
output.flush
|
26
|
+
end
|
27
|
+
end
|
28
|
+
Instafail
|
29
|
+
end
|
30
|
+
|
31
|
+
klass::VERSION = File.read( File.join(File.dirname(__FILE__),'..','..','VERSION') ).strip
|
32
|
+
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
# Generated by jeweler
|
2
|
+
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
|
4
|
+
# -*- encoding: utf-8 -*-
|
5
|
+
|
6
|
+
Gem::Specification.new do |s|
|
7
|
+
s.name = %q{rspec-instafail}
|
8
|
+
s.version = "0.1.0"
|
9
|
+
|
10
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
+
s.authors = ["Michael Grosser"]
|
12
|
+
s.date = %q{2010-08-15}
|
13
|
+
s.email = %q{grosser.michael@gmail.com}
|
14
|
+
s.files = [
|
15
|
+
"Rakefile",
|
16
|
+
"Readme.md",
|
17
|
+
"VERSION",
|
18
|
+
"lib/rspec/instafail.rb",
|
19
|
+
"rspec-instafail.gemspec",
|
20
|
+
"spec/instafail_spec.rb",
|
21
|
+
"spec/rspec_1/Gemfile",
|
22
|
+
"spec/rspec_1/Gemfile.lock",
|
23
|
+
"spec/rspec_1/a_test.rb",
|
24
|
+
"spec/rspec_2/Gemfile",
|
25
|
+
"spec/rspec_2/Gemfile.lock",
|
26
|
+
"spec/rspec_2/a_test.rb"
|
27
|
+
]
|
28
|
+
s.homepage = %q{http://github.com/grosser/rspec-instafail}
|
29
|
+
s.rdoc_options = ["--charset=UTF-8"]
|
30
|
+
s.require_paths = ["lib"]
|
31
|
+
s.rubygems_version = %q{1.3.6}
|
32
|
+
s.summary = %q{Show failing specs instantly}
|
33
|
+
s.test_files = [
|
34
|
+
"spec/rspec_1/a_test.rb",
|
35
|
+
"spec/rspec_2/a_test.rb",
|
36
|
+
"spec/instafail_spec.rb"
|
37
|
+
]
|
38
|
+
|
39
|
+
if s.respond_to? :specification_version then
|
40
|
+
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
41
|
+
s.specification_version = 3
|
42
|
+
|
43
|
+
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
44
|
+
else
|
45
|
+
end
|
46
|
+
else
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
@@ -0,0 +1,13 @@
|
|
1
|
+
describe 'RSpec::Instafail' do
|
2
|
+
it "works correctly with RSpec 1.x" do
|
3
|
+
output = `cd spec/rspec_1 && bundle exec spec a_test.rb --format RSpec::Instafail`
|
4
|
+
output.should include("1: x a\n -> expected: 2,\n got: 1 (using ==)\n\.\.\*\.")
|
5
|
+
output.should =~ /Finished in \d\.\d+ seconds/
|
6
|
+
end
|
7
|
+
|
8
|
+
it "works correctly with RSpec 2.x" do
|
9
|
+
output = `cd spec/rspec_2 && bundle exec rspec a_test.rb --require ../../lib/rspec/instafail --format RSpec::Instafail --no-color`
|
10
|
+
output.should =~ /1: x a\n -> expected: 2,\n got: 1 .*\.\.\*\./m
|
11
|
+
output.should =~ /Finished in \d\.\d+ seconds/
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require File.expand_path(File.join(File.dirname(__FILE__), '..', '..', 'lib', 'rspec', 'instafail'))
|
2
|
+
|
3
|
+
describe 'x' do
|
4
|
+
it 'a' do
|
5
|
+
1.should == 2
|
6
|
+
end
|
7
|
+
|
8
|
+
it 'b' do
|
9
|
+
end
|
10
|
+
|
11
|
+
it 'c' do
|
12
|
+
end
|
13
|
+
|
14
|
+
it 'd' do
|
15
|
+
pending
|
16
|
+
raise
|
17
|
+
end
|
18
|
+
|
19
|
+
it 'e' do
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
GEM
|
2
|
+
remote: http://rubygems.org/
|
3
|
+
specs:
|
4
|
+
diff-lcs (1.1.2)
|
5
|
+
rspec (2.0.0.beta.19)
|
6
|
+
rspec-core (= 2.0.0.beta.19)
|
7
|
+
rspec-expectations (= 2.0.0.beta.19)
|
8
|
+
rspec-mocks (= 2.0.0.beta.19)
|
9
|
+
rspec-core (2.0.0.beta.19)
|
10
|
+
rspec-expectations (2.0.0.beta.19)
|
11
|
+
diff-lcs (>= 1.1.2)
|
12
|
+
rspec-mocks (2.0.0.beta.19)
|
13
|
+
|
14
|
+
PLATFORMS
|
15
|
+
ruby
|
16
|
+
|
17
|
+
DEPENDENCIES
|
18
|
+
rspec (= 2.0.0.beta.19)
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require File.expand_path(File.join(File.dirname(__FILE__), '..', '..', 'lib', 'rspec', 'instafail'))
|
2
|
+
|
3
|
+
describe 'x' do
|
4
|
+
it 'a' do
|
5
|
+
1.should == 2
|
6
|
+
end
|
7
|
+
|
8
|
+
it 'b' do
|
9
|
+
end
|
10
|
+
|
11
|
+
it 'c' do
|
12
|
+
end
|
13
|
+
|
14
|
+
it 'd' do
|
15
|
+
pending
|
16
|
+
raise
|
17
|
+
end
|
18
|
+
|
19
|
+
it 'e' do
|
20
|
+
end
|
21
|
+
end
|
metadata
ADDED
@@ -0,0 +1,75 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: rspec-instafail
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
prerelease: false
|
5
|
+
segments:
|
6
|
+
- 0
|
7
|
+
- 1
|
8
|
+
- 0
|
9
|
+
version: 0.1.0
|
10
|
+
platform: ruby
|
11
|
+
authors:
|
12
|
+
- Michael Grosser
|
13
|
+
autorequire:
|
14
|
+
bindir: bin
|
15
|
+
cert_chain: []
|
16
|
+
|
17
|
+
date: 2010-08-15 00:00:00 +02:00
|
18
|
+
default_executable:
|
19
|
+
dependencies: []
|
20
|
+
|
21
|
+
description:
|
22
|
+
email: grosser.michael@gmail.com
|
23
|
+
executables: []
|
24
|
+
|
25
|
+
extensions: []
|
26
|
+
|
27
|
+
extra_rdoc_files: []
|
28
|
+
|
29
|
+
files:
|
30
|
+
- Rakefile
|
31
|
+
- Readme.md
|
32
|
+
- VERSION
|
33
|
+
- lib/rspec/instafail.rb
|
34
|
+
- rspec-instafail.gemspec
|
35
|
+
- spec/instafail_spec.rb
|
36
|
+
- spec/rspec_1/Gemfile
|
37
|
+
- spec/rspec_1/Gemfile.lock
|
38
|
+
- spec/rspec_1/a_test.rb
|
39
|
+
- spec/rspec_2/Gemfile
|
40
|
+
- spec/rspec_2/Gemfile.lock
|
41
|
+
- spec/rspec_2/a_test.rb
|
42
|
+
has_rdoc: true
|
43
|
+
homepage: http://github.com/grosser/rspec-instafail
|
44
|
+
licenses: []
|
45
|
+
|
46
|
+
post_install_message:
|
47
|
+
rdoc_options:
|
48
|
+
- --charset=UTF-8
|
49
|
+
require_paths:
|
50
|
+
- lib
|
51
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
52
|
+
requirements:
|
53
|
+
- - ">="
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
segments:
|
56
|
+
- 0
|
57
|
+
version: "0"
|
58
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
59
|
+
requirements:
|
60
|
+
- - ">="
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
segments:
|
63
|
+
- 0
|
64
|
+
version: "0"
|
65
|
+
requirements: []
|
66
|
+
|
67
|
+
rubyforge_project:
|
68
|
+
rubygems_version: 1.3.6
|
69
|
+
signing_key:
|
70
|
+
specification_version: 3
|
71
|
+
summary: Show failing specs instantly
|
72
|
+
test_files:
|
73
|
+
- spec/rspec_1/a_test.rb
|
74
|
+
- spec/rspec_2/a_test.rb
|
75
|
+
- spec/instafail_spec.rb
|