capybara-screenshot 1.0.11 → 1.0.12
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.
- checksums.yaml +5 -13
- data/.gitignore +2 -0
- data/CHANGELOG.md +10 -1
- data/Gemfile +1 -0
- data/README.md +11 -1
- data/lib/capybara-screenshot.rb +9 -7
- data/lib/capybara-screenshot/capybara.rb +5 -7
- data/lib/capybara-screenshot/cucumber.rb +3 -1
- data/lib/capybara-screenshot/minitest.rb +12 -3
- data/lib/capybara-screenshot/saver.rb +24 -0
- data/lib/capybara-screenshot/version.rb +1 -1
- data/spec/cucumber/cucumber_spec.rb +7 -7
- data/spec/cucumber/support/env.rb +1 -1
- data/spec/feature/minitest_spec.rb +5 -5
- data/spec/feature/testunit_spec.rb +5 -5
- data/spec/rspec/rspec_spec.rb +11 -12
- data/spec/spec_helper.rb +9 -4
- data/spec/spinach/spinach_spec.rb +5 -5
- data/spec/support/aruba.rb +3 -0
- data/spec/support/common_setup.rb +2 -2
- data/spec/unit/capybara-screenshot_spec.rb +7 -0
- data/spec/unit/saver_spec.rb +1 -1
- metadata +31 -29
checksums.yaml
CHANGED
@@ -1,15 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
|
5
|
-
data.tar.gz: !binary |-
|
6
|
-
NGUxYzEyYTc1MTcwMzBiOGJhMTA0ZjljMDZhNzEzZDA0OTMyNjMwNA==
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 0fb2ac718fb87183d57ce6b852dcd9a7f21d908d
|
4
|
+
data.tar.gz: 71177ec4576776a6ed0368cecfbb335e52e78457
|
7
5
|
SHA512:
|
8
|
-
metadata.gz:
|
9
|
-
|
10
|
-
YTA5N2UyZDJmN2ExZmU2ZTVkOGU5MTg0MjU2OGI3NjFkODY2NzU2MzhjZDJh
|
11
|
-
ODZkNmQxYmViNjE1NTcyM2Q2NmEwN2ZlNzQyNWZjNjBiYzllMDc=
|
12
|
-
data.tar.gz: !binary |-
|
13
|
-
NGUyZDFiNWQyZjYyZGIwM2U2MDNlMTY1NWMxOTg0NWM3ZTIxMTFlMTNhMjJj
|
14
|
-
Y2E3ZmMzMjY3M2RjNmMzNDQ4ZTZjODdkMjJiNDU2MGU0NWJlMDE4MTUwZjli
|
15
|
-
NmNjNjU1MzFjMjEzMzg5ZGFhMzk2ZjFmNmI5YWQ5MmRiNjdlOWY=
|
6
|
+
metadata.gz: 78fcfead269c5570bfa3309d2263ca664359aa8ede1ce21e3a61af8bcb2ca9ca4f3b488b0bbc02cfc4da75ae6b35d0132977cf1e069ef120d3e6b651476b2a6c
|
7
|
+
data.tar.gz: 883369b31dc3b1e0ae3e1aa477892638f5adb745e9a53ff4ea0a49f8dc2b5a1782bbe59373afbe79063ed003e452dcd5eae61119ff5a7a94b97bf84614035b1c
|
data/.gitignore
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,4 +1,13 @@
|
|
1
|
-
|
1
|
+
29 March 2016 - 1.0.11 -> 1.0.12
|
2
|
+
|
3
|
+
* [Aruba upgrade - passing CI](https://github.com/mattheworiordan/capybara-screenshot/pull/156)
|
4
|
+
* [imgcat support](https://github.com/mattheworiordan/capybara-screenshot/pull/153)
|
5
|
+
* [Fix for capaybara root when Rails not defined](https://github.com/mattheworiordan/capybara-screenshot/pull/139)
|
6
|
+
* [Fix using_session_with_screenshot](https://github.com/mattheworiordan/capybara-screenshot/pull/132)
|
7
|
+
* [Skip screenshot on skipped test](https://github.com/mattheworiordan/capybara-screenshot/pull/131)
|
8
|
+
* [Don't output screenshot paths if not saved](https://github.com/mattheworiordan/capybara-screenshot/pull/128)
|
9
|
+
|
10
|
+
22 July 2015 - 1.0.10 -> 1.0.11
|
2
11
|
|
3
12
|
* [Support for Fuubar reporter](https://github.com/mattheworiordan/capybara-screenshot/pull/137)
|
4
13
|
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -59,6 +59,15 @@ Typically in 'test/test_helper.rb', please add:
|
|
59
59
|
require 'capybara-screenshot/minitest'
|
60
60
|
```
|
61
61
|
|
62
|
+
Also, consider adding `include Capybara::Screenshot::MiniTestPlugin` to any test classes that fail. For example, to capture screenshots for all failing integration tests in minitest-rails, try something like:
|
63
|
+
|
64
|
+
```ruby
|
65
|
+
class ActionDispatch::IntegrationTest
|
66
|
+
include Capybara::Screenshot::MiniTestPlugin
|
67
|
+
# ...
|
68
|
+
end
|
69
|
+
```
|
70
|
+
|
62
71
|
#### Test::Unit
|
63
72
|
|
64
73
|
Typically in 'test/test_helper.rb', please add:
|
@@ -157,7 +166,8 @@ Capybara::Screenshot.append_timestamp = false
|
|
157
166
|
|
158
167
|
Custom screenshot directory
|
159
168
|
--------------------------
|
160
|
-
By default screenshots are saved into `$APPLICATION_ROOT/tmp/capybara`.
|
169
|
+
By default, when running under Rails, Sinatra, and Padrino, screenshots are saved into `$APPLICATION_ROOT/tmp/capybara`. Otherwise, they're saved under `Dir.pwd`.
|
170
|
+
If you want to customize the location, override the file path as:
|
161
171
|
|
162
172
|
```ruby
|
163
173
|
Capybara.save_and_open_page_path = "/file/path"
|
data/lib/capybara-screenshot.rb
CHANGED
@@ -27,17 +27,19 @@ module Capybara
|
|
27
27
|
|
28
28
|
def self.screenshot_and_save_page
|
29
29
|
saver = Saver.new(Capybara, Capybara.page)
|
30
|
-
saver.save
|
31
|
-
|
30
|
+
if saver.save
|
31
|
+
{:html => saver.html_path, :image => saver.screenshot_path}
|
32
|
+
end
|
32
33
|
end
|
33
34
|
|
34
35
|
def self.screenshot_and_open_image
|
35
36
|
require "launchy"
|
36
37
|
|
37
38
|
saver = Saver.new(Capybara, Capybara.page, false)
|
38
|
-
saver.save
|
39
|
-
|
40
|
-
|
39
|
+
if saver.save
|
40
|
+
Launchy.open saver.screenshot_path
|
41
|
+
{:html => nil, :image => saver.screenshot_path}
|
42
|
+
end
|
41
43
|
end
|
42
44
|
|
43
45
|
class << self
|
@@ -52,10 +54,10 @@ module Capybara
|
|
52
54
|
end
|
53
55
|
|
54
56
|
def self.capybara_root
|
55
|
-
@capybara_root ||= if defined?(::Rails)
|
57
|
+
@capybara_root ||= if defined?(::Rails) && Rails.root.present?
|
56
58
|
::Rails.root.join capybara_tmp_path
|
57
59
|
elsif defined?(Padrino)
|
58
|
-
Padrino.root
|
60
|
+
File.expand_path(capybara_tmp_path, Padrino.root)
|
59
61
|
elsif defined?(Sinatra)
|
60
62
|
File.join(Sinatra::Application.root, capybara_tmp_path)
|
61
63
|
else
|
@@ -13,13 +13,11 @@ module Capybara
|
|
13
13
|
Capybara::Screenshot.screenshot_and_open_image
|
14
14
|
end
|
15
15
|
|
16
|
-
def using_session_with_screenshot(name)
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
Capybara::Screenshot.final_session_name = original_session_name
|
22
|
-
end
|
16
|
+
def using_session_with_screenshot(name,&blk)
|
17
|
+
original_session_name = Capybara.session_name
|
18
|
+
Capybara::Screenshot.final_session_name = name
|
19
|
+
using_session_without_screenshot(name,&blk)
|
20
|
+
Capybara::Screenshot.final_session_name = original_session_name
|
23
21
|
end
|
24
22
|
|
25
23
|
alias_method :using_session_without_screenshot, :using_session
|
@@ -1,4 +1,5 @@
|
|
1
1
|
require "capybara-screenshot"
|
2
|
+
require 'mkmf'
|
2
3
|
|
3
4
|
Before do |scenario|
|
4
5
|
Capybara::Screenshot.final_session_name = nil
|
@@ -18,8 +19,9 @@ After do |scenario|
|
|
18
19
|
require "base64"
|
19
20
|
#encode the image into it's base64 representation
|
20
21
|
image = open(saver.screenshot_path, 'rb') {|io|io.read}
|
21
|
-
|
22
|
+
saver.display_image
|
22
23
|
#this will embed the image in the HTML report, embed() is defined in cucumber
|
24
|
+
encoded_img = Base64.encode64(image)
|
23
25
|
embed(encoded_img, 'image/png;base64', "Screenshot of the error")
|
24
26
|
end
|
25
27
|
end
|
@@ -9,7 +9,7 @@ module Capybara::Screenshot::MiniTestPlugin
|
|
9
9
|
def after_teardown
|
10
10
|
super
|
11
11
|
if self.class.ancestors.map(&:to_s).include?('ActionDispatch::IntegrationTest')
|
12
|
-
if Capybara::Screenshot.autosave_on_failure && !passed?
|
12
|
+
if Capybara::Screenshot.autosave_on_failure && !passed? && !skipped?
|
13
13
|
Capybara.using_session(Capybara::Screenshot.final_session_name) do
|
14
14
|
filename_prefix = Capybara::Screenshot.filename_prefix_for(:minitest, self)
|
15
15
|
|
@@ -22,6 +22,15 @@ module Capybara::Screenshot::MiniTestPlugin
|
|
22
22
|
end
|
23
23
|
end
|
24
24
|
|
25
|
-
|
26
|
-
|
25
|
+
begin
|
26
|
+
Minitest.const_get('Test')
|
27
|
+
class Minitest::Test
|
28
|
+
include Capybara::Screenshot::MiniTestPlugin
|
29
|
+
end
|
30
|
+
rescue NameError => e
|
31
|
+
class MiniTest::Unit::TestCase
|
32
|
+
include Capybara::Screenshot::MiniTestPlugin
|
33
|
+
end
|
27
34
|
end
|
35
|
+
|
36
|
+
|
@@ -81,10 +81,34 @@ module Capybara
|
|
81
81
|
output "Image screenshot: #{screenshot_path}" if screenshot_saved?
|
82
82
|
end
|
83
83
|
|
84
|
+
# Print image to screen, if imgcat is available
|
85
|
+
def display_image
|
86
|
+
system("#{imgcat} #{screenshot_path}") unless imgcat.nil?
|
87
|
+
end
|
88
|
+
|
84
89
|
private
|
90
|
+
|
85
91
|
def output(message)
|
86
92
|
puts " #{CapybaraScreenshot::Helpers.yellow(message)}"
|
87
93
|
end
|
94
|
+
|
95
|
+
def imgcat
|
96
|
+
@imgcat ||= which('imgcat')
|
97
|
+
end
|
98
|
+
|
99
|
+
# Cross-platform way of finding an executable in the $PATH.
|
100
|
+
#
|
101
|
+
# which('ruby') #=> /usr/bin/ruby
|
102
|
+
def which(cmd)
|
103
|
+
exts = ENV['PATHEXT'] ? ENV['PATHEXT'].split(';') : ['']
|
104
|
+
ENV['PATH'].split(File::PATH_SEPARATOR).each do |path|
|
105
|
+
exts.each { |ext|
|
106
|
+
exe = File.join(path, "#{cmd}#{ext}")
|
107
|
+
return exe if File.executable?(exe) && !File.directory?(exe)
|
108
|
+
}
|
109
|
+
end
|
110
|
+
return nil
|
111
|
+
end
|
88
112
|
end
|
89
113
|
end
|
90
114
|
end
|
@@ -4,14 +4,14 @@ describe "Using Capybara::Screenshot with Cucumber" do
|
|
4
4
|
include CommonSetup
|
5
5
|
|
6
6
|
before do
|
7
|
-
|
7
|
+
setup_aruba
|
8
8
|
end
|
9
9
|
|
10
|
-
let(:cmd) { '
|
10
|
+
let(:cmd) { 'cucumber' }
|
11
11
|
|
12
12
|
def run_failing_case(failure_message, code)
|
13
13
|
run_case code
|
14
|
-
expect(
|
14
|
+
expect(last_command_started.output).to match(failure_message)
|
15
15
|
end
|
16
16
|
|
17
17
|
def run_case(code, options = {})
|
@@ -32,7 +32,7 @@ describe "Using Capybara::Screenshot with Cucumber" do
|
|
32
32
|
|
33
33
|
run_simple_with_retry cmd, false
|
34
34
|
|
35
|
-
expect(
|
35
|
+
expect(last_command_started.output).to_not match(/failed|failure/i) if options[:assert_all_passed]
|
36
36
|
end
|
37
37
|
|
38
38
|
it 'saves a screenshot on failure' do
|
@@ -42,7 +42,7 @@ describe "Using Capybara::Screenshot with Cucumber" do
|
|
42
42
|
Given I visit "/"
|
43
43
|
And I click on a missing link
|
44
44
|
CUCUMBER
|
45
|
-
|
45
|
+
expect('tmp/my_screenshot.html').to have_file_content('This is the root page')
|
46
46
|
end
|
47
47
|
|
48
48
|
it 'saves a screenshot on an error' do
|
@@ -52,7 +52,7 @@ describe "Using Capybara::Screenshot with Cucumber" do
|
|
52
52
|
Given I visit "/"
|
53
53
|
And I trigger an unhandled exception
|
54
54
|
CUCUMBER
|
55
|
-
|
55
|
+
expect('tmp/my_screenshot.html').to have_file_content('This is the root page')
|
56
56
|
end
|
57
57
|
|
58
58
|
it 'saves a screenshot for the correct session for failures using_session' do
|
@@ -62,7 +62,7 @@ describe "Using Capybara::Screenshot with Cucumber" do
|
|
62
62
|
Given I visit "/"
|
63
63
|
And I click on a missing link on a different page in a different session
|
64
64
|
CUCUMBER
|
65
|
-
|
65
|
+
expect('tmp/my_screenshot.html').to have_file_content('This is a different page')
|
66
66
|
end
|
67
67
|
|
68
68
|
context 'pruning' do
|
@@ -2,7 +2,7 @@ require 'capybara/cucumber'
|
|
2
2
|
require 'capybara-screenshot'
|
3
3
|
require 'capybara-screenshot/cucumber'
|
4
4
|
require 'aruba/cucumber'
|
5
|
-
require 'aruba/jruby'
|
5
|
+
require 'aruba/config/jruby'
|
6
6
|
|
7
7
|
Capybara::Screenshot.register_filename_prefix_formatter(:cucumber) do |fault|
|
8
8
|
'my_screenshot'
|
@@ -4,7 +4,7 @@ describe "Using Capybara::Screenshot with MiniTest" do
|
|
4
4
|
include CommonSetup
|
5
5
|
|
6
6
|
before do
|
7
|
-
|
7
|
+
setup_aruba
|
8
8
|
end
|
9
9
|
|
10
10
|
def run_failing_case(code)
|
@@ -27,7 +27,7 @@ describe "Using Capybara::Screenshot with MiniTest" do
|
|
27
27
|
|
28
28
|
cmd = 'bundle exec ruby test_failure.rb'
|
29
29
|
run_simple_with_retry cmd, false
|
30
|
-
expect(
|
30
|
+
expect(last_command_started.output).to include %q{Unable to find link or button "you'll never find me"}
|
31
31
|
end
|
32
32
|
|
33
33
|
it 'saves a screenshot on failure' do
|
@@ -46,7 +46,7 @@ describe "Using Capybara::Screenshot with MiniTest" do
|
|
46
46
|
end
|
47
47
|
end
|
48
48
|
RUBY
|
49
|
-
|
49
|
+
expect('tmp/my_screenshot.html').to have_file_content('This is the root page')
|
50
50
|
end
|
51
51
|
|
52
52
|
it "does not save a screenshot for tests that don't inherit from ActionDispatch::IntegrationTest" do
|
@@ -61,7 +61,7 @@ describe "Using Capybara::Screenshot with MiniTest" do
|
|
61
61
|
end
|
62
62
|
end
|
63
63
|
RUBY
|
64
|
-
|
64
|
+
expect('tmp/my_screenshot.html').to_not be_an_existing_file
|
65
65
|
end
|
66
66
|
|
67
67
|
it 'saves a screenshot for the correct session for failures using_session' do
|
@@ -84,7 +84,7 @@ describe "Using Capybara::Screenshot with MiniTest" do
|
|
84
84
|
end
|
85
85
|
end
|
86
86
|
RUBY
|
87
|
-
|
87
|
+
expect('tmp/my_screenshot.html').to have_file_content('This is a different page')
|
88
88
|
end
|
89
89
|
|
90
90
|
it 'prunes screenshots on failure' do
|
@@ -4,7 +4,7 @@ describe "Using Capybara::Screenshot with Test::Unit" do
|
|
4
4
|
include CommonSetup
|
5
5
|
|
6
6
|
before do
|
7
|
-
|
7
|
+
setup_aruba
|
8
8
|
end
|
9
9
|
|
10
10
|
def run_failing_case(code, integration_path = '.')
|
@@ -33,7 +33,7 @@ describe "Using Capybara::Screenshot with Test::Unit" do
|
|
33
33
|
|
34
34
|
cmd = "bundle exec ruby #{integration_path}/test_failure.rb"
|
35
35
|
run_simple_with_retry cmd, false
|
36
|
-
expect(
|
36
|
+
expect(last_command_started.output).to include %q{Unable to find link or button "you'll never find me"}
|
37
37
|
end
|
38
38
|
|
39
39
|
it "saves a screenshot on failure for any test in path 'test/integration'" do
|
@@ -42,7 +42,7 @@ describe "Using Capybara::Screenshot with Test::Unit" do
|
|
42
42
|
assert(page.body.include?('This is the root page'))
|
43
43
|
click_on "you'll never find me"
|
44
44
|
RUBY
|
45
|
-
|
45
|
+
expect('tmp/my_screenshot.html').to have_file_content('This is the root page')
|
46
46
|
end
|
47
47
|
|
48
48
|
it "does not generate a screenshot for tests that are not in 'test/integration'" do
|
@@ -52,7 +52,7 @@ describe "Using Capybara::Screenshot with Test::Unit" do
|
|
52
52
|
click_on "you'll never find me"
|
53
53
|
RUBY
|
54
54
|
|
55
|
-
|
55
|
+
expect('tmp/my_screenshot.html').to_not be_an_existing_file
|
56
56
|
end
|
57
57
|
|
58
58
|
it 'saves a screenshot for the correct session for failures using_session' do
|
@@ -65,7 +65,7 @@ describe "Using Capybara::Screenshot with Test::Unit" do
|
|
65
65
|
click_on "you'll never find me"
|
66
66
|
end
|
67
67
|
RUBY
|
68
|
-
|
68
|
+
expect('tmp/my_screenshot.html').to have_file_content('This is a different page')
|
69
69
|
end
|
70
70
|
|
71
71
|
it 'prunes screenshots on failure' do
|
data/spec/rspec/rspec_spec.rb
CHANGED
@@ -1,21 +1,20 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
|
-
describe Capybara::Screenshot::RSpec do
|
3
|
+
describe Capybara::Screenshot::RSpec, :type => :aruba do
|
4
4
|
describe "used with RSpec" do
|
5
5
|
include CommonSetup
|
6
6
|
|
7
7
|
before do
|
8
|
-
|
8
|
+
setup_aruba
|
9
|
+
Capybara.save_and_open_page_path = expand_path('tmp')
|
9
10
|
end
|
10
11
|
|
11
12
|
def run_failing_case(code, error_message, format=nil)
|
12
13
|
run_case code, format: format
|
13
|
-
|
14
|
-
cmd = cmd_with_format(format)
|
15
14
|
if error_message.kind_of?(Regexp)
|
16
|
-
expect(
|
15
|
+
expect(last_command_started.output).to match(error_message)
|
17
16
|
else
|
18
|
-
expect(
|
17
|
+
expect(last_command_started.output).to include(error_message)
|
19
18
|
end
|
20
19
|
end
|
21
20
|
|
@@ -35,11 +34,11 @@ describe Capybara::Screenshot::RSpec do
|
|
35
34
|
cmd = cmd_with_format(options[:format])
|
36
35
|
run_simple_with_retry cmd, false
|
37
36
|
|
38
|
-
expect(
|
37
|
+
expect(last_command_started.output).to match('0 failures') if options[:assert_all_passed]
|
39
38
|
end
|
40
39
|
|
41
40
|
def cmd_with_format(format)
|
42
|
-
"
|
41
|
+
"rspec #{"--format #{format} " if format}#{expand_path('spec/test_failure.rb')}"
|
43
42
|
end
|
44
43
|
|
45
44
|
it 'saves a screenshot on failure' do
|
@@ -52,7 +51,7 @@ describe Capybara::Screenshot::RSpec do
|
|
52
51
|
end
|
53
52
|
end
|
54
53
|
RUBY
|
55
|
-
|
54
|
+
expect(expand_path('tmp/screenshot.html')).to_not have_file_content('This is the root page')
|
56
55
|
end
|
57
56
|
|
58
57
|
formatters = {
|
@@ -76,7 +75,7 @@ describe Capybara::Screenshot::RSpec do
|
|
76
75
|
end
|
77
76
|
end
|
78
77
|
RUBY
|
79
|
-
|
78
|
+
expect('tmp/screenshot.html').to have_file_content('This is the root page')
|
80
79
|
end
|
81
80
|
end
|
82
81
|
|
@@ -88,7 +87,7 @@ describe Capybara::Screenshot::RSpec do
|
|
88
87
|
end
|
89
88
|
end
|
90
89
|
RUBY
|
91
|
-
|
90
|
+
expect('tmp/screenshot.html').to_not be_an_existing_file
|
92
91
|
end
|
93
92
|
|
94
93
|
it 'saves a screenshot for the correct session for failures using_session' do
|
@@ -105,7 +104,7 @@ describe Capybara::Screenshot::RSpec do
|
|
105
104
|
end
|
106
105
|
end
|
107
106
|
RUBY
|
108
|
-
|
107
|
+
expect('tmp/screenshot.html').to have_file_content(/is/)
|
109
108
|
end
|
110
109
|
|
111
110
|
context 'pruning' do
|
data/spec/spec_helper.rb
CHANGED
@@ -10,10 +10,6 @@ require 'rspec'
|
|
10
10
|
require 'capybara-screenshot'
|
11
11
|
require 'capybara-screenshot/rspec'
|
12
12
|
require 'timecop'
|
13
|
-
require 'aruba/api'
|
14
|
-
require 'aruba/jruby'
|
15
|
-
|
16
|
-
Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
|
17
13
|
|
18
14
|
RSpec.configure do |config|
|
19
15
|
if RSpec::Core::Version::STRING.to_i == 2
|
@@ -27,3 +23,12 @@ RSpec.configure do |config|
|
|
27
23
|
end
|
28
24
|
|
29
25
|
Capybara.app = lambda { |env| [200, {}, ["OK"]] }
|
26
|
+
$LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
|
27
|
+
|
28
|
+
if RUBY_VERSION < '1.9.3'
|
29
|
+
::Dir.glob(::File.expand_path('../support/*.rb', __FILE__)).each { |f| require File.join(File.dirname(f), File.basename(f, '.rb')) }
|
30
|
+
::Dir.glob(::File.expand_path('../support/**/*.rb', __FILE__)).each { |f| require File.join(File.dirname(f), File.basename(f, '.rb')) }
|
31
|
+
else
|
32
|
+
::Dir.glob(::File.expand_path('../support/*.rb', __FILE__)).each { |f| require_relative f }
|
33
|
+
::Dir.glob(::File.expand_path('../support/**/*.rb', __FILE__)).each { |f| require_relative f }
|
34
|
+
end
|
@@ -4,7 +4,7 @@ describe "Using Capybara::Screenshot with Spinach" do
|
|
4
4
|
include CommonSetup
|
5
5
|
|
6
6
|
before do
|
7
|
-
|
7
|
+
setup_aruba
|
8
8
|
end
|
9
9
|
|
10
10
|
def run_failing_case(failure_message, code)
|
@@ -17,7 +17,7 @@ describe "Using Capybara::Screenshot with Spinach" do
|
|
17
17
|
write_file('spinach.feature', code)
|
18
18
|
cmd = 'bundle exec spinach -f .'
|
19
19
|
run_simple_with_retry cmd, false
|
20
|
-
expect(
|
20
|
+
expect(last_command_started.output).to match(failure_message)
|
21
21
|
end
|
22
22
|
|
23
23
|
it "saves a screenshot on failure" do
|
@@ -27,7 +27,7 @@ describe "Using Capybara::Screenshot with Spinach" do
|
|
27
27
|
Given I visit "/"
|
28
28
|
And I click on a missing link
|
29
29
|
GHERKIN
|
30
|
-
|
30
|
+
expect('tmp/my_screenshot.html').to have_file_content('This is the root page')
|
31
31
|
end
|
32
32
|
|
33
33
|
it "saves a screenshot on an error" do
|
@@ -37,7 +37,7 @@ describe "Using Capybara::Screenshot with Spinach" do
|
|
37
37
|
Given I visit "/"
|
38
38
|
And I trigger an unhandled exception
|
39
39
|
GHERKIN
|
40
|
-
|
40
|
+
expect('tmp/my_screenshot.html').to have_file_content('This is the root page')
|
41
41
|
end
|
42
42
|
|
43
43
|
it "saves a screenshot for the correct session for failures using_session" do
|
@@ -47,7 +47,7 @@ describe "Using Capybara::Screenshot with Spinach" do
|
|
47
47
|
Given I visit "/"
|
48
48
|
And I click on a missing link on a different page in a different session
|
49
49
|
GHERKIN
|
50
|
-
|
50
|
+
expect('tmp/my_screenshot.html').to have_file_content('This is a different page')
|
51
51
|
end
|
52
52
|
|
53
53
|
it 'on failure it prunes previous screenshots when strategy is set' do
|
@@ -49,11 +49,11 @@ module CommonSetup
|
|
49
49
|
end
|
50
50
|
|
51
51
|
def assert_screenshot_pruned
|
52
|
-
|
52
|
+
expect(screenshot_for_pruning_path).to_not be_an_existing_file
|
53
53
|
end
|
54
54
|
|
55
55
|
def assert_screenshot_not_pruned
|
56
|
-
|
56
|
+
expect(screenshot_for_pruning_path).to be_an_existing_file
|
57
57
|
end
|
58
58
|
end
|
59
59
|
end
|
@@ -33,6 +33,13 @@ describe Capybara::Screenshot do
|
|
33
33
|
|
34
34
|
expect(Capybara::Screenshot.filename_prefix_formatters[:foo]).to eql(block)
|
35
35
|
end
|
36
|
+
|
37
|
+
describe '.filename_prefix_for' do
|
38
|
+
it 'returns "configured formatter" for specified formatter' do
|
39
|
+
Capybara::Screenshot.register_filename_prefix_formatter(:foo) { |arg| 'custom_path' }
|
40
|
+
expect(Capybara::Screenshot.filename_prefix_for(:foo, double('test'))).to eql('custom_path')
|
41
|
+
end
|
42
|
+
end
|
36
43
|
end
|
37
44
|
|
38
45
|
describe '.filename_prefix_for' do
|
data/spec/unit/saver_spec.rb
CHANGED
metadata
CHANGED
@@ -1,159 +1,159 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: capybara-screenshot
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.12
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matthew O'Riordan
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-03-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: capybara
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '1.0'
|
20
|
-
- - <
|
20
|
+
- - "<"
|
21
21
|
- !ruby/object:Gem::Version
|
22
22
|
version: '3'
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
26
26
|
requirements:
|
27
|
-
- -
|
27
|
+
- - ">="
|
28
28
|
- !ruby/object:Gem::Version
|
29
29
|
version: '1.0'
|
30
|
-
- - <
|
30
|
+
- - "<"
|
31
31
|
- !ruby/object:Gem::Version
|
32
32
|
version: '3'
|
33
33
|
- !ruby/object:Gem::Dependency
|
34
34
|
name: launchy
|
35
35
|
requirement: !ruby/object:Gem::Requirement
|
36
36
|
requirements:
|
37
|
-
- -
|
37
|
+
- - ">="
|
38
38
|
- !ruby/object:Gem::Version
|
39
39
|
version: '0'
|
40
40
|
type: :runtime
|
41
41
|
prerelease: false
|
42
42
|
version_requirements: !ruby/object:Gem::Requirement
|
43
43
|
requirements:
|
44
|
-
- -
|
44
|
+
- - ">="
|
45
45
|
- !ruby/object:Gem::Version
|
46
46
|
version: '0'
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: rspec
|
49
49
|
requirement: !ruby/object:Gem::Requirement
|
50
50
|
requirements:
|
51
|
-
- -
|
51
|
+
- - ">="
|
52
52
|
- !ruby/object:Gem::Version
|
53
53
|
version: '0'
|
54
54
|
type: :development
|
55
55
|
prerelease: false
|
56
56
|
version_requirements: !ruby/object:Gem::Requirement
|
57
57
|
requirements:
|
58
|
-
- -
|
58
|
+
- - ">="
|
59
59
|
- !ruby/object:Gem::Version
|
60
60
|
version: '0'
|
61
61
|
- !ruby/object:Gem::Dependency
|
62
62
|
name: timecop
|
63
63
|
requirement: !ruby/object:Gem::Requirement
|
64
64
|
requirements:
|
65
|
-
- -
|
65
|
+
- - ">="
|
66
66
|
- !ruby/object:Gem::Version
|
67
67
|
version: '0'
|
68
68
|
type: :development
|
69
69
|
prerelease: false
|
70
70
|
version_requirements: !ruby/object:Gem::Requirement
|
71
71
|
requirements:
|
72
|
-
- -
|
72
|
+
- - ">="
|
73
73
|
- !ruby/object:Gem::Version
|
74
74
|
version: '0'
|
75
75
|
- !ruby/object:Gem::Dependency
|
76
76
|
name: cucumber
|
77
77
|
requirement: !ruby/object:Gem::Requirement
|
78
78
|
requirements:
|
79
|
-
- -
|
79
|
+
- - ">="
|
80
80
|
- !ruby/object:Gem::Version
|
81
81
|
version: '0'
|
82
82
|
type: :development
|
83
83
|
prerelease: false
|
84
84
|
version_requirements: !ruby/object:Gem::Requirement
|
85
85
|
requirements:
|
86
|
-
- -
|
86
|
+
- - ">="
|
87
87
|
- !ruby/object:Gem::Version
|
88
88
|
version: '0'
|
89
89
|
- !ruby/object:Gem::Dependency
|
90
90
|
name: aruba
|
91
91
|
requirement: !ruby/object:Gem::Requirement
|
92
92
|
requirements:
|
93
|
-
- -
|
93
|
+
- - ">="
|
94
94
|
- !ruby/object:Gem::Version
|
95
95
|
version: '0'
|
96
96
|
type: :development
|
97
97
|
prerelease: false
|
98
98
|
version_requirements: !ruby/object:Gem::Requirement
|
99
99
|
requirements:
|
100
|
-
- -
|
100
|
+
- - ">="
|
101
101
|
- !ruby/object:Gem::Version
|
102
102
|
version: '0'
|
103
103
|
- !ruby/object:Gem::Dependency
|
104
104
|
name: sinatra
|
105
105
|
requirement: !ruby/object:Gem::Requirement
|
106
106
|
requirements:
|
107
|
-
- -
|
107
|
+
- - ">="
|
108
108
|
- !ruby/object:Gem::Version
|
109
109
|
version: '0'
|
110
110
|
type: :development
|
111
111
|
prerelease: false
|
112
112
|
version_requirements: !ruby/object:Gem::Requirement
|
113
113
|
requirements:
|
114
|
-
- -
|
114
|
+
- - ">="
|
115
115
|
- !ruby/object:Gem::Version
|
116
116
|
version: '0'
|
117
117
|
- !ruby/object:Gem::Dependency
|
118
118
|
name: test-unit
|
119
119
|
requirement: !ruby/object:Gem::Requirement
|
120
120
|
requirements:
|
121
|
-
- -
|
121
|
+
- - ">="
|
122
122
|
- !ruby/object:Gem::Version
|
123
123
|
version: '0'
|
124
124
|
type: :development
|
125
125
|
prerelease: false
|
126
126
|
version_requirements: !ruby/object:Gem::Requirement
|
127
127
|
requirements:
|
128
|
-
- -
|
128
|
+
- - ">="
|
129
129
|
- !ruby/object:Gem::Version
|
130
130
|
version: '0'
|
131
131
|
- !ruby/object:Gem::Dependency
|
132
132
|
name: spinach
|
133
133
|
requirement: !ruby/object:Gem::Requirement
|
134
134
|
requirements:
|
135
|
-
- -
|
135
|
+
- - ">="
|
136
136
|
- !ruby/object:Gem::Version
|
137
137
|
version: '0'
|
138
138
|
type: :development
|
139
139
|
prerelease: false
|
140
140
|
version_requirements: !ruby/object:Gem::Requirement
|
141
141
|
requirements:
|
142
|
-
- -
|
142
|
+
- - ">="
|
143
143
|
- !ruby/object:Gem::Version
|
144
144
|
version: '0'
|
145
145
|
- !ruby/object:Gem::Dependency
|
146
146
|
name: minitest
|
147
147
|
requirement: !ruby/object:Gem::Requirement
|
148
148
|
requirements:
|
149
|
-
- -
|
149
|
+
- - ">="
|
150
150
|
- !ruby/object:Gem::Version
|
151
151
|
version: '0'
|
152
152
|
type: :development
|
153
153
|
prerelease: false
|
154
154
|
version_requirements: !ruby/object:Gem::Requirement
|
155
155
|
requirements:
|
156
|
-
- -
|
156
|
+
- - ">="
|
157
157
|
- !ruby/object:Gem::Version
|
158
158
|
version: '0'
|
159
159
|
description: When a Cucumber step fails, it is useful to create a screenshot image
|
@@ -164,9 +164,9 @@ executables: []
|
|
164
164
|
extensions: []
|
165
165
|
extra_rdoc_files: []
|
166
166
|
files:
|
167
|
-
- .gitignore
|
168
|
-
- .rspec
|
169
|
-
- .travis.yml
|
167
|
+
- ".gitignore"
|
168
|
+
- ".rspec"
|
169
|
+
- ".travis.yml"
|
170
170
|
- Appraisals
|
171
171
|
- CHANGELOG.md
|
172
172
|
- Gemfile
|
@@ -207,6 +207,7 @@ files:
|
|
207
207
|
- spec/spec_helper.rb
|
208
208
|
- spec/spinach/spinach_spec.rb
|
209
209
|
- spec/spinach/support/spinach_failure.rb
|
210
|
+
- spec/support/aruba.rb
|
210
211
|
- spec/support/common_setup.rb
|
211
212
|
- spec/support/html_reporter_context.rb
|
212
213
|
- spec/support/test_app.rb
|
@@ -230,12 +231,12 @@ require_paths:
|
|
230
231
|
- lib
|
231
232
|
required_ruby_version: !ruby/object:Gem::Requirement
|
232
233
|
requirements:
|
233
|
-
- -
|
234
|
+
- - ">="
|
234
235
|
- !ruby/object:Gem::Version
|
235
236
|
version: '0'
|
236
237
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
237
238
|
requirements:
|
238
|
-
- -
|
239
|
+
- - ">="
|
239
240
|
- !ruby/object:Gem::Version
|
240
241
|
version: '0'
|
241
242
|
requirements: []
|
@@ -255,6 +256,7 @@ test_files:
|
|
255
256
|
- spec/spec_helper.rb
|
256
257
|
- spec/spinach/spinach_spec.rb
|
257
258
|
- spec/spinach/support/spinach_failure.rb
|
259
|
+
- spec/support/aruba.rb
|
258
260
|
- spec/support/common_setup.rb
|
259
261
|
- spec/support/html_reporter_context.rb
|
260
262
|
- spec/support/test_app.rb
|