testgen 0.1 → 0.2
Sign up to get free protection for your applications and to get access to all the features.
- 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'
|