testgen 0.1 → 0.2
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.
- data/ChangeLog +3 -0
- data/Rakefile +1 -9
- data/features/testgen_with_pageobject.feature +27 -0
- data/lib/testgen/cli.rb +5 -1
- data/lib/testgen/generators/project.rb +8 -3
- data/lib/testgen/generators/project/Gemfile.tt +5 -0
- data/lib/testgen/generators/project/{cucumber.yml → cucumber.yml.tt} +0 -0
- data/lib/testgen/generators/project/env.rb.tt +10 -0
- data/lib/testgen/generators/project/hooks.rb.tt +20 -0
- data/lib/testgen/version.rb +1 -1
- metadata +8 -5
- data/lib/testgen/generators/project/Gemfile +0 -2
- data/lib/testgen/generators/project/env.rb +0 -1
data/ChangeLog
CHANGED
data/Rakefile
CHANGED
@@ -3,11 +3,6 @@ require 'rspec/core/rake_task'
|
|
3
3
|
require 'cucumber'
|
4
4
|
require 'cucumber/rake/task'
|
5
5
|
|
6
|
-
RSpec::Core::RakeTask.new(:spec) do |spec|
|
7
|
-
spec.ruby_opts = "-I lib:spec"
|
8
|
-
spec.pattern = 'spec/**/*_spec.rb'
|
9
|
-
end
|
10
|
-
task :spec
|
11
6
|
|
12
7
|
Cucumber::Rake::Task.new(:features, "Run features") do |t|
|
13
8
|
t.profile = 'default'
|
@@ -17,7 +12,4 @@ task :lib do
|
|
17
12
|
$LOAD_PATH.unshift(File.expand_path("lib", File.dirname(__FILE__)))
|
18
13
|
end
|
19
14
|
|
20
|
-
|
21
|
-
task :test => ['spec', 'features']
|
22
|
-
|
23
|
-
task :default => :test
|
15
|
+
task :default => :features
|
@@ -0,0 +1,27 @@
|
|
1
|
+
Feature: Adding support for the --pageobject-driver option
|
2
|
+
|
3
|
+
|
4
|
+
Scenario: Adding page-object to the Gemfile
|
5
|
+
When I run `testgen project sample --pageobject-driver=watir`
|
6
|
+
Then a file named "sample/Gemfile" should exist
|
7
|
+
And the file "sample/Gemfile" should contain "gem 'page-object'"
|
8
|
+
|
9
|
+
Scenario: Adding page-object to env.rb
|
10
|
+
When I run `testgen project sample --pageobject-driver=watir`
|
11
|
+
Then a file named "sample/features/support/env.rb" should exist
|
12
|
+
And the file "sample/features/support/env.rb" should contain "require 'page-object'"
|
13
|
+
And the file "sample/features/support/env.rb" should contain "require 'page-object/page_factory'"
|
14
|
+
And the file "sample/features/support/env.rb" should contain "World(PageObject::PageFactory)"
|
15
|
+
|
16
|
+
Scenario: Adding the hook file for Watir
|
17
|
+
When I run `testgen project sample --pageobject-driver=watir`
|
18
|
+
Then a file named "sample/features/support/hooks.rb" should exist
|
19
|
+
And the file "sample/features/support/hooks.rb" should contain "require 'watir-webdriver'"
|
20
|
+
And the file "sample/features/support/hooks.rb" should contain "@browser = Watir::Browser.new :firefox"
|
21
|
+
|
22
|
+
Scenario: Adding the hook file for Selenium
|
23
|
+
When I run `testgen project sample --pageobject-driver=selenium`
|
24
|
+
Then a file named "sample/features/support/hooks.rb" should exist
|
25
|
+
And the file "sample/features/support/hooks.rb" should contain "require 'selenium-webdriver'"
|
26
|
+
And the file "sample/features/support/hooks.rb" should contain "@browser = Selenium::Webdriver.for :firefox"
|
27
|
+
|
data/lib/testgen/cli.rb
CHANGED
@@ -3,9 +3,13 @@ require 'testgen/generators/project'
|
|
3
3
|
|
4
4
|
module TestGen
|
5
5
|
class CLI < Thor
|
6
|
+
|
6
7
|
desc "project <project_name>", "Create a new test project"
|
8
|
+
method_option :pageobject_driver, :type => :string, :required => false, :desc => "Use the PageObject gem to drive browsers. Valid values are 'watir' and 'selenium'"
|
7
9
|
def project(name)
|
8
|
-
|
10
|
+
driver = options[:pageobject_driver].nil? ? 'none' : options[:pageobject_driver]
|
11
|
+
TestGen::Generators::Project.start([name, driver])
|
9
12
|
end
|
13
|
+
|
10
14
|
end
|
11
15
|
end
|
@@ -7,6 +7,7 @@ module TestGen
|
|
7
7
|
include Thor::Actions
|
8
8
|
|
9
9
|
argument :name, :type => :string, :desc => 'The name of the project'
|
10
|
+
argument :pageobject_driver, :type => :string, :desc => 'Driver to use with PageObject'
|
10
11
|
desc "Generates a project structure for testing with Cucumber"
|
11
12
|
|
12
13
|
def self.source_root
|
@@ -18,11 +19,11 @@ module TestGen
|
|
18
19
|
end
|
19
20
|
|
20
21
|
def copy_cucumber_yml
|
21
|
-
template
|
22
|
+
template "cucumber.yml.tt", "#{name}/cucumber.yml"
|
22
23
|
end
|
23
24
|
|
24
25
|
def copy_gemfile
|
25
|
-
|
26
|
+
template "Gemfile.tt", "#{name}/Gemfile"
|
26
27
|
end
|
27
28
|
|
28
29
|
def copy_rakefile
|
@@ -36,7 +37,11 @@ module TestGen
|
|
36
37
|
end
|
37
38
|
|
38
39
|
def copy_env
|
39
|
-
|
40
|
+
template "env.rb.tt", "#{name}/features/support/env.rb"
|
41
|
+
end
|
42
|
+
|
43
|
+
def copy_hooks
|
44
|
+
template "hooks.rb.tt", "#{name}/features/support/hooks.rb" unless pageobject_driver.downcase == 'none'
|
40
45
|
end
|
41
46
|
end
|
42
47
|
end
|
File without changes
|
@@ -0,0 +1,20 @@
|
|
1
|
+
<% if pageobject_driver.downcase == 'watir' -%>
|
2
|
+
require 'watir-webdriver'
|
3
|
+
<% end %>
|
4
|
+
<% if pageobject_driver.downcase == 'selenium' -%>
|
5
|
+
require 'selenium-webdriver'
|
6
|
+
<% end %>
|
7
|
+
|
8
|
+
Before do
|
9
|
+
<% if pageobject_driver.downcase == 'watir' -%>
|
10
|
+
@browser = Watir::Browser.new :firefox
|
11
|
+
<% end %>
|
12
|
+
<% if pageobject_driver.downcase == 'selenium' -%>
|
13
|
+
@browser = Selenium::Webdriver.for :firefox
|
14
|
+
<% end %>
|
15
|
+
end
|
16
|
+
|
17
|
+
|
18
|
+
After do
|
19
|
+
@browser.close
|
20
|
+
end
|
data/lib/testgen/version.rb
CHANGED
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: testgen
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: "0.
|
5
|
+
version: "0.2"
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Jeffrey S. Morgan
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2011-09-
|
13
|
+
date: 2011-09-29 00:00:00 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: thor
|
@@ -88,13 +88,15 @@ files:
|
|
88
88
|
- features/support/env.rb
|
89
89
|
- features/support/hooks.rb
|
90
90
|
- features/testgen_project.feature
|
91
|
+
- features/testgen_with_pageobject.feature
|
91
92
|
- lib/testgen.rb
|
92
93
|
- lib/testgen/cli.rb
|
93
94
|
- lib/testgen/generators/project.rb
|
94
|
-
- lib/testgen/generators/project/Gemfile
|
95
|
+
- lib/testgen/generators/project/Gemfile.tt
|
95
96
|
- lib/testgen/generators/project/Rakefile
|
96
|
-
- lib/testgen/generators/project/cucumber.yml
|
97
|
-
- lib/testgen/generators/project/env.rb
|
97
|
+
- lib/testgen/generators/project/cucumber.yml.tt
|
98
|
+
- lib/testgen/generators/project/env.rb.tt
|
99
|
+
- lib/testgen/generators/project/hooks.rb.tt
|
98
100
|
- lib/testgen/version.rb
|
99
101
|
- testgen.gemspec
|
100
102
|
homepage: http://github.com/cheezy/testgen
|
@@ -128,3 +130,4 @@ test_files:
|
|
128
130
|
- features/support/env.rb
|
129
131
|
- features/support/hooks.rb
|
130
132
|
- features/testgen_project.feature
|
133
|
+
- features/testgen_with_pageobject.feature
|
@@ -1 +0,0 @@
|
|
1
|
-
require 'rspec-expectations'
|