jasmine_selenium_runner 0.2.1 → 2.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/.rspec +1 -0
- data/.travis.yml +3 -2
- data/Gemfile +2 -1
- data/README.md +12 -0
- data/lib/jasmine/runners/selenium.rb +5 -1
- data/lib/jasmine/runners/selenium/version.rb +1 -1
- data/lib/jasmine_selenium_runner/configure_jasmine.rb +4 -2
- data/lib/jasmine_selenium_runner/sauce_connect_configurer.rb +12 -0
- data/release_notes/2.4.0.md +11 -0
- data/spec/jasmine_selenium_runner/configure_jasmine_spec.rb +84 -0
- data/spec/selenium_runner_integration_spec.rb +29 -0
- data/spec/spec_helper.rb +1 -1
- metadata +24 -22
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5b016f1e9bd01f01d14e6980aa2d6f986a09f567
|
4
|
+
data.tar.gz: 3f0debf2199c0051f7fdaa1735f7956d7b5f649c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0594693f2e44acc5f1b375a599d264fd014a34ad1311890856ffddfff123cadb4ec18d6387c4022ee5db5ede5fc5ad736a4976d4c368d8fb4728a613d5c46215
|
7
|
+
data.tar.gz: 43f7235d4cbec6f8dfac4218e0811550eb0dcfd69ea186554ef08e8fb6173ef81c472f0afa70e90de952fc47b744e8516f9bfaeb2a64a560be35da0f53618de1
|
data/.rspec
CHANGED
data/.travis.yml
CHANGED
@@ -1,9 +1,10 @@
|
|
1
1
|
before_script:
|
2
2
|
- sh -e /etc/init.d/xvfb start
|
3
|
-
- curl -L https://gist.github.com/santiycr/5139565/raw/sauce_connect_setup.sh | bash
|
4
3
|
script: DISPLAY=:99.0 bundle exec rake
|
4
|
+
addons:
|
5
|
+
sauce_connect: true
|
5
6
|
rvm:
|
6
|
-
- 2.
|
7
|
+
- 2.1.0
|
7
8
|
env:
|
8
9
|
global:
|
9
10
|
- secure: i8arxYVwMt/vp8a5RugpE+edkCg1G+wQ1WdCbdiKPhDZEcMh6f9vETvcsY9W94xY7yTBNSrZ+jNkz5ZQrGfiq1HllKxSjZBXv0pJ+wyxuFHl7hSib1OCzEImk0lHVryX7A7iO4u1GzZ+jmiVyKL7uEjD6CokphOpwnYpBln8jlg=
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -86,6 +86,18 @@ which you'll want for SAUCE_USERNAME and SAUCE_ACCESS_KEY):
|
|
86
86
|
- SAUCE_OS="Linux"
|
87
87
|
- SAUCE_BROWSER_VERSION=''
|
88
88
|
|
89
|
+
### Using with sauce connect locally
|
90
|
+
|
91
|
+
Sauce connect 4 now requires a path to the `sc` executable, so that needs to be provided if you want to use SauceLabs without a pre-existing tunnel.
|
92
|
+
In your jasmine_selenium_runner.yml, in the sauce section, you need to provide a `sauce_connect_path`.
|
93
|
+
|
94
|
+
---
|
95
|
+
use_sauce: true
|
96
|
+
sauce:
|
97
|
+
sauce_connect_path: /my/path/to/sc
|
98
|
+
|
99
|
+
This configuration will only be used if no `tunnel_identifier` is provided.
|
100
|
+
|
89
101
|
### Using with a custom selenium server
|
90
102
|
|
91
103
|
Create a jasmine_selenium_runner.yml in spec/javascripts/support/ with the following content:
|
@@ -16,7 +16,7 @@ module Jasmine
|
|
16
16
|
wait_for_suites_to_finish_running
|
17
17
|
|
18
18
|
formatter.format(get_results)
|
19
|
-
formatter.done
|
19
|
+
formatter.done(run_details)
|
20
20
|
ensure
|
21
21
|
driver.quit
|
22
22
|
end
|
@@ -32,6 +32,10 @@ module Jasmine
|
|
32
32
|
driver.execute_script "return jsApiReporter && jsApiReporter.finished"
|
33
33
|
end
|
34
34
|
|
35
|
+
def run_details
|
36
|
+
driver.execute_script "return jsApiReporter && jsApiReporter.runDetails"
|
37
|
+
end
|
38
|
+
|
35
39
|
def ensure_connection_established
|
36
40
|
started = Time.now
|
37
41
|
until started? do
|
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'jasmine'
|
2
2
|
require 'jasmine/runners/selenium'
|
3
|
+
require 'jasmine_selenium_runner/sauce_connect_configurer'
|
3
4
|
require 'selenium-webdriver'
|
4
5
|
|
5
6
|
module JasmineSeleniumRunner
|
@@ -57,8 +58,9 @@ module JasmineSeleniumRunner
|
|
57
58
|
|
58
59
|
def sauce_webdriver(sauce_config)
|
59
60
|
unless sauce_config['tunnel_identifier']
|
60
|
-
|
61
|
-
|
61
|
+
SauceConnectConfigurer.configure do |config|
|
62
|
+
config[:sauce_connect_4_executable] = sauce_config.fetch('sauce_connect_path')
|
63
|
+
end
|
62
64
|
end
|
63
65
|
|
64
66
|
username = sauce_config.fetch('username')
|
@@ -0,0 +1,11 @@
|
|
1
|
+
# Jasmine Selenium Runner 2.4.0 Release Notes
|
2
|
+
|
3
|
+
## Changes
|
4
|
+
|
5
|
+
* Support reporting for randomized runs
|
6
|
+
* Document how to use with sauce connect
|
7
|
+
* Support sauce connect 4
|
8
|
+
|
9
|
+
------
|
10
|
+
|
11
|
+
_Release Notes generated with _[Anchorman](http://github.com/infews/anchorman)_
|
@@ -89,4 +89,88 @@ describe "Configuring jasmine" do
|
|
89
89
|
end
|
90
90
|
end
|
91
91
|
end
|
92
|
+
|
93
|
+
context 'configuring sauce labs' do
|
94
|
+
before do
|
95
|
+
allow(Selenium::WebDriver).to receive(:for) { mock_driver }
|
96
|
+
allow(Jasmine::Runners::Selenium).to receive(:new)
|
97
|
+
allow(JasmineSeleniumRunner::SauceConnectConfigurer).to receive(:configure).and_yield(sauce_config)
|
98
|
+
end
|
99
|
+
|
100
|
+
let(:sauce_thing) { double(:sauce_thing) }
|
101
|
+
let(:mock_driver) { double(:mock_driver) }
|
102
|
+
let(:sauce_config) { double(:sauce_config, :[]= => nil) }
|
103
|
+
|
104
|
+
context 'with an existing tunnel' do
|
105
|
+
it 'uses the tunnel identifier' do
|
106
|
+
runner = JasmineSeleniumRunner::ConfigureJasmine.new(double(:formatter), 'jasmine_url', {
|
107
|
+
'use_sauce' => true,
|
108
|
+
'sauce' => {
|
109
|
+
'username' => 'sauce_user',
|
110
|
+
'access_key' => 'sauce_key',
|
111
|
+
'name' => 'sauce_name',
|
112
|
+
'os' => 'sauce_os',
|
113
|
+
'browser_version' => 'browser_version',
|
114
|
+
'build' => 'build',
|
115
|
+
'tags' => 'tags',
|
116
|
+
'tunnel_identifier' => 'tunnel'
|
117
|
+
}
|
118
|
+
}) do |thing|
|
119
|
+
|
120
|
+
end
|
121
|
+
|
122
|
+
runner.make_runner
|
123
|
+
|
124
|
+
expect(JasmineSeleniumRunner::SauceConnectConfigurer).not_to have_received(:configure)
|
125
|
+
expect(Selenium::WebDriver).to have_received(:for).with(:remote,
|
126
|
+
:url => 'http://sauce_user:sauce_key@localhost:4445/wd/hub',
|
127
|
+
:desired_capabilities => {
|
128
|
+
:name => 'sauce_name',
|
129
|
+
:platform => 'sauce_os',
|
130
|
+
:version => 'browser_version',
|
131
|
+
:build => 'build',
|
132
|
+
:tags => 'tags',
|
133
|
+
:browserName => 'firefox',
|
134
|
+
'tunnel-identifier' => 'tunnel'
|
135
|
+
}
|
136
|
+
)
|
137
|
+
end
|
138
|
+
end
|
139
|
+
|
140
|
+
context 'without an existing tunnel' do
|
141
|
+
it 'uses sauce connect' do
|
142
|
+
runner = JasmineSeleniumRunner::ConfigureJasmine.new(double(:formatter), 'jasmine_url', {
|
143
|
+
'use_sauce' => true,
|
144
|
+
'sauce' => {
|
145
|
+
'username' => 'sauce_user',
|
146
|
+
'access_key' => 'sauce_key',
|
147
|
+
'name' => 'sauce_name',
|
148
|
+
'os' => 'sauce_os',
|
149
|
+
'browser_version' => 'browser_version',
|
150
|
+
'build' => 'build',
|
151
|
+
'tags' => 'tags',
|
152
|
+
'sauce_connect_path' => '/path/to/sc'
|
153
|
+
}
|
154
|
+
})
|
155
|
+
|
156
|
+
|
157
|
+
runner.make_runner
|
158
|
+
|
159
|
+
expect(JasmineSeleniumRunner::SauceConnectConfigurer).to have_received(:configure)
|
160
|
+
expect(sauce_config).to have_received(:[]=).with(:sauce_connect_4_executable, '/path/to/sc')
|
161
|
+
expect(Selenium::WebDriver).to have_received(:for).with(:remote,
|
162
|
+
:url => 'http://sauce_user:sauce_key@localhost:4445/wd/hub',
|
163
|
+
:desired_capabilities => {
|
164
|
+
:name => 'sauce_name',
|
165
|
+
:platform => 'sauce_os',
|
166
|
+
:version => 'browser_version',
|
167
|
+
:build => 'build',
|
168
|
+
:tags => 'tags',
|
169
|
+
:browserName => 'firefox',
|
170
|
+
'tunnel-identifier' => nil
|
171
|
+
}
|
172
|
+
)
|
173
|
+
end
|
174
|
+
end
|
175
|
+
end
|
92
176
|
end
|
@@ -3,6 +3,7 @@ require 'tmpdir'
|
|
3
3
|
require 'jasmine'
|
4
4
|
require 'json'
|
5
5
|
require 'net/http'
|
6
|
+
require 'bundler'
|
6
7
|
|
7
8
|
describe Jasmine::Runners::Selenium do
|
8
9
|
let(:file_helper) { FileHelper.new }
|
@@ -70,6 +71,33 @@ GEMFILE
|
|
70
71
|
end
|
71
72
|
end
|
72
73
|
|
74
|
+
it "reports random jasmine runs" do
|
75
|
+
in_temp_dir do |dir, project_root|
|
76
|
+
File.open(File.join(dir, 'Gemfile'), 'w') do |file|
|
77
|
+
file.write <<-GEMFILE
|
78
|
+
source 'https://rubygems.org'
|
79
|
+
gem 'jasmine_selenium_runner', :path => '#{project_root}'
|
80
|
+
gem 'jasmine', :git => 'https://github.com/pivotal/jasmine-gem.git'
|
81
|
+
gem 'jasmine-core', :git => 'https://github.com/pivotal/jasmine.git'
|
82
|
+
GEMFILE
|
83
|
+
end
|
84
|
+
Bundler.with_clean_env do
|
85
|
+
`bundle`
|
86
|
+
`bundle exec jasmine init`
|
87
|
+
`bundle exec jasmine examples`
|
88
|
+
yaml_file = File.join(dir, 'spec', 'javascripts', 'support', 'jasmine.yml')
|
89
|
+
jasmine_yaml = YAML.load_file(yaml_file)
|
90
|
+
jasmine_yaml['random'] = true
|
91
|
+
File.open(yaml_file, 'w') do |file|
|
92
|
+
file.write(YAML.dump(jasmine_yaml))
|
93
|
+
file.flush
|
94
|
+
end
|
95
|
+
ci_output = `bundle exec rake -E "require 'jasmine_selenium_runner'" --trace jasmine:ci`
|
96
|
+
expect(ci_output).to match(/Randomized with seed/)
|
97
|
+
end
|
98
|
+
end
|
99
|
+
end
|
100
|
+
|
73
101
|
it "permits rake jasmine:ci task to be run using Sauce", :sauce => true do
|
74
102
|
in_temp_dir do |dir, project_root|
|
75
103
|
File.open(File.join(dir, 'Gemfile'), 'w') do |file|
|
@@ -99,6 +127,7 @@ sauce:
|
|
99
127
|
- #{ENV['TRAVIS_RUBY_VERSION'] || RUBY_VERSION}
|
100
128
|
- CI
|
101
129
|
tunnel_identifier: #{ENV['TRAVIS_JOB_NUMBER'] ? %Q("#{ENV['TRAVIS_JOB_NUMBER']}") : nil}
|
130
|
+
sauce_connect_path: #{ENV['SAUCE_CONNECT_PATH']}
|
102
131
|
os: "Windows 8"
|
103
132
|
browser_version: 10
|
104
133
|
YAML
|
data/spec/spec_helper.rb
CHANGED
@@ -4,7 +4,7 @@ require 'jasmine_selenium_runner'
|
|
4
4
|
RSpec.configure do |config|
|
5
5
|
config.before(:each, :sauce => true) do
|
6
6
|
unless ENV["SAUCE_USERNAME"] && ENV["SAUCE_ACCESS_KEY"]
|
7
|
-
|
7
|
+
skip "skipping sauce tests because SAUCE_USERNAME and SAUCE_ACCESS_KEY aren't set"
|
8
8
|
end
|
9
9
|
end
|
10
10
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jasmine_selenium_runner
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Rajan Agaskar
|
@@ -9,104 +9,104 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2015-12-03 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
17
17
|
requirements:
|
18
|
-
- -
|
18
|
+
- - ">="
|
19
19
|
- !ruby/object:Gem::Version
|
20
20
|
version: '0'
|
21
21
|
type: :development
|
22
22
|
prerelease: false
|
23
23
|
version_requirements: !ruby/object:Gem::Requirement
|
24
24
|
requirements:
|
25
|
-
- -
|
25
|
+
- - ">="
|
26
26
|
- !ruby/object:Gem::Version
|
27
27
|
version: '0'
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
29
|
name: rake
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
31
31
|
requirements:
|
32
|
-
- -
|
32
|
+
- - ">="
|
33
33
|
- !ruby/object:Gem::Version
|
34
34
|
version: '0'
|
35
35
|
type: :development
|
36
36
|
prerelease: false
|
37
37
|
version_requirements: !ruby/object:Gem::Requirement
|
38
38
|
requirements:
|
39
|
-
- -
|
39
|
+
- - ">="
|
40
40
|
- !ruby/object:Gem::Version
|
41
41
|
version: '0'
|
42
42
|
- !ruby/object:Gem::Dependency
|
43
43
|
name: rspec
|
44
44
|
requirement: !ruby/object:Gem::Requirement
|
45
45
|
requirements:
|
46
|
-
- -
|
46
|
+
- - ">="
|
47
47
|
- !ruby/object:Gem::Version
|
48
48
|
version: '0'
|
49
49
|
type: :development
|
50
50
|
prerelease: false
|
51
51
|
version_requirements: !ruby/object:Gem::Requirement
|
52
52
|
requirements:
|
53
|
-
- -
|
53
|
+
- - ">="
|
54
54
|
- !ruby/object:Gem::Version
|
55
55
|
version: '0'
|
56
56
|
- !ruby/object:Gem::Dependency
|
57
57
|
name: rails
|
58
58
|
requirement: !ruby/object:Gem::Requirement
|
59
59
|
requirements:
|
60
|
-
- -
|
60
|
+
- - ">"
|
61
61
|
- !ruby/object:Gem::Version
|
62
62
|
version: '3.0'
|
63
63
|
type: :development
|
64
64
|
prerelease: false
|
65
65
|
version_requirements: !ruby/object:Gem::Requirement
|
66
66
|
requirements:
|
67
|
-
- -
|
67
|
+
- - ">"
|
68
68
|
- !ruby/object:Gem::Version
|
69
69
|
version: '3.0'
|
70
70
|
- !ruby/object:Gem::Dependency
|
71
71
|
name: jasmine
|
72
72
|
requirement: !ruby/object:Gem::Requirement
|
73
73
|
requirements:
|
74
|
-
- - ~>
|
74
|
+
- - "~>"
|
75
75
|
- !ruby/object:Gem::Version
|
76
76
|
version: '2.0'
|
77
77
|
type: :runtime
|
78
78
|
prerelease: false
|
79
79
|
version_requirements: !ruby/object:Gem::Requirement
|
80
80
|
requirements:
|
81
|
-
- - ~>
|
81
|
+
- - "~>"
|
82
82
|
- !ruby/object:Gem::Version
|
83
83
|
version: '2.0'
|
84
84
|
- !ruby/object:Gem::Dependency
|
85
85
|
name: selenium-webdriver
|
86
86
|
requirement: !ruby/object:Gem::Requirement
|
87
87
|
requirements:
|
88
|
-
- - ~>
|
88
|
+
- - "~>"
|
89
89
|
- !ruby/object:Gem::Version
|
90
90
|
version: '2.35'
|
91
91
|
type: :runtime
|
92
92
|
prerelease: false
|
93
93
|
version_requirements: !ruby/object:Gem::Requirement
|
94
94
|
requirements:
|
95
|
-
- - ~>
|
95
|
+
- - "~>"
|
96
96
|
- !ruby/object:Gem::Version
|
97
97
|
version: '2.35'
|
98
98
|
- !ruby/object:Gem::Dependency
|
99
99
|
name: sauce-connect
|
100
100
|
requirement: !ruby/object:Gem::Requirement
|
101
101
|
requirements:
|
102
|
-
- -
|
102
|
+
- - ">="
|
103
103
|
- !ruby/object:Gem::Version
|
104
104
|
version: '0'
|
105
105
|
type: :runtime
|
106
106
|
prerelease: false
|
107
107
|
version_requirements: !ruby/object:Gem::Requirement
|
108
108
|
requirements:
|
109
|
-
- -
|
109
|
+
- - ">="
|
110
110
|
- !ruby/object:Gem::Version
|
111
111
|
version: '0'
|
112
112
|
description: Run your jasmine tests in a real live browser!
|
@@ -117,9 +117,9 @@ executables: []
|
|
117
117
|
extensions: []
|
118
118
|
extra_rdoc_files: []
|
119
119
|
files:
|
120
|
-
- .gitignore
|
121
|
-
- .rspec
|
122
|
-
- .travis.yml
|
120
|
+
- ".gitignore"
|
121
|
+
- ".rspec"
|
122
|
+
- ".travis.yml"
|
123
123
|
- Gemfile
|
124
124
|
- LICENSE
|
125
125
|
- README.md
|
@@ -133,7 +133,9 @@ files:
|
|
133
133
|
- lib/jasmine_selenium_runner/firebug/firebug-license.txt
|
134
134
|
- lib/jasmine_selenium_runner/firebug/firebug.rb
|
135
135
|
- lib/jasmine_selenium_runner/railtie.rb
|
136
|
+
- lib/jasmine_selenium_runner/sauce_connect_configurer.rb
|
136
137
|
- lib/jasmine_selenium_runner/tasks/jasmine_selenium_runner.rake
|
138
|
+
- release_notes/2.4.0.md
|
137
139
|
- spec/fixtures/after_all_failure_spec.js
|
138
140
|
- spec/fixtures/contains_circular_references_spec.js
|
139
141
|
- spec/fixtures/is_in_firefox_spec.js
|
@@ -151,17 +153,17 @@ require_paths:
|
|
151
153
|
- lib
|
152
154
|
required_ruby_version: !ruby/object:Gem::Requirement
|
153
155
|
requirements:
|
154
|
-
- -
|
156
|
+
- - ">="
|
155
157
|
- !ruby/object:Gem::Version
|
156
158
|
version: '0'
|
157
159
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
158
160
|
requirements:
|
159
|
-
- -
|
161
|
+
- - ">="
|
160
162
|
- !ruby/object:Gem::Version
|
161
163
|
version: '0'
|
162
164
|
requirements: []
|
163
165
|
rubyforge_project:
|
164
|
-
rubygems_version: 2.
|
166
|
+
rubygems_version: 2.4.5.1
|
165
167
|
signing_key:
|
166
168
|
specification_version: 4
|
167
169
|
summary: Run your jasmine tests in a real live browser!
|