quke 0.6.0 → 0.7.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/README.md +4 -4
- data/Rakefile +9 -7
- data/exe/quke +6 -2
- data/lib/features/support/after_hook.rb +11 -6
- data/lib/features/support/after_step_hook.rb +3 -1
- data/lib/features/support/before_hook.rb +6 -4
- data/lib/features/support/env.rb +17 -20
- data/lib/quke.rb +12 -7
- data/lib/quke/browserstack_configuration.rb +19 -18
- data/lib/quke/browserstack_status_reporter.rb +6 -4
- data/lib/quke/configuration.rb +30 -26
- data/lib/quke/cuke_runner.rb +6 -4
- data/lib/quke/driver_configuration.rb +12 -14
- data/lib/quke/driver_registration.rb +8 -6
- data/lib/quke/version.rb +3 -1
- data/spec/quke/browserstack_configuration_spec.rb +262 -0
- data/spec/quke/browserstack_status_reporter_spec.rb +129 -0
- data/spec/quke/configuration_spec.rb +270 -0
- data/spec/quke/cuke_runner_spec.rb +36 -0
- data/spec/quke/driver_configuration_spec.rb +279 -0
- data/spec/quke/driver_registration_spec.rb +33 -0
- data/spec/quke/quke_spec.rb +18 -0
- data/spec/spec_helper.rb +40 -0
- data/spec/support/helpers.rb +48 -0
- data/spec/support/simplecov.rb +29 -0
- data/spec/support/webmock.rb +3 -0
- metadata +97 -58
- data/.browserstack.yml +0 -11
- data/.codeclimate.yml +0 -19
- data/.config.example.yml +0 -198
- data/.gitignore +0 -60
- data/.rspec +0 -2
- data/.rubocop.yml +0 -61
- data/.travis.yml +0 -55
- data/CHANGELOG.md +0 -170
- data/Gemfile +0 -4
- data/quke.gemspec +0 -105
- data/quke.png +0 -0
data/Gemfile
DELETED
data/quke.gemspec
DELETED
@@ -1,105 +0,0 @@
|
|
1
|
-
lib = File.expand_path('../lib', __FILE__)
|
2
|
-
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
3
|
-
require 'quke/version'
|
4
|
-
|
5
|
-
# Don't believe you would want to break this particular block up hence adding
|
6
|
-
# the exception for rubocop.
|
7
|
-
# rubocop:disable Metrics/BlockLength
|
8
|
-
Gem::Specification.new do |spec|
|
9
|
-
spec.name = 'quke'
|
10
|
-
spec.version = Quke::VERSION
|
11
|
-
spec.authors = ['Alan Cruikshanks']
|
12
|
-
spec.email = ['alan.cruikshanks@environment-agency.gov.uk']
|
13
|
-
|
14
|
-
spec.summary = 'A gem to simplify creating acceptance tests using Cucumber'
|
15
|
-
# My attempts to break this line up to meet the 120 char limit we have set
|
16
|
-
# have proved fruitles so far!
|
17
|
-
# rubocop:disable Metrics/LineLength
|
18
|
-
spec.description = 'Quke tries to simplify the process of writing and running acceptance tests by setting up Cucumber for you. It handles the config to allow you to run your tests in Firefox and Chrome, or the headless browser PhantomJS. It also has out of the box setup for using Browserstack automate. This leaves you to focus on just your features and steps.'
|
19
|
-
# rubocop:enable Metrics/LineLength
|
20
|
-
spec.homepage = 'https://github.com/DEFRA/quke'
|
21
|
-
spec.license = 'Nonstandard'
|
22
|
-
|
23
|
-
# Prevent pushing this gem to RubyGems.org. To allow pushes either set the
|
24
|
-
# 'allowed_push_host' to allow pushing to a single host or delete this section
|
25
|
-
# to allow pushing to any host.
|
26
|
-
if spec.respond_to?(:metadata)
|
27
|
-
spec.metadata['allowed_push_host'] = 'https://rubygems.org/'
|
28
|
-
else
|
29
|
-
raise 'RubyGems 2.0 or newer is required to protect /
|
30
|
-
against public gem pushes.'
|
31
|
-
end
|
32
|
-
|
33
|
-
spec.files = `git ls-files -z`
|
34
|
-
.split("\x0")
|
35
|
-
.reject { |f| f.match(%r{^(test|spec|features)/}) }
|
36
|
-
spec.bindir = 'exe'
|
37
|
-
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
38
|
-
spec.require_paths = ['lib']
|
39
|
-
|
40
|
-
spec.required_ruby_version = '>= 1.9'
|
41
|
-
|
42
|
-
# We need the cucumber gem to use cucumber, obviously!
|
43
|
-
spec.add_dependency 'cucumber', '~> 2.4'
|
44
|
-
|
45
|
-
# We use capybara to drive whichever browser we are using, and by drive we
|
46
|
-
# mean things like fill_in x, click_on y etc. Capybara makes it much easier to
|
47
|
-
# do this, though if you're willing to go a level lower you can write your own
|
48
|
-
# code to tell selenium how to interact with a web page
|
49
|
-
spec.add_dependency 'capybara', '~> 2.9'
|
50
|
-
|
51
|
-
# We bring in rspec-expectations to simplify how to actually test if a page is
|
52
|
-
# correct. For example you can test you are on the right page in a step using
|
53
|
-
# expect(page).to have_text 'Welcome to test nirvana!'
|
54
|
-
spec.add_dependency 'rspec-expectations', '~> 3.4'
|
55
|
-
|
56
|
-
# This is the first of our web drivers i.e. the bits that allow capybara to
|
57
|
-
# to drive an actual browser. Poltergeist is used with a headless browser
|
58
|
-
# called phantomjs, which is superfast and great for using on CI servers
|
59
|
-
# as it has no other dependencies
|
60
|
-
spec.add_dependency 'poltergeist', '~> 1.10'
|
61
|
-
|
62
|
-
# selenium-webdriver is used to drive real browsers that may be installed,
|
63
|
-
# for example Firefox, Chrome and Internet Explorer. The benefit of selenium
|
64
|
-
# is you can actually see the tests interacting with the browser, the downside
|
65
|
-
# is they run slower and isn't best suited to a CI environment.
|
66
|
-
spec.add_dependency 'selenium-webdriver', '~> 2.53'
|
67
|
-
|
68
|
-
# Needed when wishing to use Chrome for selenium tests. We could have chosen
|
69
|
-
# to install the chromedriver separately (and it seems more recent tutorials
|
70
|
-
# do it in that way). However in an effort to make using this gem as simple
|
71
|
-
# as possible we have gone with using the chromedriver-helper. To quote
|
72
|
-
# from it "Easy installation and use of chromedriver, the Chromium project's
|
73
|
-
# selenium webdriver adapter."
|
74
|
-
spec.add_dependency 'chromedriver-helper', '~> 1.0'
|
75
|
-
|
76
|
-
# Experience has shown that keeping tests dry helps make them more
|
77
|
-
# maintainable over time. One practice that helps is the use of the
|
78
|
-
# page object pattern. A page object wraps up all functionality for describing
|
79
|
-
# and interacting with a page into a single object. This object can then be
|
80
|
-
# referred to in the steps, rather than risk duplicating the logic in
|
81
|
-
# different steps. Site_Prism provides a page object framework, and we build
|
82
|
-
# it into the gem so users of Quke don't have to add and setup this dependency
|
83
|
-
# themselves
|
84
|
-
spec.add_dependency 'site_prism', '~> 2.9'
|
85
|
-
|
86
|
-
# Capybara includes a method called save_and_open_page. Without Launchy it
|
87
|
-
# will still save to file a copy of the source html of the page in question
|
88
|
-
# at that time. However simply adding this line into the gemfile means it
|
89
|
-
# will instead open in the default browser instead.
|
90
|
-
spec.add_dependency 'launchy', '~> 2.4'
|
91
|
-
|
92
|
-
# Ruby bindings for BrowserStack Local. This gem handles downloading and
|
93
|
-
# installing the right version of the binary for the OS Quke is running on,
|
94
|
-
# and provides an API for managing it.
|
95
|
-
spec.add_dependency 'browserstack-local'
|
96
|
-
|
97
|
-
spec.add_development_dependency 'bundler', '~> 1.12'
|
98
|
-
spec.add_development_dependency 'github_changelog_generator', '~> 1.13'
|
99
|
-
spec.add_development_dependency 'rake', '~> 10.5'
|
100
|
-
spec.add_development_dependency 'rdoc', '~> 4.2'
|
101
|
-
spec.add_development_dependency 'rspec', '~> 3.5'
|
102
|
-
spec.add_development_dependency 'simplecov', '~> 0.13'
|
103
|
-
spec.add_development_dependency 'webmock', '~> 3.1'
|
104
|
-
end
|
105
|
-
# rubocop:enable Metrics/BlockLength
|
data/quke.png
DELETED
Binary file
|