venom 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/venom/generator.rb +5 -3
- data/lib/venom/generators/workshop.rb +23 -8
- data/lib/venom/generators/workshop/Gemfile.tt +3 -6
- data/lib/venom/generators/workshop/cucumber.yml +2 -0
- data/lib/venom/generators/workshop/driver.rb.tt +28 -0
- data/lib/venom/generators/workshop/env.rb.tt +0 -33
- data/lib/venom/generators/workshop/{hooks.rb → hooks.rb.tt} +8 -1
- data/lib/venom/version.rb +1 -1
- data/venom.gemspec +3 -0
- metadata +36 -3
data/lib/venom/generator.rb
CHANGED
@@ -4,15 +4,17 @@ require 'venom/generators/workshop'
|
|
4
4
|
module Venom
|
5
5
|
class Generator < Thor
|
6
6
|
desc "workshop NAME", "Create a new workshop."
|
7
|
-
method_option :driver, aliases: "-d", type: :string, required: false, desc: "
|
7
|
+
method_option :driver, aliases: "-d", type: :string, required: false, desc: "Framework driver to use. (Default value is 'symbiont'.)"
|
8
8
|
method_option :library, aliases: "-l", type: :boolean, desc: "Use a shared library directory."
|
9
|
+
method_option :restart, aliases: "-r", type: :boolean, desc: "Restart browser for each scenario."
|
9
10
|
|
10
11
|
def workshop(name)
|
11
12
|
puts "Name of workshop: #{name}"
|
12
|
-
driver = options[:driver].nil? ? '
|
13
|
+
driver = options[:driver].nil? ? 'symbiont' : options[:driver]
|
13
14
|
library = options[:library] == true ? 'true' : 'false'
|
15
|
+
restart = options[:restart] == true ? 'true' : 'false'
|
14
16
|
|
15
|
-
Venom::Generators::Workshop.start([name, driver, library])
|
17
|
+
Venom::Generators::Workshop.start([name, driver, library, restart])
|
16
18
|
end
|
17
19
|
end # class: Generator
|
18
20
|
end # module: Venom
|
@@ -7,7 +7,9 @@ module Venom
|
|
7
7
|
|
8
8
|
argument :name, type: :string, desc: "Name of the workshop."
|
9
9
|
argument :driver, type: :string, desc: "Driver to use with Symbiont."
|
10
|
-
argument :library, type: :string, desc: "Use shared library directory."
|
10
|
+
argument :library, type: :string, desc: "Use a shared library directory."
|
11
|
+
argument :restart, type: :string, desc: "Restart browser with each scenario."
|
12
|
+
|
11
13
|
desc "Generates a workshop structure."
|
12
14
|
|
13
15
|
def self.source_root
|
@@ -17,23 +19,28 @@ module Venom
|
|
17
19
|
def spit_back_values
|
18
20
|
puts "Create workshop '#{name}' using #{driver}."
|
19
21
|
puts "Use a separate library." if use_library
|
22
|
+
puts "Restart browser for each scenario." if restart_browser
|
20
23
|
end
|
21
24
|
|
22
25
|
def create_workshop_directory
|
23
26
|
empty_directory(name)
|
24
27
|
end
|
28
|
+
|
29
|
+
def create_library_directory
|
30
|
+
empty_directory("#{name}/lib") if use_library
|
31
|
+
end
|
25
32
|
|
26
33
|
def create_workshop_structure
|
27
34
|
empty_directory("#{name}/specs")
|
28
35
|
empty_directory("#{name}/specs/support")
|
29
|
-
|
36
|
+
if use_library
|
37
|
+
empty_directory("#{name}/lib/test_steps")
|
38
|
+
else
|
39
|
+
empty_directory("#{name}/specs/support/test_steps")
|
40
|
+
end
|
30
41
|
empty_directory("#{name}/specs/support/test_data")
|
31
42
|
end
|
32
|
-
|
33
|
-
def create_library_directory
|
34
|
-
empty_directory("#{name}/lib") if use_library
|
35
|
-
end
|
36
|
-
|
43
|
+
|
37
44
|
def create_definitions_directory
|
38
45
|
if use_library
|
39
46
|
empty_directory("#{name}/lib/definitions")
|
@@ -54,12 +61,16 @@ module Venom
|
|
54
61
|
template "Gemfile.tt", "#{name}/Gemfile"
|
55
62
|
end
|
56
63
|
|
64
|
+
def copy_driver
|
65
|
+
template "driver.rb.tt", "#{name}/specs/support/driver.rb"
|
66
|
+
end
|
67
|
+
|
57
68
|
def copy_env
|
58
69
|
template "env.rb.tt", "#{name}/specs/support/env.rb"
|
59
70
|
end
|
60
71
|
|
61
72
|
def copy_hooks
|
62
|
-
|
73
|
+
template "hooks.rb.tt", "#{name}/specs/support/hooks.rb"
|
63
74
|
end
|
64
75
|
|
65
76
|
private
|
@@ -67,6 +78,10 @@ module Venom
|
|
67
78
|
def use_library
|
68
79
|
library == 'true'
|
69
80
|
end
|
81
|
+
|
82
|
+
def restart_browser
|
83
|
+
restart == 'true'
|
84
|
+
end
|
70
85
|
end # class: Workshop
|
71
86
|
end # module: Generators
|
72
87
|
end # module: Venom
|
@@ -1,9 +1,6 @@
|
|
1
1
|
gem 'cucumber'
|
2
2
|
|
3
|
-
<%
|
4
|
-
gem 'symbiont'
|
5
|
-
<% end -%>
|
3
|
+
<% if driver.downcase == 'symbiont' -%>gem 'symbiont'<% end -%><% if library == 'true' -%>
|
6
4
|
|
7
|
-
|
8
|
-
gem 'require_all'
|
9
|
-
<% end -%>
|
5
|
+
|
6
|
+
gem 'require_all'<% end -%>
|
@@ -1,4 +1,6 @@
|
|
1
1
|
<% browser = "BROWSER=firefox" %>
|
2
2
|
<% std_opts = "--tags ~@wip --color --format pretty --no-source" %>
|
3
|
+
<% rpt_opts = "--format html --out output/specs-report.html" %>
|
3
4
|
|
4
5
|
default: <%= browser %> <%= std_opts %> -r specs specs
|
6
|
+
report: <%= browser %> <%= std_opts %> <%= rpt_opts %> -r specs specs
|
@@ -0,0 +1,28 @@
|
|
1
|
+
<% if library == 'true' -%>$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '../../', 'lib'))
|
2
|
+
|
3
|
+
<% end -%><% if driver.downcase == 'symbiont' %>require 'symbiont'
|
4
|
+
require 'symbiont/factory'
|
5
|
+
<% if library == 'true' -%>
|
6
|
+
require 'require_all'
|
7
|
+
|
8
|
+
require_all 'lib'
|
9
|
+
<% end -%>
|
10
|
+
module Symbiont
|
11
|
+
module Browser
|
12
|
+
|
13
|
+
def self.start
|
14
|
+
unless @browser
|
15
|
+
@browser = Watir::Browser.new(ENV['BROWSER'])
|
16
|
+
end
|
17
|
+
@browser
|
18
|
+
end
|
19
|
+
|
20
|
+
def self.stop
|
21
|
+
@browser.quit if @browser
|
22
|
+
@browser = false
|
23
|
+
end
|
24
|
+
|
25
|
+
end # module: Browser
|
26
|
+
end # module: Symbiont
|
27
|
+
|
28
|
+
World(Symbiont::Factory)<% end -%>
|
@@ -1,33 +0,0 @@
|
|
1
|
-
<% if library == 'true' -%>
|
2
|
-
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '../../', 'lib'))
|
3
|
-
|
4
|
-
<% end -%>
|
5
|
-
<% unless driver.downcase == 'no driver' -%>
|
6
|
-
require 'symbiont'
|
7
|
-
require 'symbiont/factory'
|
8
|
-
<% if library == 'true' -%>
|
9
|
-
|
10
|
-
require 'require_all'
|
11
|
-
|
12
|
-
require_all 'lib'
|
13
|
-
<% end -%>
|
14
|
-
|
15
|
-
module Symbiont
|
16
|
-
module Browser
|
17
|
-
|
18
|
-
def self.start
|
19
|
-
unless @browser
|
20
|
-
<% if driver.downcase == 'watir' -%>
|
21
|
-
@browser = Watir::Browser.new(ENV['BROWSER'])<% end %>
|
22
|
-
end
|
23
|
-
@browser
|
24
|
-
end
|
25
|
-
|
26
|
-
def self.stop
|
27
|
-
@browser.quit if @browser
|
28
|
-
end
|
29
|
-
|
30
|
-
end # module: Browser
|
31
|
-
end # module: Symbiont
|
32
|
-
|
33
|
-
World(Symbiont::Factory)<% end %>
|
@@ -2,10 +2,17 @@ AfterConfiguration do |config|
|
|
2
2
|
puts("Tests are being executed from: #{config.feature_dirs}")
|
3
3
|
end
|
4
4
|
|
5
|
+
<% if driver.downcase == 'symbiont' -%>
|
5
6
|
Before do
|
6
7
|
@browser = Symbiont::Browser.start
|
7
8
|
end
|
9
|
+
<% if restart == 'true' -%>
|
8
10
|
|
9
|
-
|
11
|
+
After do
|
10
12
|
Symbiont::Browser.stop
|
11
13
|
end
|
14
|
+
<% end -%>
|
15
|
+
|
16
|
+
at_exit do
|
17
|
+
Symbiont::Browser.stop
|
18
|
+
end<% end -%>
|
data/lib/venom/version.rb
CHANGED
data/venom.gemspec
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: venom
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,7 +10,39 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
date: 2012-08-09 00:00:00.000000000 Z
|
13
|
-
dependencies:
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: require_all
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - '='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: 1.2.1
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - '='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: 1.2.1
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: symbiont
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
34
|
+
requirements:
|
35
|
+
- - ! '>='
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: 0.1.4
|
38
|
+
type: :runtime
|
39
|
+
prerelease: false
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: 0.1.4
|
14
46
|
description: A test generator for Symbiont.
|
15
47
|
email:
|
16
48
|
- jeffnyman@gmail.com
|
@@ -31,8 +63,9 @@ files:
|
|
31
63
|
- lib/venom/generators/workshop/Gemfile.tt
|
32
64
|
- lib/venom/generators/workshop/Rakefile
|
33
65
|
- lib/venom/generators/workshop/cucumber.yml
|
66
|
+
- lib/venom/generators/workshop/driver.rb.tt
|
34
67
|
- lib/venom/generators/workshop/env.rb.tt
|
35
|
-
- lib/venom/generators/workshop/hooks.rb
|
68
|
+
- lib/venom/generators/workshop/hooks.rb.tt
|
36
69
|
- lib/venom/version.rb
|
37
70
|
- venom.gemspec
|
38
71
|
homepage: ''
|