watir_testlink_framework 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: b34ca40bd580b3b6796acb10d683f20377d27e10
4
+ data.tar.gz: 2998596d8a2d01356f251f54f03094a3ae5bffc7
5
+ SHA512:
6
+ metadata.gz: 0f19fd6c5d194906310b36af97710534e00bf2e295546f55bf1f90708f1a078c4129b1bd54fac9084512d41f4962276ba3babb8f7649a0282ec9cbb4b2eddff4
7
+ data.tar.gz: 1b1cf88307bab383a89fdbbc1bad09a143ae16f65f4ae22347fe6d2061eb68c15480fb79d4813795728d833c6ea02ada6a8bb2d40eb8a7a40269af06d5e9fbdd
data/.gitignore ADDED
@@ -0,0 +1,14 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /Gemfile.lock
4
+ /_yardoc/
5
+ /coverage/
6
+ /doc/
7
+ /pkg/
8
+ /spec/reports/
9
+ /tmp/
10
+ *.bundle
11
+ *.so
12
+ *.o
13
+ *.a
14
+ mkmf.log
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in watir_testlink_framework.gemspec
4
+ gemspec
data/LICENSE.txt ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2015 Pim Snel
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,66 @@
1
+ # Watir TestLink Framework
2
+
3
+ This is a test framework organically grew in the Lingewoud software
4
+ lab. It combines a lot of other fine software like Watir, TestLink,
5
+ Rspec, Rake, Junit etc.. to make it easy to run large sets of test
6
+ cases on different stages of sites.
7
+
8
+ The Watir TestLink Framework can be used be a developer on his
9
+ desktop but can also be easily integrated in a CI server like
10
+ Jenkins. (see: https://github.com/mipmip/jenkins-workflow-typo3)
11
+
12
+ Use it in your web project testing project.
13
+
14
+ Major Features:
15
+ - Provides TestLink RPC connection
16
+ - Run test plans from testlink
17
+ - Implements the Watir Page Object Pattern
18
+
19
+ Minor Features
20
+ - Web page screenshots
21
+ - Convert testlink requirements to rspec cases
22
+ - Export rspec cases to a testlink testcase xml file
23
+
24
+ ## Compatibility
25
+
26
+ * Only tested with TestLink 1.9.13
27
+
28
+ ## Installation
29
+
30
+ Add these lines to your application's Gemfile:
31
+
32
+ ```ruby
33
+ # This is needed as long as turboladen didn't merge
34
+ gem 'test_linker', :git => 'https://github.com/mipmip/test_linker.git'
35
+ gem 'watir_testlink_framework'
36
+ ```
37
+
38
+ And then execute:
39
+
40
+ $ bundle
41
+
42
+ ## Usage
43
+
44
+ Copy Rakefile.sample and config.yml.sample to your project dir.
45
+
46
+ Create a spec dir with naming like ```myfile_spec.rb```
47
+
48
+ Type ./bin/rake -T to list all rake commands. ATOW:
49
+
50
+ ```bash
51
+ rake spec # Run all specs with doc output
52
+ rake testlink:cases_import # Run all specs with xml output for cases import in testlink
53
+ rake testlink:plan[testplan] # run plan by testplan name
54
+ rake testlink:plan_ci # run continuious intergration plan
55
+ rake testlink:plan_production # run production testplan
56
+ rake testlink:req2spec[requirements_file] # Creates a spec file with all cases from TestLink requirements export
57
+ rake testlink:spec # Run spec(s) with junit output
58
+ ```
59
+
60
+ ## Contributing
61
+
62
+ 1. Fork it ( https://github.com/Lingewoud/watir_testlink_framework/fork )
63
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
64
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
65
+ 4. Push to the branch (`git push origin my-new-feature`)
66
+ 5. Create a new Pull Request
data/Rakefile ADDED
@@ -0,0 +1,2 @@
1
+ require "bundler/gem_tasks"
2
+
@@ -0,0 +1,5 @@
1
+ require 'rubygems'
2
+ require 'watir_testlink_framework'
3
+
4
+ ## set to your own default
5
+ task default: %w[spec]
data/config.yml.sample ADDED
@@ -0,0 +1,10 @@
1
+ ---
2
+ application: 'your site project name'
3
+ testlink:
4
+ xmlrpc_url: 'http://your.testlink.url/lib/api/xmlrpc/v1/xmlrpc.php'
5
+ apikey: 'testlink dev key'
6
+ project: 'project-name-in-testlink'
7
+ testplan_ci: 'continuous'
8
+ url_ci: 'http://ci-version.website.com'
9
+ testplan_production: 'production'
10
+ url_production: 'http://www.website.com'
@@ -0,0 +1,5 @@
1
+ desc 'Run all specs with doc output'
2
+ RSpec::Core::RakeTask.new(:spec) do |t|
3
+ t.rspec_opts = "--format documentation"
4
+ t.pattern = '**/*_spec.rb'
5
+ end
@@ -0,0 +1,49 @@
1
+ namespace :testlink do
2
+ desc 'run continuious intergration plan'
3
+ task :plan_ci do
4
+ WatirTestlinkFramework::TestLinkPlan::run_plan_cases $config['testlink']['testplan_ci']
5
+ end
6
+
7
+ desc 'run production testplan'
8
+ task :plan_production do
9
+ WatirTestlinkFramework::TestLinkPlan::run_plan_cases $config['testlink']['testplan_production']
10
+ end
11
+
12
+ desc 'run plan by testplan name'
13
+ task :plan,[:testplan] do |t, args|
14
+ WatirTestlinkFramework::TestLinkPlan::run_plan_cases args[:testplan]
15
+ end
16
+
17
+ desc 'Creates a spec file with all cases from TestLink requirements export'
18
+ task :req2spec,[:requirements_file] do |t, args|
19
+
20
+ STDOUT.puts "Enter Project Code e.g.: linge-0666 intranet"
21
+ project = STDIN.gets.strip
22
+
23
+ fileout = $config['application']+project+"_spec.rb"
24
+ fileout = fileout.gsub(/[^\w\.\-]/,"_")
25
+
26
+ convert = TestlinkRspecUtils::Convert.new
27
+ convert.requirements_to_cases($config['application'],project, args[:requirements_file], 'spec/'+fileout)
28
+ end
29
+
30
+ desc 'Run all specs with xml output for cases import in testlink'
31
+ RSpec::Core::RakeTask.new(:cases_import) do |t|
32
+ t.rspec_opts = "--format RspecTestlinkExportCases -r rspec_testlink_formatters --out tc-testlink.xml"
33
+ t.pattern = '**/*_spec.rb'
34
+
35
+ print "\nwrote output to tc-testlink.xml\n\n"
36
+ end
37
+
38
+ desc 'Run spec(s) with junit output'
39
+ RSpec::Core::RakeTask.new(:spec) do |t|
40
+
41
+ d = DateTime.now
42
+ newTarget = d.strftime("%Y%m%dT%H%M%S")
43
+
44
+ Dir.mkdir 'reports' unless File.exists?('reports')
45
+
46
+ t.rspec_opts = "--format RspecTestlinkJunitformatter -r rspec_testlink_formatters --out reports/SPEC#{newTarget}-out.xml"
47
+ t.pattern = '**/*_spec.rb'
48
+ end
49
+ end
@@ -0,0 +1,3 @@
1
+ module WatirTestlinkFramework
2
+ VERSION = "0.0.1"
3
+ end
@@ -0,0 +1,41 @@
1
+ require "watir_testlink_framework/version"
2
+ require 'rspec/core/rake_task'
3
+ require 'date'
4
+ require 'yaml'
5
+ require 'testlink_rspec_utils'
6
+ require 'rspec_testlink_formatters'
7
+ require 'test_linker'
8
+
9
+ spec = Gem::Specification.find_by_name 'watir_testlink_framework'
10
+ Dir.glob("#{spec.gem_dir}/lib/tasks/*.rake").each { |r| import r }
11
+
12
+ raise "Fatal: config.yml is missing." unless File.exists?('config.yml')
13
+
14
+ $config = YAML.load_file('config.yml')
15
+
16
+ module WatirTestlinkFramework
17
+ class TestLinkPlan
18
+
19
+ def self.run_plan_cases(plan)
20
+ #TL URL to test
21
+ #TL BuildPrefixName
22
+ # report back
23
+ server = $config['testlink']['xmlrpc_url']
24
+ dev_key = $config['testlink']['apikey']
25
+ tl_project = $config['testlink']['project']
26
+
27
+ tl = TestLinker.new(server, dev_key)
28
+
29
+ project_id = tl.project_id tl_project
30
+ plan_id = tl.test_plan_by_name(tl_project, plan)
31
+
32
+ test_cases = tl.test_cases_for_test_plan(plan_id[0][:id])
33
+ test_cases.each do |tc|
34
+ tc_customfield = tl.test_case_custom_field_design_value(project_id, tc[1][0]['full_external_id'], tc[1][0]['version'].to_i, 'RSPEC CASE ID',{:details=>''})
35
+
36
+ #TODO exit 1 when failing
37
+ system("bundle exec rake testlink:spec SPEC_OPTS=\"-e #{tc_customfield}\"")
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,29 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'watir_testlink_framework/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "watir_testlink_framework"
8
+ spec.version = WatirTestlinkFramework::VERSION
9
+ spec.authors = ["Pim Snel"]
10
+ spec.email = ["pim@lingewoud.nl"]
11
+ spec.summary = %q{Framework for testing website with Watir & TestLink}
12
+ spec.description = %q{Watir TestLink Framework combines a lot of fine software like Watir, TestLink, Rspec, Rake, Junit to make it easy to run large sets of watir test cases on different stages of sites.}
13
+ spec.homepage = "https://github.com/Lingewoud/watir_testlink_framework"
14
+ spec.license = "MIT"
15
+
16
+ spec.files = `git ls-files -z`.split("\x0")
17
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
+ spec.require_paths = ["lib"]
20
+
21
+ spec.add_development_dependency "bundler", "~> 1.7"
22
+
23
+ spec.add_runtime_dependency "rake", "~> 10.0"
24
+ spec.add_runtime_dependency "rspec", "~> 3.1"
25
+ spec.add_runtime_dependency "rspec_testlink_formatters", "~> 0"
26
+ spec.add_runtime_dependency "testlink_rspec_utils", "~> 0"
27
+ spec.add_runtime_dependency "watir", "~> 5.0"
28
+ spec.add_runtime_dependency "headless", "~> 1.0"
29
+ end
metadata ADDED
@@ -0,0 +1,156 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: watir_testlink_framework
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Pim Snel
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-01-08 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.7'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.7'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '10.0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '10.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '3.1'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '3.1'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rspec_testlink_formatters
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: testlink_rspec_utils
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: watir
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '5.0'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '5.0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: headless
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '1.0'
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '1.0'
111
+ description: Watir TestLink Framework combines a lot of fine software like Watir,
112
+ TestLink, Rspec, Rake, Junit to make it easy to run large sets of watir test cases
113
+ on different stages of sites.
114
+ email:
115
+ - pim@lingewoud.nl
116
+ executables: []
117
+ extensions: []
118
+ extra_rdoc_files: []
119
+ files:
120
+ - ".gitignore"
121
+ - Gemfile
122
+ - LICENSE.txt
123
+ - README.md
124
+ - Rakefile
125
+ - Rakefile.yml.sample
126
+ - config.yml.sample
127
+ - lib/tasks/rspec.rake
128
+ - lib/tasks/testlink.rake
129
+ - lib/watir_testlink_framework.rb
130
+ - lib/watir_testlink_framework/version.rb
131
+ - watir_testlink_framework.gemspec
132
+ homepage: https://github.com/Lingewoud/watir_testlink_framework
133
+ licenses:
134
+ - MIT
135
+ metadata: {}
136
+ post_install_message:
137
+ rdoc_options: []
138
+ require_paths:
139
+ - lib
140
+ required_ruby_version: !ruby/object:Gem::Requirement
141
+ requirements:
142
+ - - ">="
143
+ - !ruby/object:Gem::Version
144
+ version: '0'
145
+ required_rubygems_version: !ruby/object:Gem::Requirement
146
+ requirements:
147
+ - - ">="
148
+ - !ruby/object:Gem::Version
149
+ version: '0'
150
+ requirements: []
151
+ rubyforge_project:
152
+ rubygems_version: 2.4.3
153
+ signing_key:
154
+ specification_version: 4
155
+ summary: Framework for testing website with Watir & TestLink
156
+ test_files: []