lucid-gen 1.0.0 → 2.0.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/README.md +3 -3
- data/lib/lucid-gen/generator.rb +2 -2
- data/lib/lucid-gen/generators/project.rb +2 -2
- data/lib/lucid-gen/generators/project/Gemfile.tt +1 -1
- data/lib/lucid-gen/generators/project/driver-symbiont.rb +114 -0
- data/lib/lucid-gen/version.rb +1 -1
- metadata +4 -4
- data/lib/lucid-gen/generators/project/driver-fluent.rb +0 -85
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 73b13b40501b043be9137f2dfe095fea33de5e40
|
4
|
+
data.tar.gz: 1bd98b95b0dd15bc1da558537a74568551722562
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2dbf6d5d9a46c10e4f5366e5b2bbb26399fd8c0dd3c1df644f322cfa756059c81303562c10a7873de0c44948a84cc22eb38aecf09658edaaf9ada84dc55fb20f
|
7
|
+
data.tar.gz: 055d3805bb1ecd340bb36291ea3047cd6ae165a3c1fb5905c5caf2846526f76be381ff86ffb30d6d985ec4346690e1c86ce4c04c07c10dbe21ee8944a3638400
|
data/README.md
CHANGED
@@ -10,17 +10,17 @@ Install the gem as normal:
|
|
10
10
|
|
11
11
|
## Usage
|
12
12
|
|
13
|
-
The easiest way to use
|
13
|
+
The easiest way to use LucidGen would be to have it generate the default structure for you:
|
14
14
|
|
15
15
|
$ lucid-gen project project-spec
|
16
16
|
|
17
17
|
This command will create a project structure with the directory name as project-spec.
|
18
18
|
|
19
|
-
The default driver for the projects created is [
|
19
|
+
The default driver for the projects created is [Symbiont](https://github.com/jnyman/symbiont). You can change this by specifying a driver as such:
|
20
20
|
|
21
21
|
$ lucid-gen project project-spec --driver=capybara
|
22
22
|
|
23
|
-
Do note that, for the moment, LucidGen only generates driver files relevant to
|
23
|
+
Do note that, for the moment, LucidGen only generates driver files relevant to Symbiont.
|
24
24
|
|
25
25
|
## Contributing
|
26
26
|
|
data/lib/lucid-gen/generator.rb
CHANGED
@@ -5,11 +5,11 @@ module LucidGen
|
|
5
5
|
class Generator < Thor
|
6
6
|
desc 'project NAME', 'Create a new project.'
|
7
7
|
|
8
|
-
method_option :driver, aliases: '-d', type: :string, required: false, desc: "Framework driver to use. (Default value is '
|
8
|
+
method_option :driver, aliases: '-d', type: :string, required: false, desc: "Framework driver to use. (Default value is 'symbiont'.)"
|
9
9
|
|
10
10
|
def project(name)
|
11
11
|
puts "Name of project: #{name}"
|
12
|
-
driver = options[:driver].nil? ? '
|
12
|
+
driver = options[:driver].nil? ? 'symbiont' : options[:driver]
|
13
13
|
LucidGen::Generators::Project.start([name, driver])
|
14
14
|
end
|
15
15
|
end
|
@@ -38,8 +38,8 @@ module LucidGen
|
|
38
38
|
end
|
39
39
|
|
40
40
|
def copy_driver
|
41
|
-
if driver.downcase == '
|
42
|
-
copy_file 'driver-
|
41
|
+
if driver.downcase == 'symbiont'
|
42
|
+
copy_file 'driver-symbiont.rb', "#{name}/common/support/driver.rb"
|
43
43
|
end
|
44
44
|
end
|
45
45
|
|
@@ -0,0 +1,114 @@
|
|
1
|
+
begin
|
2
|
+
require 'symbiont'
|
3
|
+
rescue LoadError
|
4
|
+
STDOUT.puts ['The Symbiont test execution library is not installed.',
|
5
|
+
'The driver file is currently set to use the Symbiont library but',
|
6
|
+
'that gem was not found. Run the following command:', '',
|
7
|
+
' gem install symbiont'].join("\n")
|
8
|
+
Kernel.exit(1)
|
9
|
+
end
|
10
|
+
|
11
|
+
Domain(Symbiont::Factory)
|
12
|
+
|
13
|
+
if ENV['BROWSER']
|
14
|
+
case ENV['BROWSER']
|
15
|
+
when 'firefox', 'ff', 'ie', 'chrome'
|
16
|
+
target = ENV['BROWSER'].to_sym
|
17
|
+
else
|
18
|
+
puts "The browser #{ENV['BROWSER']} is not supported."
|
19
|
+
puts ""
|
20
|
+
puts "Supported browsers are:"
|
21
|
+
puts " firefox, ie, chrome"
|
22
|
+
Kernel.exit(1)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
module Symbiont
|
27
|
+
module Browser
|
28
|
+
|
29
|
+
@@browser = false
|
30
|
+
|
31
|
+
def self.start
|
32
|
+
unless @@browser
|
33
|
+
target = (ENV['BROWSER'] || 'firefox').to_sym
|
34
|
+
@@browser = watir_browser(target) if ENV['DRIVER'] == 'watir' or !ENV['DRIVER']
|
35
|
+
end
|
36
|
+
@@browser
|
37
|
+
end
|
38
|
+
|
39
|
+
def self.stop
|
40
|
+
@@browser.quit if @@browser
|
41
|
+
@@browser = false
|
42
|
+
end
|
43
|
+
|
44
|
+
private
|
45
|
+
|
46
|
+
def self.watir_browser(target)
|
47
|
+
if ENV['HEADLESS']
|
48
|
+
@driver = Watir::Browser.new :phantomjs
|
49
|
+
else
|
50
|
+
Watir::Browser.new(target, :http_client => client)
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
def self.client
|
55
|
+
Selenium::WebDriver::Remote::Http::Default.new
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
AfterConfiguration do |config|
|
61
|
+
puts("Specs are being executed from: #{config.spec_location}")
|
62
|
+
end
|
63
|
+
|
64
|
+
Before('~@manual','~@practice','~@sequence') do
|
65
|
+
@driver = Symbiont::Browser.start
|
66
|
+
end
|
67
|
+
|
68
|
+
AfterStep('@pause') do
|
69
|
+
print 'Press ENTER to continue...'
|
70
|
+
STDIN.getc
|
71
|
+
end
|
72
|
+
|
73
|
+
AfterStep do
|
74
|
+
if ENV['LATENCY']
|
75
|
+
sleep 2
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
79
|
+
After do |scenario|
|
80
|
+
Dir::mkdir('results') if not File.directory?('results')
|
81
|
+
|
82
|
+
def screenshot_name(type, name)
|
83
|
+
screenshot = "./results/#{type}_#{name.gsub(' ','_').gsub(/[^0-9A-Za-z_]/, '')}.png"
|
84
|
+
|
85
|
+
if @driver
|
86
|
+
encoded_img = @driver.driver.screenshot_as(:base64)
|
87
|
+
embed("data:image/png;base64,#{encoded_img}", 'image/png')
|
88
|
+
|
89
|
+
return screenshot
|
90
|
+
end
|
91
|
+
end
|
92
|
+
|
93
|
+
if scenario.failed?
|
94
|
+
screenshot = screenshot_name('FAILED', scenario.name)
|
95
|
+
end
|
96
|
+
|
97
|
+
if ENV['SCREENS']
|
98
|
+
if scenario.passed?
|
99
|
+
screenshot = screenshot_name('PASSED', scenario.name)
|
100
|
+
end
|
101
|
+
end
|
102
|
+
|
103
|
+
Symbiont::Browser.stop
|
104
|
+
end
|
105
|
+
|
106
|
+
After do |scenario|
|
107
|
+
if ENV['QUICKFAIL']
|
108
|
+
Lucid.wants_to_quit = true if scenario.failed?
|
109
|
+
end
|
110
|
+
end
|
111
|
+
|
112
|
+
at_exit do
|
113
|
+
Symbiont::Browser.stop
|
114
|
+
end
|
data/lib/lucid-gen/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lucid-gen
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jeff Nyman
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-05-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -73,7 +73,7 @@ files:
|
|
73
73
|
- lib/lucid-gen/generator.rb
|
74
74
|
- lib/lucid-gen/generators/project.rb
|
75
75
|
- lib/lucid-gen/generators/project/Gemfile.tt
|
76
|
-
- lib/lucid-gen/generators/project/driver-
|
76
|
+
- lib/lucid-gen/generators/project/driver-symbiont.rb
|
77
77
|
- lib/lucid-gen/generators/project/errors.rb
|
78
78
|
- lib/lucid-gen/version.rb
|
79
79
|
- lucid-gen.gemspec
|
@@ -97,7 +97,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
97
97
|
version: '0'
|
98
98
|
requirements: []
|
99
99
|
rubyforge_project:
|
100
|
-
rubygems_version: 2.
|
100
|
+
rubygems_version: 2.2.2
|
101
101
|
signing_key:
|
102
102
|
specification_version: 4
|
103
103
|
summary: Lucid Test Repository Project Generator
|
@@ -1,85 +0,0 @@
|
|
1
|
-
begin
|
2
|
-
require 'fluent'
|
3
|
-
rescue LoadError
|
4
|
-
STDOUT.puts ['The Fluent test execution library is not installed.',
|
5
|
-
'The driver file is currently set to use the Fluent library but',
|
6
|
-
'that gem was not found. Run the following command:', '',
|
7
|
-
' gem install fluent'].join("\n")
|
8
|
-
Kernel.exit(1)
|
9
|
-
end
|
10
|
-
|
11
|
-
Domain(Fluent::Factory)
|
12
|
-
|
13
|
-
module Fluent
|
14
|
-
module Browser
|
15
|
-
|
16
|
-
@@browser = false
|
17
|
-
|
18
|
-
class Selenium::WebDriver::IE::Server
|
19
|
-
old_server_args = instance_method(:server_args)
|
20
|
-
define_method(:server_args) do
|
21
|
-
old_server_args.bind(self).() << "--silent"
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
25
|
-
class Selenium::WebDriver::Chrome::Service
|
26
|
-
old_initialize = instance_method(:initialize)
|
27
|
-
define_method(:initialize) do |executable_path, port, *extra_args|
|
28
|
-
old_initialize.bind(self).call(executable_path, port, '--silent', *extra_args)
|
29
|
-
end
|
30
|
-
end
|
31
|
-
|
32
|
-
def self.start
|
33
|
-
unless @@browser
|
34
|
-
target = ENV['BROWSER'] || 'firefox'
|
35
|
-
@@browser = watir_browser(target)
|
36
|
-
end
|
37
|
-
@@browser
|
38
|
-
end
|
39
|
-
|
40
|
-
def self.stop
|
41
|
-
@@browser.quit if @@browser
|
42
|
-
@@browser = false
|
43
|
-
end
|
44
|
-
|
45
|
-
private
|
46
|
-
|
47
|
-
def self.watir_browser(target)
|
48
|
-
Watir::Browser.new(target.to_sym)
|
49
|
-
end
|
50
|
-
end
|
51
|
-
end
|
52
|
-
|
53
|
-
AfterConfiguration do |config|
|
54
|
-
puts("Specs are being executed from: #{config.spec_location}")
|
55
|
-
end
|
56
|
-
|
57
|
-
Before('~@practice','~@sequence') do
|
58
|
-
@browser = Fluent::Browser.start
|
59
|
-
end
|
60
|
-
|
61
|
-
AfterStep('@pause') do
|
62
|
-
print 'Press ENTER to continue...'
|
63
|
-
STDIN.getc
|
64
|
-
end
|
65
|
-
|
66
|
-
After do |scenario|
|
67
|
-
if scenario.failed?
|
68
|
-
Dir::mkdir('results') if not File.directory?('results')
|
69
|
-
screenshot = "./results/FAILED_#{scenario.name.gsub(' ','_').gsub(/[^0-9A-Za-z_]/, '')}.png"
|
70
|
-
|
71
|
-
if @browser
|
72
|
-
# This way attempts to save the screenshot as a file.
|
73
|
-
#@browser.driver.save_screenshot(screenshot)
|
74
|
-
|
75
|
-
# This way the image is encoded into the results.
|
76
|
-
encoded_img = @browser.driver.screenshot_as(:base64)
|
77
|
-
embed("data:image/png;base64,#{encoded_img}", 'image/png')
|
78
|
-
end
|
79
|
-
end
|
80
|
-
Fluent::Browser.stop
|
81
|
-
end
|
82
|
-
|
83
|
-
at_exit do
|
84
|
-
Fluent::Browser.stop
|
85
|
-
end
|