capybara-screenshot 0.1.1 → 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG.md +9 -0
- data/README.md +7 -0
- data/lib/capybara-screenshot.rb +14 -0
- data/lib/capybara-screenshot/rspec.rb +11 -0
- data/lib/capybara-screenshot/saver.rb +20 -0
- data/lib/capybara-screenshot/version.rb +1 -1
- data/lib/capybara-screenshot/world.rb +3 -6
- metadata +6 -4
data/CHANGELOG.md
CHANGED
@@ -0,0 +1,9 @@
|
|
1
|
+
16 November 2011
|
2
|
+
----------------
|
3
|
+
|
4
|
+
Added support for RSpec by adding a RSpec configuration after hook and checking if Capybara is being used.
|
5
|
+
|
6
|
+
15 November 2011
|
7
|
+
----------------
|
8
|
+
|
9
|
+
Ensured that tests run other than Cucumber won't fail. Prior to this Cucumber was required.
|
data/README.md
CHANGED
@@ -18,6 +18,13 @@ or update your Gemfile to include:
|
|
18
18
|
|
19
19
|
That's it!
|
20
20
|
|
21
|
+
Example application
|
22
|
+
-------------------
|
23
|
+
|
24
|
+
A simple Rails 3.1 example application has been set up at [https://github.com/mattheworiordan/capybara-screenshot-test-rails-3.1](https://github.com/mattheworiordan/capybara-screenshot-test-rails-3.1)
|
25
|
+
Git clone the app, and then run Cucumber `rake cucumber` or RSpec `rspec spec/**/*_spec.rb` and expect failures.
|
26
|
+
Then check the tmp/capybara folder for the automatic screen shots generated from failed tests.
|
27
|
+
|
21
28
|
Repository
|
22
29
|
----------
|
23
30
|
|
data/lib/capybara-screenshot.rb
CHANGED
@@ -13,4 +13,18 @@ if defined?(Cucumber::RbSupport::RbDsl)
|
|
13
13
|
After do |scenario|
|
14
14
|
screen_shot_and_save_page if scenario.failed?
|
15
15
|
end
|
16
|
+
end
|
17
|
+
|
18
|
+
if defined?(RSpec)
|
19
|
+
# capybara rspec must be included first so that this config.after is added to
|
20
|
+
# RSpec hooks afterwards, and thus executed first
|
21
|
+
require 'capybara/rspec'
|
22
|
+
require 'capybara-screenshot/rspec'
|
23
|
+
RSpec.configure do |config|
|
24
|
+
config.after do
|
25
|
+
unless Capybara.current_path.blank?
|
26
|
+
Capybara::Screenshot::RSpec.screen_shot_and_save_page(Capybara.body)
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
16
30
|
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module Capybara
|
2
|
+
module Screenshot
|
3
|
+
class Saver
|
4
|
+
def self.screen_shot_and_save_page(capybara, body)
|
5
|
+
require 'capybara/util/save_and_open_page'
|
6
|
+
path = "/#{Time.now.strftime('%Y-%m-%d-%H-%M-%S')}"
|
7
|
+
capybara.save_page body, "#{path}.html"
|
8
|
+
if capybara.page.driver.respond_to?(:render)
|
9
|
+
path = if defined?(Rails)
|
10
|
+
Rails.root.join "#{capybara.save_and_open_page_path}#{path}.png"
|
11
|
+
else
|
12
|
+
# Sinatra support, untested
|
13
|
+
File.join settings.root "#{capybara.save_and_open_page_path}#{path}.png"
|
14
|
+
end
|
15
|
+
capybara.page.driver.render path
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -1,13 +1,10 @@
|
|
1
|
+
require 'capybara-screenshot/saver'
|
2
|
+
|
1
3
|
module Capybara
|
2
4
|
module Screenshot
|
3
5
|
module World
|
4
6
|
def screen_shot_and_save_page
|
5
|
-
|
6
|
-
path = "/#{Time.now.strftime('%Y-%m-%d-%H-%M-%S')}"
|
7
|
-
Capybara.save_page body, "#{path}.html"
|
8
|
-
if page.driver.respond_to?(:render)
|
9
|
-
page.driver.render Rails.root.join "#{Capybara.save_and_open_page_path}" "#{path}.png"
|
10
|
-
end
|
7
|
+
Capybara::Screenshot::Saver.screen_shot_and_save_page Capybara, body
|
11
8
|
end
|
12
9
|
end
|
13
10
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: capybara-screenshot
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 31
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 1
|
9
|
-
-
|
10
|
-
version: 0.1.
|
9
|
+
- 2
|
10
|
+
version: 0.1.2
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Matthew O'Riordan
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-11-
|
18
|
+
date: 2011-11-16 00:00:00 +00:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
@@ -81,6 +81,8 @@ files:
|
|
81
81
|
- Rakefile
|
82
82
|
- capybara-screenshot.gemspec
|
83
83
|
- lib/capybara-screenshot.rb
|
84
|
+
- lib/capybara-screenshot/rspec.rb
|
85
|
+
- lib/capybara-screenshot/saver.rb
|
84
86
|
- lib/capybara-screenshot/version.rb
|
85
87
|
- lib/capybara-screenshot/world.rb
|
86
88
|
has_rdoc: true
|