growl-rspec 0.0.2 → 3.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rspec +3 -0
- data/README.md +4 -0
- data/examples/.rspec +4 -0
- data/examples/Gemfile +3 -0
- data/examples/spec/example_spec.rb +17 -0
- data/examples/spec/spec_helper.rb +82 -0
- data/growl-rspec.gemspec +1 -1
- data/lib/growl/rspec/formatter.rb +16 -11
- data/lib/growl/rspec/version.rb +1 -1
- data/spec/lib/growl/rspec/formatter_spec.rb +27 -0
- data/spec/spec_helper.rb +81 -0
- metadata +15 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 677939ced7319cf872a799add2611c1938f1299b
|
4
|
+
data.tar.gz: d051521578eb0025d9f360f302e803e1195513e6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 644f75b54a7a275c2d912f93fad42efdea18373a33884dc47a64f26b44c55a2d4c412ba50474ff248c0cbac403cc4642e00adcd8d2ec592c04eba6c5849bef67
|
7
|
+
data.tar.gz: f33185293f7ea7e844749b0566328ab9a9a9679740e81e8291ab28060ad7f131aa5230c72151cf693c69c2273840c9b8a0ae6f1886d3ef94a3e23e5cf46defea
|
data/.rspec
ADDED
data/README.md
CHANGED
data/examples/.rspec
ADDED
data/examples/Gemfile
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
describe 'Some examples' do
|
2
|
+
it 'succeeds' do
|
3
|
+
expect(true).to eq(true)
|
4
|
+
end
|
5
|
+
|
6
|
+
it 'pends' do
|
7
|
+
pending 'a pending example'
|
8
|
+
end
|
9
|
+
|
10
|
+
it 'fails' do
|
11
|
+
expect(false).to eq(true)
|
12
|
+
end
|
13
|
+
|
14
|
+
it 'fails too' do
|
15
|
+
expect(false).to eq(true)
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,82 @@
|
|
1
|
+
$:.unshift File.join(File.dirname(__FILE__), '..', '..', 'lib')
|
2
|
+
require 'growl-rspec'
|
3
|
+
|
4
|
+
# This file was generated by the `rspec --init` command. Conventionally, all
|
5
|
+
# specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
|
6
|
+
# The generated `.rspec` file contains `--require spec_helper` which will cause this
|
7
|
+
# file to always be loaded, without a need to explicitly require it in any files.
|
8
|
+
#
|
9
|
+
# Given that it is always loaded, you are encouraged to keep this file as
|
10
|
+
# light-weight as possible. Requiring heavyweight dependencies from this file
|
11
|
+
# will add to the boot time of your test suite on EVERY test run, even for an
|
12
|
+
# individual file that may not need all of that loaded. Instead, make a
|
13
|
+
# separate helper file that requires this one and then use it only in the specs
|
14
|
+
# that actually need it.
|
15
|
+
#
|
16
|
+
# The `.rspec` file also contains a few flags that are not defaults but that
|
17
|
+
# users commonly want.
|
18
|
+
#
|
19
|
+
# See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
|
20
|
+
RSpec.configure do |config|
|
21
|
+
config.default_formatter = 'Growl::RSpec::Formatter'
|
22
|
+
# The settings below are suggested to provide a good initial experience
|
23
|
+
# with RSpec, but feel free to customize to your heart's content.
|
24
|
+
=begin
|
25
|
+
# These two settings work together to allow you to limit a spec run
|
26
|
+
# to individual examples or groups you care about by tagging them with
|
27
|
+
# `:focus` metadata. When nothing is tagged with `:focus`, all examples
|
28
|
+
# get run.
|
29
|
+
config.filter_run :focus
|
30
|
+
config.run_all_when_everything_filtered = true
|
31
|
+
|
32
|
+
# Many RSpec users commonly either run the entire suite or an individual
|
33
|
+
# file, and it's useful to allow more verbose output when running an
|
34
|
+
# individual spec file.
|
35
|
+
if config.files_to_run.one?
|
36
|
+
# Use the documentation formatter for detailed output,
|
37
|
+
# unless a formatter has already been configured
|
38
|
+
# (e.g. via a command-line flag).
|
39
|
+
config.default_formatter = 'doc'
|
40
|
+
end
|
41
|
+
|
42
|
+
# Print the 10 slowest examples and example groups at the
|
43
|
+
# end of the spec run, to help surface which specs are running
|
44
|
+
# particularly slow.
|
45
|
+
config.profile_examples = 10
|
46
|
+
|
47
|
+
# Run specs in random order to surface order dependencies. If you find an
|
48
|
+
# order dependency and want to debug it, you can fix the order by providing
|
49
|
+
# the seed, which is printed after each run.
|
50
|
+
# --seed 1234
|
51
|
+
config.order = :random
|
52
|
+
|
53
|
+
# Seed global randomization in this process using the `--seed` CLI option.
|
54
|
+
# Setting this allows you to use `--seed` to deterministically reproduce
|
55
|
+
# test failures related to randomization by passing the same `--seed` value
|
56
|
+
# as the one that triggered the failure.
|
57
|
+
Kernel.srand config.seed
|
58
|
+
|
59
|
+
# rspec-expectations config goes here. You can use an alternate
|
60
|
+
# assertion/expectation library such as wrong or the stdlib/minitest
|
61
|
+
# assertions if you prefer.
|
62
|
+
config.expect_with :rspec do |expectations|
|
63
|
+
# Enable only the newer, non-monkey-patching expect syntax.
|
64
|
+
# For more details, see:
|
65
|
+
# - http://myronmars.to/n/dev-blog/2012/06/rspecs-new-expectation-syntax
|
66
|
+
expectations.syntax = :expect
|
67
|
+
end
|
68
|
+
|
69
|
+
# rspec-mocks config goes here. You can use an alternate test double
|
70
|
+
# library (such as bogus or mocha) by changing the `mock_with` option here.
|
71
|
+
config.mock_with :rspec do |mocks|
|
72
|
+
# Enable only the newer, non-monkey-patching expect syntax.
|
73
|
+
# For more details, see:
|
74
|
+
# - http://teaisaweso.me/blog/2013/05/27/rspecs-new-message-expectation-syntax/
|
75
|
+
mocks.syntax = :expect
|
76
|
+
|
77
|
+
# Prevents you from mocking or stubbing a method that does not exist on
|
78
|
+
# a real object. This is generally recommended.
|
79
|
+
mocks.verify_partial_doubles = true
|
80
|
+
end
|
81
|
+
=end
|
82
|
+
end
|
data/growl-rspec.gemspec
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
require 'rspec/core/formatters
|
1
|
+
require 'rspec/core/formatters'
|
2
2
|
|
3
3
|
module Growl
|
4
4
|
module RSpec
|
@@ -20,7 +20,8 @@ module Growl
|
|
20
20
|
# :host => 'your.growl.host'
|
21
21
|
# }
|
22
22
|
#
|
23
|
-
class Formatter
|
23
|
+
class Formatter
|
24
|
+
::RSpec::Core::Formatters.register self, :dump_failures, :dump_summary
|
24
25
|
|
25
26
|
# the formatters default config hash
|
26
27
|
DEFAULT_CONFIG = {
|
@@ -47,31 +48,35 @@ module Growl
|
|
47
48
|
@@_growlnotify_config ||= {}
|
48
49
|
end
|
49
50
|
|
51
|
+
def initialize output
|
52
|
+
@output = output
|
53
|
+
end
|
54
|
+
|
50
55
|
# hook when spec failed
|
51
|
-
def dump_failures
|
52
|
-
return if failed_examples.empty?
|
56
|
+
def dump_failures(examples_notification)
|
57
|
+
return if examples_notification.failed_examples.empty?
|
53
58
|
if self.class.config[:growl_failures]
|
54
59
|
|
55
|
-
msg = failed_examples.each_with_index.map do |example, idx|
|
60
|
+
msg = examples_notification.failed_examples.each_with_index.map do |example, idx|
|
56
61
|
["#{idx+1}. it #{example.description}",
|
57
62
|
example.metadata[:execution_result][:exception]]
|
58
63
|
end.flatten.join("\n\n")
|
59
64
|
|
60
65
|
::Growl.notify_warning msg, {
|
61
|
-
:title => "#{failed_examples.size} specs failed"
|
66
|
+
:title => "#{examples_notification.failed_examples.size} specs failed"
|
62
67
|
}.merge(self.class.growlnotify_config)
|
63
68
|
end
|
64
69
|
end
|
65
70
|
|
66
71
|
# hook when all specs ran
|
67
|
-
def dump_summary(
|
68
|
-
msg = "#{example_count} specs in total (#{pending_count} pending). "\
|
69
|
-
"Consumed #{duration.round(1)}s"
|
72
|
+
def dump_summary(summary)
|
73
|
+
msg = "#{summary.example_count} specs in total (#{summary.pending_count} pending). "\
|
74
|
+
"Consumed #{summary.duration.round(1)}s"
|
70
75
|
|
71
|
-
title = if failure_count == 0
|
76
|
+
title = if summary.failure_count == 0
|
72
77
|
"All specs passed."
|
73
78
|
else
|
74
|
-
"#{failure_count} specs failed!"
|
79
|
+
"#{summary.failure_count} specs failed!"
|
75
80
|
end
|
76
81
|
|
77
82
|
::Growl.notify_info msg, { :title => title }.merge(self.class.growlnotify_config)
|
data/lib/growl/rspec/version.rb
CHANGED
@@ -0,0 +1,27 @@
|
|
1
|
+
describe Growl::RSpec::Formatter do
|
2
|
+
it 'dumps failures' do
|
3
|
+
expect(::Growl).to receive(:notify).with(
|
4
|
+
"1. it foo\n\nbar",
|
5
|
+
{:title=>"1 specs failed",
|
6
|
+
:image=>kind_of(String)})
|
7
|
+
example = double('example')
|
8
|
+
example.stub('description') { 'foo' }
|
9
|
+
example.stub('metadata') { {:execution_result => {:exception => 'bar'}} }
|
10
|
+
examples_notification = double('examples_notification')
|
11
|
+
examples_notification.stub('failed_examples') { [example] }
|
12
|
+
subject.dump_failures examples_notification
|
13
|
+
end
|
14
|
+
|
15
|
+
it 'dumps summary' do
|
16
|
+
expect(::Growl).to receive(:notify).with(
|
17
|
+
"10 specs in total (1 pending). Consumed 5.5s", {
|
18
|
+
:title=>"5 specs failed!",
|
19
|
+
:image=>kind_of(String)})
|
20
|
+
summary = double('summary')
|
21
|
+
summary.stub('duration') { 5.5 }
|
22
|
+
summary.stub('example_count') { 10 }
|
23
|
+
summary.stub('pending_count') { 1 }
|
24
|
+
summary.stub('failure_count') { 5 }
|
25
|
+
subject.dump_summary summary
|
26
|
+
end
|
27
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,81 @@
|
|
1
|
+
$:.unshift File.join(File.dirname(__FILE__), '..', 'lib')
|
2
|
+
require 'growl-rspec'
|
3
|
+
|
4
|
+
# This file was generated by the `rspec --init` command. Conventionally, all
|
5
|
+
# specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
|
6
|
+
# The generated `.rspec` file contains `--require spec_helper` which will cause this
|
7
|
+
# file to always be loaded, without a need to explicitly require it in any files.
|
8
|
+
#
|
9
|
+
# Given that it is always loaded, you are encouraged to keep this file as
|
10
|
+
# light-weight as possible. Requiring heavyweight dependencies from this file
|
11
|
+
# will add to the boot time of your test suite on EVERY test run, even for an
|
12
|
+
# individual file that may not need all of that loaded. Instead, make a
|
13
|
+
# separate helper file that requires this one and then use it only in the specs
|
14
|
+
# that actually need it.
|
15
|
+
#
|
16
|
+
# The `.rspec` file also contains a few flags that are not defaults but that
|
17
|
+
# users commonly want.
|
18
|
+
#
|
19
|
+
# See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
|
20
|
+
RSpec.configure do |config|
|
21
|
+
# The settings below are suggested to provide a good initial experience
|
22
|
+
# with RSpec, but feel free to customize to your heart's content.
|
23
|
+
=begin
|
24
|
+
# These two settings work together to allow you to limit a spec run
|
25
|
+
# to individual examples or groups you care about by tagging them with
|
26
|
+
# `:focus` metadata. When nothing is tagged with `:focus`, all examples
|
27
|
+
# get run.
|
28
|
+
config.filter_run :focus
|
29
|
+
config.run_all_when_everything_filtered = true
|
30
|
+
|
31
|
+
# Many RSpec users commonly either run the entire suite or an individual
|
32
|
+
# file, and it's useful to allow more verbose output when running an
|
33
|
+
# individual spec file.
|
34
|
+
if config.files_to_run.one?
|
35
|
+
# Use the documentation formatter for detailed output,
|
36
|
+
# unless a formatter has already been configured
|
37
|
+
# (e.g. via a command-line flag).
|
38
|
+
config.default_formatter = 'doc'
|
39
|
+
end
|
40
|
+
|
41
|
+
# Print the 10 slowest examples and example groups at the
|
42
|
+
# end of the spec run, to help surface which specs are running
|
43
|
+
# particularly slow.
|
44
|
+
config.profile_examples = 10
|
45
|
+
|
46
|
+
# Run specs in random order to surface order dependencies. If you find an
|
47
|
+
# order dependency and want to debug it, you can fix the order by providing
|
48
|
+
# the seed, which is printed after each run.
|
49
|
+
# --seed 1234
|
50
|
+
config.order = :random
|
51
|
+
|
52
|
+
# Seed global randomization in this process using the `--seed` CLI option.
|
53
|
+
# Setting this allows you to use `--seed` to deterministically reproduce
|
54
|
+
# test failures related to randomization by passing the same `--seed` value
|
55
|
+
# as the one that triggered the failure.
|
56
|
+
Kernel.srand config.seed
|
57
|
+
|
58
|
+
# rspec-expectations config goes here. You can use an alternate
|
59
|
+
# assertion/expectation library such as wrong or the stdlib/minitest
|
60
|
+
# assertions if you prefer.
|
61
|
+
config.expect_with :rspec do |expectations|
|
62
|
+
# Enable only the newer, non-monkey-patching expect syntax.
|
63
|
+
# For more details, see:
|
64
|
+
# - http://myronmars.to/n/dev-blog/2012/06/rspecs-new-expectation-syntax
|
65
|
+
expectations.syntax = :expect
|
66
|
+
end
|
67
|
+
|
68
|
+
# rspec-mocks config goes here. You can use an alternate test double
|
69
|
+
# library (such as bogus or mocha) by changing the `mock_with` option here.
|
70
|
+
config.mock_with :rspec do |mocks|
|
71
|
+
# Enable only the newer, non-monkey-patching expect syntax.
|
72
|
+
# For more details, see:
|
73
|
+
# - http://teaisaweso.me/blog/2013/05/27/rspecs-new-message-expectation-syntax/
|
74
|
+
mocks.syntax = :expect
|
75
|
+
|
76
|
+
# Prevents you from mocking or stubbing a method that does not exist on
|
77
|
+
# a real object. This is generally recommended.
|
78
|
+
mocks.verify_partial_doubles = true
|
79
|
+
end
|
80
|
+
=end
|
81
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: growl-rspec
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 3.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- dpree
|
@@ -14,16 +14,16 @@ dependencies:
|
|
14
14
|
name: rspec
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ~>
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '0'
|
19
|
+
version: '3.0'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - ~>
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '0'
|
26
|
+
version: '3.0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: growl
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -46,15 +46,22 @@ extensions: []
|
|
46
46
|
extra_rdoc_files: []
|
47
47
|
files:
|
48
48
|
- .gitignore
|
49
|
+
- .rspec
|
49
50
|
- Gemfile
|
50
51
|
- MIT-LICENSE
|
51
52
|
- README.md
|
52
53
|
- Rakefile
|
54
|
+
- examples/.rspec
|
55
|
+
- examples/Gemfile
|
56
|
+
- examples/spec/example_spec.rb
|
57
|
+
- examples/spec/spec_helper.rb
|
53
58
|
- growl-rspec.gemspec
|
54
59
|
- lib/growl-rspec.rb
|
55
60
|
- lib/growl/rspec.rb
|
56
61
|
- lib/growl/rspec/formatter.rb
|
57
62
|
- lib/growl/rspec/version.rb
|
63
|
+
- spec/lib/growl/rspec/formatter_spec.rb
|
64
|
+
- spec/spec_helper.rb
|
58
65
|
homepage: https://github.com/dpree/growl-rspec
|
59
66
|
licenses: []
|
60
67
|
metadata: {}
|
@@ -78,4 +85,6 @@ rubygems_version: 2.0.3
|
|
78
85
|
signing_key:
|
79
86
|
specification_version: 4
|
80
87
|
summary: Publishing RSpec results via Growl
|
81
|
-
test_files:
|
88
|
+
test_files:
|
89
|
+
- spec/lib/growl/rspec/formatter_spec.rb
|
90
|
+
- spec/spec_helper.rb
|