testgen 0.9 → 1.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/ChangeLog +5 -0
- data/Readme.md +3 -8
- data/features/testgen_with_pageobject.feature +10 -13
- data/features/with_lib_option.feature +1 -1
- data/lib/testgen/cli.rb +1 -5
- data/lib/testgen/generators/project.rb +8 -10
- data/lib/testgen/generators/project/Gemfile.tt +3 -5
- data/lib/testgen/generators/project/env.rb.tt +3 -26
- data/lib/testgen/generators/project/hooks.rb.tt +2 -11
- data/lib/testgen/version.rb +1 -1
- metadata +3 -5
- data/features/with_gametel_option.feature +0 -44
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5fa2ee1d57159536ddeb9f9fa79b1be59d3ef803
|
4
|
+
data.tar.gz: 12049b46d9f2fe0c7cccc1c64c22bc2f78bd657c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6116f2f5815e36d1c23e1b7f91badaa1af96f0e20d6c673ca6fc3601173a196cec96847fa1a8a1998ea820a66912de90a77abc429f5e046ecc3db4681e1e4784
|
7
|
+
data.tar.gz: 2e9003430e8c90f9eeac68b63214fa0d45f85d51166d947f4a76a397ea26ec57d11832bd5cfb1ecfe492d067c0c6c24db5923440791da1ccca2b3866bb06b754
|
data/ChangeLog
CHANGED
@@ -1,3 +1,8 @@
|
|
1
|
+
=== Version 1.0 / 2017-08-31
|
2
|
+
* Removed support for Gametel
|
3
|
+
* Made web and PageObject the default generation
|
4
|
+
* Added support for DataMagic in the web generator
|
5
|
+
|
1
6
|
=== Version 0.9 / 2016-12-7
|
2
7
|
* Updated Gemfile generation to use PageObject 2.0
|
3
8
|
* Updated hooks generation to use Watir instead of WatirWebdriver
|
data/Readme.md
CHANGED
@@ -11,18 +11,13 @@ developing cucumber features. There are options that can be provided to have th
|
|
11
11
|
|
12
12
|
## Web testing
|
13
13
|
|
14
|
-
If you are testing a web application, <em>testgen</em>
|
14
|
+
If you are testing a web application, <em>testgen</em> will by default setup the project to use the PageObject gem
|
15
|
+
with Watir.
|
15
16
|
|
16
|
-
testgen project <project_name>
|
17
|
+
testgen project <project_name>
|
17
18
|
|
18
|
-
Valid options for the <em>--pageobject-driver</em> option are 'watir' or 'selenium'
|
19
|
-
|
20
19
|
## Android testing
|
21
20
|
|
22
|
-
If you are testing an android application in the emulator or on a device, <em>testgen</em> can setup the project to use the Gametel gem.
|
23
|
-
|
24
|
-
testgen project <project_name> --with-gametel
|
25
|
-
|
26
21
|
If you want to setup project to use the Appium library
|
27
22
|
|
28
23
|
testgen project <project_name> --with-appium
|
@@ -2,29 +2,26 @@ Feature: Adding support for the --pageobject-driver option
|
|
2
2
|
|
3
3
|
|
4
4
|
Scenario: Adding page-object to the Gemfile
|
5
|
-
When I run `testgen project sample
|
5
|
+
When I run `testgen project sample`
|
6
6
|
Then a file named "sample/Gemfile" should exist
|
7
7
|
And the file "sample/Gemfile" should contain "gem 'page-object', '~> 2.0'"
|
8
|
-
|
8
|
+
And the file "sample/Gemfile" should contain "gem 'data_magic'"
|
9
|
+
|
9
10
|
Scenario: Adding page-object to env.rb
|
10
|
-
When I run `testgen project sample
|
11
|
+
When I run `testgen project sample`
|
11
12
|
Then a file named "sample/features/support/env.rb" should exist
|
12
13
|
And the file "sample/features/support/env.rb" should contain "require 'page-object'"
|
13
|
-
And the file "sample/features/support/env.rb" should contain "
|
14
|
+
And the file "sample/features/support/env.rb" should contain "require 'data_magic'"
|
15
|
+
And the file "sample/features/support/env.rb" should contain "World(PageObject::PageFactory)"
|
14
16
|
|
15
17
|
Scenario: Adding the hook file for Watir
|
16
|
-
When I run `testgen project sample
|
18
|
+
When I run `testgen project sample`
|
17
19
|
Then a file named "sample/features/support/hooks.rb" should exist
|
18
20
|
And the file "sample/features/support/hooks.rb" should contain "require 'watir'"
|
19
21
|
And the file "sample/features/support/hooks.rb" should contain "@browser = Watir::Browser.new :chrome"
|
20
|
-
|
21
|
-
|
22
|
-
When I run `testgen project sample --pageobject-driver=selenium`
|
23
|
-
Then a file named "sample/features/support/hooks.rb" should exist
|
24
|
-
And the file "sample/features/support/hooks.rb" should contain "require 'selenium-webdriver'"
|
25
|
-
And the file "sample/features/support/hooks.rb" should contain "@browser = Selenium::WebDriver.for :chrome"
|
26
|
-
|
22
|
+
And the file "sample/features/support/hooks.rb" should contain "DataMagic.load_for_scenario(scenario)"
|
23
|
+
|
27
24
|
Scenario: Creating the pages directory
|
28
|
-
When I run `testgen project sample
|
25
|
+
When I run `testgen project sample`
|
29
26
|
Then a directory named "sample/features/support/pages" should exist
|
30
27
|
|
@@ -1,7 +1,7 @@
|
|
1
1
|
Feature: Adding the --with-lib flag
|
2
2
|
|
3
3
|
Background:
|
4
|
-
When I run `testgen project sample --with-lib
|
4
|
+
When I run `testgen project sample --with-lib`
|
5
5
|
|
6
6
|
Scenario: Adding the require_all gem to Gemfile
|
7
7
|
Then a file named "sample/Gemfile" should exist
|
data/lib/testgen/cli.rb
CHANGED
@@ -5,19 +5,15 @@ module TestGen
|
|
5
5
|
class CLI < Thor
|
6
6
|
|
7
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'"
|
9
8
|
method_option :with_lib, :type => :boolean, :desc => "Place shared objects under lib directory"
|
10
|
-
method_option :with_gametel, :type => :boolean, :desc => "Add support for gametel gem"
|
11
9
|
method_option :with_mohawk, :type => :boolean, :desc => 'Adds support for mohawk gem'
|
12
10
|
method_option :with_appium, :type => :boolean, :desc => 'Add support for appium'
|
13
11
|
|
14
12
|
def project(name)
|
15
|
-
driver = options[:pageobject_driver].nil? ? 'none' : options[:pageobject_driver]
|
16
13
|
with_lib = options[:with_lib] ? 'true' : 'false'
|
17
|
-
with_gametel = options[:with_gametel] ? 'true' : 'false'
|
18
14
|
with_mohawk = options[:with_mohawk] ? 'true' : 'false'
|
19
15
|
with_appium = options[:with_appium] ? 'true' : 'false'
|
20
|
-
TestGen::Generators::Project.start([name,
|
16
|
+
TestGen::Generators::Project.start([name, with_lib, with_mohawk, with_appium])
|
21
17
|
end
|
22
18
|
|
23
19
|
end
|
@@ -6,9 +6,7 @@ module TestGen
|
|
6
6
|
include Thor::Actions
|
7
7
|
|
8
8
|
argument :name, :type => :string, :desc => 'The name of the project'
|
9
|
-
argument :pageobject_driver, :type => :string, :desc => 'Driver to use with PageObject'
|
10
9
|
argument :with_lib, :type => :string, :desc => 'Place all shared objects in the lib directory'
|
11
|
-
argument :with_gametel, :type => :string, :desc => 'Add support for the gametel gem'
|
12
10
|
argument :with_mohawk, :type => :string, :desc => 'Add support for the mohawk gem'
|
13
11
|
argument :with_appium, :type => :string, :desc => 'Add support for appium gem'
|
14
12
|
|
@@ -45,7 +43,7 @@ module TestGen
|
|
45
43
|
end
|
46
44
|
|
47
45
|
def copy_hooks
|
48
|
-
template "hooks.rb.tt", "#{name}/features/support/hooks.rb"
|
46
|
+
template "hooks.rb.tt", "#{name}/features/support/hooks.rb" if gen_pageobject
|
49
47
|
end
|
50
48
|
|
51
49
|
def create_lib_directory
|
@@ -54,18 +52,18 @@ module TestGen
|
|
54
52
|
|
55
53
|
def create_pages_directory
|
56
54
|
if gen_lib
|
57
|
-
empty_directory("#{name}/lib/pages")
|
58
|
-
empty_directory("#{name}/lib/screens")
|
55
|
+
empty_directory("#{name}/lib/pages") if gen_pageobject
|
56
|
+
empty_directory("#{name}/lib/screens") unless gen_pageobject
|
59
57
|
else
|
60
|
-
empty_directory("#{name}/features/support/pages")
|
61
|
-
empty_directory("#{name}/features/support/screens")
|
58
|
+
empty_directory("#{name}/features/support/pages") if gen_pageobject
|
59
|
+
empty_directory("#{name}/features/support/screens") unless gen_pageobject
|
62
60
|
end
|
63
61
|
end
|
64
62
|
|
65
63
|
private
|
66
|
-
|
67
|
-
def
|
68
|
-
|
64
|
+
|
65
|
+
def gen_pageobject
|
66
|
+
with_mohawk == 'false' && with_appium == 'false'
|
69
67
|
end
|
70
68
|
|
71
69
|
def gen_lib
|
@@ -3,15 +3,13 @@ source 'https://rubygems.org'
|
|
3
3
|
gem 'cucumber'
|
4
4
|
gem 'rspec'
|
5
5
|
gem 'rake'
|
6
|
-
<%
|
6
|
+
<% if with_appium == 'false' and with_mohawk == 'false' -%>
|
7
7
|
gem 'page-object', '~> 2.0'
|
8
|
+
gem 'data_magic'
|
8
9
|
<% end -%>
|
9
|
-
<% if with_lib == 'true' or
|
10
|
+
<% if with_lib == 'true' or with_appium == 'true' -%>
|
10
11
|
gem 'require_all'
|
11
12
|
<% end -%>
|
12
|
-
<% if with_gametel == 'true' -%>
|
13
|
-
gem 'gametel'
|
14
|
-
<% end -%>
|
15
13
|
<% if with_mohawk == 'true' -%>
|
16
14
|
gem 'mohawk', '~> 0.1'
|
17
15
|
gem 'ffi', '1.9.0'
|
@@ -3,11 +3,9 @@ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '../../', 'lib'))
|
|
3
3
|
|
4
4
|
<% end -%>
|
5
5
|
require 'rspec'
|
6
|
-
<%
|
6
|
+
<% if with_appium == 'false' and with_mohawk == 'false' -%>
|
7
7
|
require 'page-object'
|
8
|
-
|
9
|
-
<% if with_gametel == 'true' -%>
|
10
|
-
require 'gametel'
|
8
|
+
require 'data_magic'
|
11
9
|
<% end -%>
|
12
10
|
<% if with_mohawk == 'true' -%>
|
13
11
|
require 'mohawk'
|
@@ -19,27 +17,6 @@ require 'require_all'
|
|
19
17
|
require_all 'lib'
|
20
18
|
<% end -%>
|
21
19
|
|
22
|
-
<% if with_gametel == 'true' -%>
|
23
|
-
World(Gametel::Navigation)
|
24
|
-
|
25
|
-
keystore = {
|
26
|
-
:path => File.expand_path('~/.android/debug.keystore'),
|
27
|
-
:alias => 'androiddebugkey',
|
28
|
-
:password => 'android',
|
29
|
-
:keystore_password => 'android'
|
30
|
-
}
|
31
|
-
|
32
|
-
Gametel.apk_path = PATH_TO_APK
|
33
|
-
Gametel.keystore = keystore
|
34
|
-
|
35
|
-
Before do
|
36
|
-
@driver = Gametel.start(ACTIVITY_NAME_GOES_HERE)
|
37
|
-
end
|
38
|
-
|
39
|
-
After do
|
40
|
-
Gametel.stop
|
41
|
-
end
|
42
|
-
<% end -%>
|
43
20
|
<% if with_appium == 'true' -%>
|
44
21
|
require 'appium_lib'
|
45
22
|
|
@@ -70,7 +47,7 @@ at_exit do
|
|
70
47
|
driver_quit
|
71
48
|
end
|
72
49
|
<% end -%>
|
73
|
-
<%
|
50
|
+
<% if with_appium == 'false' and with_mohawk == 'false' -%>
|
74
51
|
World(PageObject::PageFactory)
|
75
52
|
<% end -%>
|
76
53
|
<% if with_mohawk == 'true' -%>
|
@@ -1,17 +1,8 @@
|
|
1
|
-
<% if pageobject_driver.downcase == 'watir' -%>
|
2
1
|
require 'watir'
|
3
|
-
<% end %>
|
4
|
-
<% if pageobject_driver.downcase == 'selenium' -%>
|
5
|
-
require 'selenium-webdriver'
|
6
|
-
<% end %>
|
7
2
|
|
8
|
-
Before do
|
9
|
-
|
3
|
+
Before do |scenario|
|
4
|
+
DataMagic.load_for_scenario(scenario)
|
10
5
|
@browser = Watir::Browser.new :chrome
|
11
|
-
<% end %>
|
12
|
-
<% if pageobject_driver.downcase == 'selenium' -%>
|
13
|
-
@browser = Selenium::WebDriver.for :chrome
|
14
|
-
<% end %>
|
15
6
|
end
|
16
7
|
|
17
8
|
|
data/lib/testgen/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: testgen
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: '0
|
4
|
+
version: '1.0'
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jeffrey S. Morgan
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-08-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|
@@ -102,7 +102,6 @@ files:
|
|
102
102
|
- features/testgen_project.feature
|
103
103
|
- features/testgen_with_pageobject.feature
|
104
104
|
- features/with_appium.feature
|
105
|
-
- features/with_gametel_option.feature
|
106
105
|
- features/with_lib_option.feature
|
107
106
|
- features/with_mohawk_option.feature
|
108
107
|
- lib/testgen.rb
|
@@ -135,7 +134,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
135
134
|
version: '0'
|
136
135
|
requirements: []
|
137
136
|
rubyforge_project: testgen
|
138
|
-
rubygems_version: 2.5.
|
137
|
+
rubygems_version: 2.5.2
|
139
138
|
signing_key:
|
140
139
|
specification_version: 4
|
141
140
|
summary: Generators for testers using Cucumber
|
@@ -145,6 +144,5 @@ test_files:
|
|
145
144
|
- features/testgen_project.feature
|
146
145
|
- features/testgen_with_pageobject.feature
|
147
146
|
- features/with_appium.feature
|
148
|
-
- features/with_gametel_option.feature
|
149
147
|
- features/with_lib_option.feature
|
150
148
|
- features/with_mohawk_option.feature
|
@@ -1,44 +0,0 @@
|
|
1
|
-
Feature: Adding the --with-gametel flag
|
2
|
-
|
3
|
-
Scenario: Adding the require_all and gametel gems to Gemfile
|
4
|
-
When I run `testgen project sample --with-gametel`
|
5
|
-
Then a file named "sample/Gemfile" should exist
|
6
|
-
And the file "sample/Gemfile" should contain "gem 'require_all'"
|
7
|
-
And the file "sample/Gemfile" should contain "gem 'gametel'"
|
8
|
-
And the file "sample/Gemfile" should contain "gem 'rake'"
|
9
|
-
|
10
|
-
Scenario: Adding gametel to env.rb
|
11
|
-
When I run `testgen project sample --with-gametel`
|
12
|
-
Then a file named "sample/features/support/env.rb" should exist
|
13
|
-
And the file "sample/features/support/env.rb" should contain "require 'gametel'"
|
14
|
-
And the file "sample/features/support/env.rb" should contain "World(Gametel::Navigation)"
|
15
|
-
|
16
|
-
Scenario: Creating the keystore
|
17
|
-
When I run `testgen project sample --with-gametel`
|
18
|
-
Then a file named "sample/features/support/env.rb" should exist
|
19
|
-
And the file "sample/features/support/env.rb" should contain "keystore = {"
|
20
|
-
And the file "sample/features/support/env.rb" should contain ":path => File.expand_path('~/.android/debug.keystore')"
|
21
|
-
And the file "sample/features/support/env.rb" should contain ":alias => 'androiddebugkey'"
|
22
|
-
And the file "sample/features/support/env.rb" should contain ":password => 'android'"
|
23
|
-
And the file "sample/features/support/env.rb" should contain ":keystore_password => 'android'"
|
24
|
-
|
25
|
-
Scenario: Creating the Driver and hooks
|
26
|
-
When I run `testgen project sample --with-gametel`
|
27
|
-
Then a file named "sample/features/support/env.rb" should exist
|
28
|
-
And the file "sample/features/support/env.rb" should contain "@driver = Gametel.start(ACTIVITY_NAME_GOES_HERE)"
|
29
|
-
And the file "sample/features/support/env.rb" should contain "Gametel.stop"
|
30
|
-
And the file "sample/features/support/env.rb" should contain "Gametel.apk_path = PATH_TO_APK"
|
31
|
-
And the file "sample/features/support/env.rb" should contain "Gametel.keystore = keystore"
|
32
|
-
|
33
|
-
|
34
|
-
Scenario: Should not create the hooks file
|
35
|
-
When I run `testgen project sample --with-gametel`
|
36
|
-
Then a file named "sample/features/support/hooks.rb" should not exist
|
37
|
-
|
38
|
-
Scenario: Creating the screens directory under support
|
39
|
-
When I run `testgen project sample --with-gametel`
|
40
|
-
Then a directory named "sample/features/support/screens" should exist
|
41
|
-
|
42
|
-
Scenario: Creating the screens directory under lib when using --wth-lib
|
43
|
-
When I run `testgen project sample --with-gametel --with-lib`
|
44
|
-
Then a directory named "sample/lib/screens" should exist
|