minitest-utils 0.3.1 → 0.4.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.
- checksums.yaml +4 -4
- data/lib/minitest/utils/capybara/chrome_headless.rb +9 -0
- data/lib/minitest/utils/capybara/screenshot_on_failures.rb +10 -0
- data/lib/minitest/utils/rails/capybara.rb +15 -1
- data/lib/minitest/utils/reporter.rb +11 -6
- data/lib/minitest/utils/version.rb +1 -1
- data/lib/minitest/utils.rb +1 -4
- metadata +5 -4
- data/lib/minitest/utils/setup/poltergeist.rb +0 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6ee508923ff90b1f11e74045d7d22931fe2e4330
|
4
|
+
data.tar.gz: c082fb20a0b1e3cc782f69279f5f52ba1929bbdd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9b13c02df71f819521ec441abb59260e594c9275016f12f1891a9ae7d2f57987499484a4ff4ba915873b6d8e0cf260cea33839e75b0e2cb79b0227c99a807a8c
|
7
|
+
data.tar.gz: 2cac21f81c969458c4525258a220a95e52e1c299cc1deec6815cb10afaabd28528cfe2481c03871abfa0d732209d5b8b66853d7c29834b6b866a04439a238e6c
|
@@ -0,0 +1,9 @@
|
|
1
|
+
gem "selenium-webdriver"
|
2
|
+
gem "chromedriver-helper"
|
3
|
+
|
4
|
+
Capybara.register_driver :chrome do |app|
|
5
|
+
Capybara::Selenium::Driver.new app, browser: :chrome,
|
6
|
+
options: Selenium::WebDriver::Chrome::Options.new(args: %w[headless disable-gpu])
|
7
|
+
end
|
8
|
+
|
9
|
+
Capybara.javascript_driver = :chrome
|
@@ -9,10 +9,24 @@ module ActionDispatch
|
|
9
9
|
Capybara.use_default_driver
|
10
10
|
end
|
11
11
|
|
12
|
-
def self.use_javascript!
|
12
|
+
def self.use_javascript!(raise_on_javascript_errors: true)
|
13
13
|
setup do
|
14
14
|
Capybara.current_driver = Capybara.javascript_driver
|
15
15
|
end
|
16
|
+
|
17
|
+
teardown do
|
18
|
+
next if failures.any?
|
19
|
+
next unless raise_on_javascript_errors
|
20
|
+
|
21
|
+
errors = page.driver.browser.manage.logs.get(:browser).select {|log| log.level == "SEVERE" }
|
22
|
+
next unless errors.any?
|
23
|
+
|
24
|
+
messages = errors
|
25
|
+
.map(&:message)
|
26
|
+
.map {|message| message[/(\d+:\d+ .*?)$/, 1] }
|
27
|
+
.join("\n")
|
28
|
+
raise "JavaScript Errors\n#{messages}"
|
29
|
+
end
|
16
30
|
end
|
17
31
|
end
|
18
32
|
end
|
@@ -102,10 +102,15 @@ module Minitest
|
|
102
102
|
end
|
103
103
|
|
104
104
|
def display_replay_command(result)
|
105
|
-
location = find_test_file(result)
|
105
|
+
location, line = find_test_file(result)
|
106
106
|
return if location.empty?
|
107
107
|
|
108
|
-
command =
|
108
|
+
command = if defined?(Rails) && Rails.version >= "5.0.0"
|
109
|
+
%[bin/rails test #{location}:#{line}]
|
110
|
+
else
|
111
|
+
%[rake TEST=#{location} TESTOPTS="--name=#{result.name}"]
|
112
|
+
end
|
113
|
+
|
109
114
|
str = "\n"
|
110
115
|
str << color(command, :red)
|
111
116
|
|
@@ -113,10 +118,10 @@ module Minitest
|
|
113
118
|
end
|
114
119
|
|
115
120
|
def find_test_file(result)
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
121
|
+
location, line = result.method(result.name).source_location
|
122
|
+
location = location.gsub(%r[^.*?/((?:test|spec)/.*?)$], "\\1")
|
123
|
+
|
124
|
+
[location, line]
|
120
125
|
end
|
121
126
|
|
122
127
|
def backtrace(backtrace)
|
data/lib/minitest/utils.rb
CHANGED
@@ -11,16 +11,13 @@ module Minitest
|
|
11
11
|
require path
|
12
12
|
block.call if block
|
13
13
|
rescue LoadError
|
14
|
+
return
|
14
15
|
end
|
15
16
|
end
|
16
17
|
|
17
18
|
load_lib.call "mocha/mini_test"
|
18
19
|
load_lib.call "capybara"
|
19
20
|
|
20
|
-
load_lib.call("capybara/poltergeist") do
|
21
|
-
require "minitest/utils/setup/poltergeist"
|
22
|
-
end
|
23
|
-
|
24
21
|
load_lib.call "webmock" do
|
25
22
|
require "minitest/utils/setup/webmock"
|
26
23
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: minitest-utils
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nando Vieira
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-10-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: minitest
|
@@ -82,6 +82,8 @@ files:
|
|
82
82
|
- bin/rake
|
83
83
|
- bin/setup
|
84
84
|
- lib/minitest/utils.rb
|
85
|
+
- lib/minitest/utils/capybara/chrome_headless.rb
|
86
|
+
- lib/minitest/utils/capybara/screenshot_on_failures.rb
|
85
87
|
- lib/minitest/utils/extension.rb
|
86
88
|
- lib/minitest/utils/rails.rb
|
87
89
|
- lib/minitest/utils/rails/capybara.rb
|
@@ -90,7 +92,6 @@ files:
|
|
90
92
|
- lib/minitest/utils/reporter.rb
|
91
93
|
- lib/minitest/utils/setup/database_cleaner.rb
|
92
94
|
- lib/minitest/utils/setup/factory_girl.rb
|
93
|
-
- lib/minitest/utils/setup/poltergeist.rb
|
94
95
|
- lib/minitest/utils/setup/webmock.rb
|
95
96
|
- lib/minitest/utils/test_notifier_reporter.rb
|
96
97
|
- lib/minitest/utils/version.rb
|
@@ -119,7 +120,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
119
120
|
version: '0'
|
120
121
|
requirements: []
|
121
122
|
rubyforge_project:
|
122
|
-
rubygems_version: 2.
|
123
|
+
rubygems_version: 2.6.13
|
123
124
|
signing_key:
|
124
125
|
specification_version: 4
|
125
126
|
summary: Some utilities for your Minitest day-to-day usage.
|
@@ -1 +0,0 @@
|
|
1
|
-
Capybara.javascript_driver = :poltergeist
|