test_linker 0.1.1 → 1.0.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.
- data/.infinity_test +7 -0
- data/.rspec +1 -1
- data/ChangeLog.rdoc +26 -0
- data/Gemfile +4 -6
- data/README.rdoc +35 -34
- data/Rakefile +39 -36
- data/features/step_definitions/get_info_steps.rb +12 -12
- data/features/support/env.rb +8 -4
- data/lib/core_ext/hash_patch.rb +24 -0
- data/lib/core_ext/xmlrpc_client_patch.rb +7 -0
- data/lib/test_linker.rb +42 -9
- data/lib/test_linker/helpers.rb +68 -81
- data/lib/test_linker/version.rb +1 -1
- data/lib/test_linker/wrapper.rb +147 -158
- data/spec/core_ext/xmlrpc_client_patch_spec.rb +16 -0
- data/spec/spec_helper.rb +23 -5
- data/spec/test_linker/wrapper_spec.rb +168 -0
- data/spec/test_linker_spec.rb +26 -0
- data/test_linker.gemspec +32 -43
- metadata +148 -119
- data/gemspec.yml +0 -25
data/lib/test_linker/helpers.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/error')
|
2
2
|
|
3
3
|
# This module contains methods that aren't a part of the TestLink API. They
|
4
4
|
# intend to make accessing TestLink database info easier.
|
@@ -18,17 +18,14 @@ module TestLinker::Helpers
|
|
18
18
|
#
|
19
19
|
# @param [String] project_name Name of the project to search for.
|
20
20
|
# @return [Fixnum] ID of project matching project_name.
|
21
|
-
|
22
|
-
# project_name.
|
23
|
-
def test_project_id project_name
|
21
|
+
def project_id project_name
|
24
22
|
if @version < "1.0"
|
25
|
-
project = projects.find { |project| project[
|
23
|
+
project = projects.find { |project| project[:name] == project_name }
|
26
24
|
else
|
27
|
-
project =
|
28
|
-
raise TestLinker::Error, project['message'] if project['code']
|
25
|
+
project = project_by_name(project_name).first
|
29
26
|
end
|
30
27
|
|
31
|
-
project.nil? ? nil : project[
|
28
|
+
project.nil? ? nil : project[:id].to_i
|
32
29
|
end
|
33
30
|
|
34
31
|
# Gets info about test plans within a project
|
@@ -37,21 +34,19 @@ module TestLinker::Helpers
|
|
37
34
|
# @param [String] plan_name Name of the plan to search for.
|
38
35
|
# @return [Fixnum] ID of plan matching project_name and plan_name. 0 if the
|
39
36
|
# test plan wasn't found.
|
40
|
-
# @raise [RuntimeError] When unable to find matching project and plan names.
|
41
37
|
def test_plan_id(project_name, plan_name)
|
42
38
|
if @version < "1.0"
|
43
|
-
project_id =
|
44
|
-
test_plans =
|
39
|
+
project_id = project_id project_name
|
40
|
+
test_plans = test_plans(project_id)
|
45
41
|
|
46
42
|
test_plan = test_plans.first.values.find do |project_test_plan|
|
47
|
-
project_test_plan[
|
43
|
+
project_test_plan[:name] == plan_name
|
48
44
|
end
|
49
45
|
else
|
50
46
|
test_plan = test_plan_by_name(project_name, plan_name).first
|
51
|
-
raise TestLinker::Error, test_plan['message'] if test_plan['code']
|
52
47
|
end
|
53
48
|
|
54
|
-
test_plan.nil? ? nil : test_plan[
|
49
|
+
test_plan.nil? ? nil : test_plan[:id].to_i
|
55
50
|
end
|
56
51
|
|
57
52
|
# Gets the ID for the given build name.
|
@@ -60,52 +55,57 @@ module TestLinker::Helpers
|
|
60
55
|
# @param [String] plan_name Name of the plan to search for.
|
61
56
|
# @param [String] build_name Name of the build to search for.
|
62
57
|
# @return [Fixnum] ID of plan matching project_name and plan_name
|
63
|
-
# @raise [TestLinker::Error] When unable to find matching
|
64
|
-
# project/plan/build names.
|
65
58
|
def build_id(project_name, plan_name, build_name)
|
66
59
|
plan_id = test_plan_id(project_name, plan_name)
|
67
60
|
builds = builds_for_test_plan plan_id
|
68
61
|
|
69
|
-
builds.
|
70
|
-
|
71
|
-
return build['id'].to_i
|
72
|
-
end
|
62
|
+
build = builds.find do |build|
|
63
|
+
build[:name] == build_name
|
73
64
|
end
|
74
65
|
|
75
|
-
|
76
|
-
|
66
|
+
build.nil? ? nil : build[:id].to_i
|
67
|
+
end
|
68
|
+
|
69
|
+
# Finds a list of projects whose attribute (given via the +match_attribute+
|
70
|
+
# parameter) matches +regex+.
|
71
|
+
#
|
72
|
+
# @param [Regexp] regex The expression to match project names on.
|
73
|
+
# @param [Symbol] match_attribute Attribute of the projects to match on.
|
74
|
+
# @return [Array] An array of projects that match the Regexp.
|
75
|
+
def find_projects(regex, match_attribute=:name)
|
76
|
+
project_list = projects
|
77
|
+
|
78
|
+
project_list.find_all do |project|
|
79
|
+
project[match_attribute] =~ regex
|
80
|
+
end
|
77
81
|
end
|
78
82
|
|
79
|
-
#
|
83
|
+
# Finds a list of test plans whose attribute (given via the +match_attribute+
|
84
|
+
# parameter) matches +regex+.
|
85
|
+
#
|
86
|
+
# @param [Fixnum,String] project_id ID of the project that the test plans
|
87
|
+
# belong to.
|
80
88
|
# @param [Regexp] regex The expression to match test plan names on.
|
81
89
|
# @return [Array] An array of test plans that match the Regexp.
|
82
|
-
def find_test_plans(project_id, regex)
|
83
|
-
|
84
|
-
test_plan_list = project_test_plans(project_id).first
|
90
|
+
def find_test_plans(project_id, regex, match_attribute=:name)
|
91
|
+
test_plan_list = test_plans(project_id)
|
85
92
|
|
86
|
-
test_plan_list.
|
87
|
-
|
88
|
-
list << test_plan_info
|
89
|
-
end
|
93
|
+
test_plan_list.first.values.find_all do |project_test_plan|
|
94
|
+
project_test_plan[match_attribute] =~ regex
|
90
95
|
end
|
91
|
-
|
92
|
-
list
|
93
96
|
end
|
94
|
-
|
97
|
+
|
95
98
|
# @param [String] project_name
|
96
99
|
# @param [String] suite_name
|
97
|
-
# @return [Fixnum] ID of the requested test suite.
|
98
|
-
# @raise [TestLinker::Error] If no test suite was found by the given name.
|
100
|
+
# @return [Fixnum] ID of the requested test suite. nil if not found.
|
99
101
|
def first_level_test_suite_id(project_name, suite_name)
|
100
|
-
test_suites =
|
102
|
+
test_suites = first_level_test_suites_for_project(project_id(project_name))
|
101
103
|
|
102
|
-
test_suites.
|
103
|
-
|
104
|
-
return test_suite['id'].to_i
|
105
|
-
end
|
104
|
+
test_suite = test_suites.find do |test_suite|
|
105
|
+
test_suite[:name] == suite_name
|
106
106
|
end
|
107
107
|
|
108
|
-
|
108
|
+
test_suite.nil? ? nil : test_suite[:id].to_i
|
109
109
|
end
|
110
110
|
|
111
111
|
# Gets info about test case within a test plan within a project.
|
@@ -114,21 +114,14 @@ module TestLinker::Helpers
|
|
114
114
|
# @param [String] plan_name Name of the plan to search for.
|
115
115
|
# @param [String] test_case_name Name of the test case to search for.
|
116
116
|
# @return [Hash] Info on the first matching test case.
|
117
|
-
# @raise [TestLinker::Error] When unable to find matching
|
118
|
-
# project/plan/test case names.
|
119
117
|
# @todo Need to update for having more than one of same test name inside test plan.
|
120
118
|
def test_info(project_name, plan_name, test_case_name)
|
121
119
|
test_plan_id = test_plan_id(project_name, plan_name)
|
122
120
|
test_cases = test_cases_for_test_plan(test_plan_id)
|
123
121
|
|
124
|
-
test_cases.
|
125
|
-
|
126
|
-
return test_case_info
|
127
|
-
end
|
122
|
+
test_cases.values.find do |test_case|
|
123
|
+
test_case[:name] == test_case_name
|
128
124
|
end
|
129
|
-
|
130
|
-
raise TestLinker::Error,
|
131
|
-
"Unable to find test named #{test_case_name} for #{plan_name} in #{project_name}"
|
132
125
|
end
|
133
126
|
|
134
127
|
# Gets info about test suite within a test plan within a project.
|
@@ -136,26 +129,19 @@ module TestLinker::Helpers
|
|
136
129
|
# @param [String] project_name
|
137
130
|
# @param [String] plan_name
|
138
131
|
# @param [String] suite_name
|
139
|
-
# @return [
|
140
|
-
# @raise [TestLinker::Error] When unable to find matching
|
141
|
-
# project/plan/test case names.
|
132
|
+
# @return [Hash] The name and ID of the test suite.
|
142
133
|
# @todo Need to update for having more than one of same test name inside test plan.
|
143
134
|
def suite_info(project_name, plan_name, suite_name)
|
144
135
|
test_plan_id = test_plan_id(project_name, plan_name)
|
145
136
|
test_suites = test_suites_for_test_plan(test_plan_id)
|
146
137
|
|
147
138
|
if test_suites.empty?
|
148
|
-
return
|
139
|
+
return nil
|
149
140
|
end
|
150
141
|
|
151
|
-
test_suites.
|
152
|
-
|
153
|
-
return suite
|
154
|
-
end
|
142
|
+
test_suites.find do |test_suite|
|
143
|
+
test_suite[:name].include? suite_name
|
155
144
|
end
|
156
|
-
|
157
|
-
raise TestLinker::Error,
|
158
|
-
"Unable to find suite named #{suite_name} for #{plan_name} in #{project_name}"
|
159
145
|
end
|
160
146
|
|
161
147
|
# Get the ID of a first level suite, creating it if it does not exist.
|
@@ -168,9 +154,9 @@ module TestLinker::Helpers
|
|
168
154
|
rescue RuntimeError
|
169
155
|
|
170
156
|
# Create suite if it doesn't exist.
|
171
|
-
project_id =
|
157
|
+
project_id = project_id(project_name)
|
172
158
|
|
173
|
-
create_test_suite(project_id, suite_name).first[
|
159
|
+
create_test_suite(project_id, suite_name).first[:id]
|
174
160
|
end
|
175
161
|
|
176
162
|
# Get the ID of a suite with the given parent, creating it if it does not
|
@@ -182,50 +168,51 @@ module TestLinker::Helpers
|
|
182
168
|
# @raise [TestLinker::Error] When unable to find matching
|
183
169
|
# project/plan/test case names.
|
184
170
|
def create_suite(suite_name, project_name, parent_id)
|
185
|
-
project_id =
|
171
|
+
project_id = project_id(project_name)
|
186
172
|
response = test_suites_for_test_suite(parent_id)
|
187
173
|
|
188
174
|
if response.class == Array
|
189
|
-
raise TestLinker::Error, response.first[
|
175
|
+
raise TestLinker::Error, response.first[:message]
|
190
176
|
elsif response.class == Hash
|
191
|
-
return response[
|
177
|
+
return response[:id] if response[:name] == suite_name
|
192
178
|
|
193
179
|
response.each_value do |suite|
|
194
|
-
return suite[
|
180
|
+
return suite[:id] if suite[:name] == suite_name
|
195
181
|
end
|
196
182
|
end
|
197
183
|
|
198
|
-
create_test_suite(project_id, suite_name, parent_id).first[
|
184
|
+
create_test_suite(project_id, suite_name, parent_id).first[:id]
|
199
185
|
end
|
200
186
|
|
201
187
|
# Creates test in test suite within a test plan within a project.
|
202
188
|
#
|
203
|
-
# @param [String] test_case_name
|
204
|
-
# @param [String] suite_name
|
205
189
|
# @param [String] project_name
|
190
|
+
# @param [String] plan_name
|
191
|
+
# @param [String] suite_name
|
192
|
+
# @param [String] test_case_name
|
206
193
|
# @param [String] login
|
207
194
|
# @param [String] summary
|
208
195
|
# @param [String] steps
|
209
196
|
# @param [String] expected_results
|
210
197
|
# @return [Array] array-> array[0]=test case id, array[1]=test case version
|
211
198
|
# @todo Need to update for having more than one of same test name inside test plan.
|
212
|
-
def create_test_case_by_name(
|
213
|
-
summary, steps, expected_results)
|
199
|
+
def create_test_case_by_name(project_name, plan_name, suite_name,
|
200
|
+
test_case_name, login, summary, steps, expected_results)
|
214
201
|
|
215
|
-
test_project_id = self.
|
202
|
+
test_project_id = self.project_id(project_name)
|
216
203
|
test_suite_id = self.suite_info(project_name, plan_name, suite_name)
|
217
204
|
|
218
|
-
result = create_test_case(
|
219
|
-
summary, steps, expected_results)
|
205
|
+
result = create_test_case(test_project_id, test_suite_id, test_case_name,
|
206
|
+
summary, steps, expected_results, login)
|
220
207
|
|
221
208
|
if result.any?
|
222
209
|
result.each do |result_ptr|
|
223
|
-
if result_ptr[
|
210
|
+
if result_ptr[:message].eql? "Success!"
|
224
211
|
if result_ptr.has_key? "additionalInfo"
|
225
212
|
result_info = result_ptr.fetch("additionalInfo")
|
226
|
-
if result_info[
|
227
|
-
test_case_id = result_info[
|
228
|
-
test_case_version = result_info[
|
213
|
+
if result_info[:msg].eql? "ok"
|
214
|
+
test_case_id = result_info[:id]
|
215
|
+
test_case_version = result_info[:version_number]
|
229
216
|
return [test_case_id, test_case_version]
|
230
217
|
else
|
231
218
|
return -1
|
@@ -247,7 +234,7 @@ module TestLinker::Helpers
|
|
247
234
|
# @todo Need to update for having more than one of same test name inside testplan
|
248
235
|
def add_test_case_to_test_plan_by_name(project_name, plan_name, test_case_id,
|
249
236
|
test_case_version)
|
250
|
-
test_project_id =
|
237
|
+
test_project_id = project_id(project_name)
|
251
238
|
test_plan_id = test_plan_id(project_name, plan_name)
|
252
239
|
|
253
240
|
result = add_test_case_to_test_plan(test_project_id, test_plan_id,
|
@@ -255,7 +242,7 @@ module TestLinker::Helpers
|
|
255
242
|
|
256
243
|
if result.any?
|
257
244
|
#Only way to tell if success if with the key "feature_id"
|
258
|
-
return result.has_key?(
|
245
|
+
return result.has_key?(:feature_id) ? true : false
|
259
246
|
end
|
260
247
|
end
|
261
248
|
end
|
data/lib/test_linker/version.rb
CHANGED
data/lib/test_linker/wrapper.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/error')
|
2
2
|
|
3
3
|
class TestLinker
|
4
4
|
|
@@ -8,85 +8,83 @@ class TestLinker
|
|
8
8
|
|
9
9
|
# Gets a test case by it's internal or external ID.
|
10
10
|
#
|
11
|
-
# @
|
11
|
+
# @api TestLink API version 1.0
|
12
12
|
# @param [Hash] options
|
13
13
|
# @option options [Fixnum,String] testcaseid
|
14
14
|
# @option options [Fixnum,String] testcaseexternalid
|
15
15
|
# @option options [Fixnum,String] version The test case version. Default is most recent.
|
16
16
|
# @return
|
17
17
|
def test_case(options)
|
18
|
-
|
19
|
-
args.merge! options
|
20
|
-
make_call("tl.getTestCase", args, "1.0")
|
18
|
+
make_call("tl.getTestCase", options, "1.0")
|
21
19
|
end
|
22
20
|
alias_method :getTestCase, :test_case
|
23
21
|
|
24
22
|
# Gets full path from the given node till the top using nodes_hierarchy_table.
|
25
23
|
#
|
26
|
-
# @
|
24
|
+
# @api TestLink API version 1.0
|
27
25
|
# @param [Fixnum,String] node_id
|
28
26
|
# @return
|
29
27
|
def full_path node_id
|
30
|
-
args = {
|
28
|
+
args = { :nodeID => node_id }
|
31
29
|
make_call("tl.getFullPath", args, "1.0")
|
32
30
|
end
|
33
31
|
alias_method :getFullPath, :full_path
|
34
32
|
|
35
33
|
# Gets a test suite by the given ID.
|
36
34
|
#
|
37
|
-
# @
|
35
|
+
# @api TestLink API version 1.0
|
38
36
|
# @param [Fixnum,String] suite_id
|
39
37
|
# @return
|
40
38
|
def test_suite_by_id suite_id
|
41
|
-
args = {
|
39
|
+
args = { :testsuiteid => suite_id }
|
42
40
|
make_call("tl.getTestSuiteByID", args, "1.0")
|
43
41
|
end
|
44
42
|
alias_method :getTestSuiteByID, :test_suite_by_id
|
45
43
|
|
46
|
-
# @
|
44
|
+
# @api TestLink API version 1.0
|
47
45
|
# @param [Fixnum,String] execution_id
|
48
46
|
# @return [Hash] "status", "id", "message"
|
49
47
|
def delete_execution execution_id
|
50
|
-
args = {
|
48
|
+
args = { :executionid => execution_id }
|
51
49
|
make_call("tl.deleteExecution", args, "1.0")
|
52
50
|
end
|
53
51
|
alias_method :deleteExecution, :delete_execution
|
54
52
|
|
55
|
-
# @
|
53
|
+
# @api TestLink API version 1.0
|
56
54
|
# @param [String] user_name
|
57
55
|
# @return [Boolean,Hash] true if user exists, otherwise an error structure.
|
58
56
|
def does_user_exist user_name
|
59
|
-
args = {
|
57
|
+
args = { :user => user_name }
|
60
58
|
make_call("tl.doesUserExist", args, "1.0")
|
61
59
|
end
|
62
60
|
alias_method :doesUserExist, :does_user_exist
|
63
61
|
|
64
62
|
# Checks if the given Developer Key exist.
|
65
63
|
#
|
66
|
-
# @
|
64
|
+
# @api TestLink API version 1.0
|
67
65
|
# @param [String] dev_key
|
68
66
|
# @return [Hash] "true" if it exists, otherwise error structure.
|
69
67
|
def check_dev_key dev_key
|
70
|
-
args = {
|
68
|
+
args = { :devKey => dev_key }
|
71
69
|
make_call("tl.checkDevKey", args, "1.0")
|
72
70
|
end
|
73
71
|
alias_method :checkDevKey, :check_dev_key
|
74
72
|
|
75
73
|
# Uploads an attachment for a test case execution.
|
76
74
|
#
|
77
|
-
# @
|
75
|
+
# @api TestLink API version 1.0
|
76
|
+
# @param [Fixnum,String] execution_id
|
78
77
|
# @param [String] file_name
|
79
78
|
# @param [String] mime_type
|
80
79
|
# @param [String] content The Base64 encoded content of the attachment.
|
81
|
-
# @param [Fixnum,String] execution_id
|
82
80
|
# @param [Hash] options
|
83
81
|
# @option options [String] title
|
84
82
|
# @option options [String] description
|
85
83
|
# @return
|
86
|
-
def upload_execution_attachment(file_name, mime_type, content,
|
84
|
+
def upload_execution_attachment(execution_id, file_name, mime_type, content,
|
87
85
|
options={})
|
88
|
-
args = {
|
89
|
-
|
86
|
+
args = { :executionid => execution_id, :filename => file_name,
|
87
|
+
:filetype => mime_type, :content => content }
|
90
88
|
args.merge! options
|
91
89
|
make_call("tl.uploadExecutionAttachment", args, "1.0")
|
92
90
|
end
|
@@ -95,7 +93,7 @@ class TestLinker
|
|
95
93
|
# Uploads an attachment for a Requirement. The attachment content must be
|
96
94
|
# Base64 encoded by the client before sending it.
|
97
95
|
#
|
98
|
-
# @
|
96
|
+
# @api TestLink API version 1.0
|
99
97
|
# @param [Fixnum,String] requirement_id
|
100
98
|
# @param [String] file_name
|
101
99
|
# @param [String] mime_type
|
@@ -104,10 +102,10 @@ class TestLinker
|
|
104
102
|
# @option options [String] title
|
105
103
|
# @option options [String] description
|
106
104
|
# @return
|
107
|
-
def upload_requirement_attachment(file_name, mime_type,
|
108
|
-
|
109
|
-
args = {
|
110
|
-
|
105
|
+
def upload_requirement_attachment(requirement_id, file_name, mime_type,
|
106
|
+
content, options={})
|
107
|
+
args = { :requirementid => requirement_id, :filename => file_name,
|
108
|
+
:filetype => mime_type, :content => content }
|
111
109
|
args.merge! options
|
112
110
|
make_call("tl.uploadRequirementAttachment", args, "1.0")
|
113
111
|
end
|
@@ -116,19 +114,19 @@ class TestLinker
|
|
116
114
|
# Uploads an attachment for a Requirement Specification. The attachment
|
117
115
|
# content must be Base64 encoded by the client before sending it.
|
118
116
|
#
|
119
|
-
# @
|
117
|
+
# @api TestLink API version 1.0
|
118
|
+
# @param [Fixnum,String] requirement_specification_id
|
120
119
|
# @param [String] file_name
|
121
120
|
# @param [String] mime_type
|
122
121
|
# @param [String] content The Base64 encoded content of the attachment.
|
123
|
-
# @param [Fixnum,String] requirement_id
|
124
122
|
# @param [Hash] options
|
125
123
|
# @option options [String] title
|
126
124
|
# @option options [String] description
|
127
125
|
# @return
|
128
|
-
def upload_requirement_specification_attachment(
|
129
|
-
|
130
|
-
args = {
|
131
|
-
|
126
|
+
def upload_requirement_specification_attachment(requirement_specification_id,
|
127
|
+
file_name, mime_type, content, options={})
|
128
|
+
args = { :reqspecid => requirement_specification_id, :filename => file_name,
|
129
|
+
:filetype => mime_type, :content => content }
|
132
130
|
args.merge! options
|
133
131
|
make_call("tl.uploadRequirementSpecificationAttachment", args, "1.0")
|
134
132
|
end
|
@@ -138,13 +136,13 @@ class TestLinker
|
|
138
136
|
# Assign Requirements to a test case. Capable of assigning multiple
|
139
137
|
# requirements. Requirements can belong to different Requirement Specs.
|
140
138
|
#
|
141
|
-
# @param [String] requirements
|
142
|
-
# @param [Fixnum,String] test_case_external_id
|
143
139
|
# @param [Fixnum,String] project_id
|
140
|
+
# @param [Fixnum,String] test_case_external_id
|
141
|
+
# @param [String] requirements
|
144
142
|
# @return
|
145
|
-
def assign_requirements(
|
146
|
-
args = {
|
147
|
-
|
143
|
+
def assign_requirements(project_id, test_case_external_id, requirements)
|
144
|
+
args = { :testcaseexternalid => test_case_external_id,
|
145
|
+
:testprojectid => project_id, :requirements => requirements }
|
148
146
|
make_call("tl.assignRequirements", args, "1.0b5")
|
149
147
|
end
|
150
148
|
alias_method :assignRequirements, :assign_requirements
|
@@ -152,40 +150,40 @@ class TestLinker
|
|
152
150
|
# Uploads an attachment for a Test Project. The attachment must be Base64
|
153
151
|
# encoded by the client before sending it.
|
154
152
|
#
|
155
|
-
# @
|
153
|
+
# @api TestLink API version 1.0
|
154
|
+
# @param [Fixnum,String] project_id
|
156
155
|
# @param [String] file_name
|
157
156
|
# @param [String] mime_type
|
158
157
|
# @param [String] content The Base64 encoded content of the attachment.
|
159
|
-
# @param [Fixnum,String] project_id
|
160
158
|
# @param [Hash] options
|
161
159
|
# @option options [String] title
|
162
160
|
# @option options [String] description
|
163
161
|
# @return
|
164
|
-
def
|
162
|
+
def upload_project_attachment(project_id, file_name, mime_type, content,
|
165
163
|
options={})
|
166
|
-
args = {
|
167
|
-
|
164
|
+
args = { :testprojectid => project_id, :filename => file_name,
|
165
|
+
:filetype => mime_type, :content => content }
|
168
166
|
args.merge! options
|
169
167
|
make_call("tl.uploadTestProjectAttachment", args, "1.0")
|
170
168
|
end
|
171
|
-
alias_method :uploadTestProjectAttachment, :
|
169
|
+
alias_method :uploadTestProjectAttachment, :upload_project_attachment
|
172
170
|
|
173
171
|
# Uploads an attachment for a Test Suite. The attachment must be Base64
|
174
172
|
# encoded by the client before sending it.
|
175
173
|
#
|
176
|
-
# @
|
174
|
+
# @api TestLink API version 1.0
|
175
|
+
# @param [Fixnum,String] suite_id
|
177
176
|
# @param [String] file_name
|
178
177
|
# @param [String] mime_type
|
179
178
|
# @param [String] content The Base64 encoded content of the attachment.
|
180
|
-
# @param [Fixnum,String] suite_id
|
181
179
|
# @param [Hash] options
|
182
180
|
# @option options [String] title
|
183
181
|
# @option options [String] description
|
184
182
|
# @return
|
185
|
-
def upload_test_suite_attachment(file_name, mime_type, content,
|
183
|
+
def upload_test_suite_attachment(suite_id, file_name, mime_type, content,
|
186
184
|
options={})
|
187
|
-
args = {
|
188
|
-
|
185
|
+
args = { :testsuiteid => suite_id, :filename => file_name,
|
186
|
+
:filetype => mime_type, :content => content }
|
189
187
|
args.merge! options
|
190
188
|
make_call("tl.uploadTestSuiteAttachment", args, "1.0")
|
191
189
|
end
|
@@ -194,19 +192,19 @@ class TestLinker
|
|
194
192
|
# Uploads an attachment for a Test Case. The attachment must be Base64
|
195
193
|
# encoded by the client before sending it.
|
196
194
|
#
|
197
|
-
# @
|
195
|
+
# @api TestLink API version 1.0
|
196
|
+
# @param [Fixnum,String] test_case_id
|
198
197
|
# @param [String] file_name
|
199
198
|
# @param [String] mime_type
|
200
199
|
# @param [String] content The Base64 encoded content of the attachment.
|
201
|
-
# @param [Fixnum,String] test_case_id
|
202
200
|
# @param [Hash] options
|
203
201
|
# @option options [String] title
|
204
202
|
# @option options [String] description
|
205
203
|
# @return
|
206
|
-
def upload_test_case_attachment(file_name, mime_type, content,
|
204
|
+
def upload_test_case_attachment(test_case_id, file_name, mime_type, content,
|
207
205
|
options={})
|
208
|
-
args = {
|
209
|
-
|
206
|
+
args = { :testcaseid => test_case_id, :filename => file_name,
|
207
|
+
:filetype => mime_type, :content => content }
|
210
208
|
args.merge! options
|
211
209
|
make_call("tl.uploadTestCaseAttachment", args, "1.0")
|
212
210
|
end
|
@@ -217,21 +215,20 @@ class TestLinker
|
|
217
215
|
# key id in this table The attachment must be Base64 encoded by the client
|
218
216
|
# before sending it.
|
219
217
|
#
|
220
|
-
# @
|
218
|
+
# @api TestLink API version 1.0
|
219
|
+
# @param [Fixnum,String] foreign_key_id
|
220
|
+
# @param [String] foreign_key_table
|
221
221
|
# @param [String] file_name
|
222
222
|
# @param [String] mime_type
|
223
223
|
# @param [String] content The Base64 encoded content of the attachment.
|
224
|
-
# @param [Fixnum,String] foreign_key_id
|
225
|
-
# @param [String] foreign_key_table
|
226
224
|
# @param [Hash] options
|
227
225
|
# @option options [String] title
|
228
226
|
# @option options [String] description
|
229
227
|
# @return
|
230
|
-
def upload_attachment(
|
231
|
-
|
232
|
-
args = {
|
233
|
-
|
234
|
-
"filetype" => mime_type, "content" => content }
|
228
|
+
def upload_attachment(foreign_key_id, foreign_key_table, file_name,
|
229
|
+
mime_type, content, options={})
|
230
|
+
args = { :fkid => foreign_key_id, :fktable => foreign_key_table,
|
231
|
+
:filename => file_name, :filetype => mime_type, :content => content }
|
235
232
|
args.merge! options
|
236
233
|
make_call("tl.uploadAttachment", args, "1.0")
|
237
234
|
end
|
@@ -241,7 +238,7 @@ class TestLinker
|
|
241
238
|
#
|
242
239
|
# @return [String] "Hello!"
|
243
240
|
def say_hello
|
244
|
-
make_call("tl.sayHello",
|
241
|
+
make_call("tl.sayHello", {}, "1.0b5")
|
245
242
|
end
|
246
243
|
alias_method :sayHello, :say_hello
|
247
244
|
alias_method :ping, :say_hello
|
@@ -251,14 +248,14 @@ class TestLinker
|
|
251
248
|
# @param [String] message The message to get the server to repeat back.
|
252
249
|
# @return [String] The message sent to the server.
|
253
250
|
def repeat message
|
254
|
-
make_call("tl.repeat", { str
|
251
|
+
make_call("tl.repeat", { :str => message }, "1.0b5")
|
255
252
|
end
|
256
253
|
|
257
254
|
# Returns info about the server's TestLink API.
|
258
255
|
#
|
259
256
|
# @return [String] Info about TestLink API version
|
260
257
|
def about
|
261
|
-
make_call("tl.about",
|
258
|
+
make_call("tl.about", {}, "1.0b5")
|
262
259
|
end
|
263
260
|
|
264
261
|
# Gets a list of all projects.
|
@@ -266,7 +263,7 @@ class TestLinker
|
|
266
263
|
# @return [Array<Hash>] List of all projects in TestLink and
|
267
264
|
# their associated info.
|
268
265
|
def projects
|
269
|
-
make_call("tl.getProjects", {
|
266
|
+
make_call("tl.getProjects", {}, "1.0b5" )
|
270
267
|
end
|
271
268
|
alias_method :getProjects, :projects
|
272
269
|
|
@@ -276,33 +273,32 @@ class TestLinker
|
|
276
273
|
# @return [Array<Hash>] Array of all plans in a project and their associated
|
277
274
|
# info.
|
278
275
|
# @raise [TestLinker::Error] If a project by the given ID doesn't exist.
|
279
|
-
def
|
280
|
-
args = {
|
276
|
+
def test_plans project_id
|
277
|
+
args = { :testprojectid => project_id }
|
281
278
|
response = make_call("tl.getProjectTestPlans", args, "1.0b5")
|
282
279
|
response == "" ? [{}] : response
|
283
280
|
end
|
284
|
-
alias_method :getProjectTestPlans, :
|
281
|
+
alias_method :getProjectTestPlans, :test_plans
|
285
282
|
|
286
283
|
# Info about a test project with a given name.
|
287
284
|
#
|
288
|
-
# @
|
285
|
+
# @api TestLink API version 1.0
|
289
286
|
# @param [String] project_name Name of the project to search for.
|
290
287
|
# @return [Array<Hash>] Info on matching project.
|
291
|
-
def
|
292
|
-
args = {
|
288
|
+
def project_by_name project_name
|
289
|
+
args = { :testprojectname => project_name }
|
293
290
|
make_call('tl.getTestProjectByName', args, "1.0")
|
294
291
|
end
|
295
|
-
alias_method :getTestProjectByName, :
|
292
|
+
alias_method :getTestProjectByName, :project_by_name
|
296
293
|
|
297
294
|
# Gets the test plan with the given name.
|
298
295
|
#
|
299
|
-
# @
|
300
|
-
# @param [String] plan_name Name of the plan to search for.
|
296
|
+
# @api TestLink API version 1.0
|
301
297
|
# @param [String] project_name Name of the project the plan is in.
|
298
|
+
# @param [String] plan_name Name of the plan to search for.
|
302
299
|
# @return [Array<Hash>] Info on matching plan.
|
303
|
-
def test_plan_by_name(
|
304
|
-
args = {
|
305
|
-
testprojectname: project_name }
|
300
|
+
def test_plan_by_name(project_name, plan_name)
|
301
|
+
args = { :testplanname => plan_name, :testprojectname => project_name }
|
306
302
|
make_call('tl.getTestPlanByName', args, "1.0")
|
307
303
|
end
|
308
304
|
alias_method :getTestPlanByName, :test_plan_by_name
|
@@ -312,29 +308,29 @@ class TestLinker
|
|
312
308
|
# @param [Fixnum,String] plan_id ID of the plan to get suites for.
|
313
309
|
# @return [Array<Hash>] List of all suites in plan and their associated info.
|
314
310
|
def test_suites_for_test_plan plan_id
|
315
|
-
args = {
|
311
|
+
args = { :testplanid => plan_id }
|
316
312
|
make_call("tl.getTestSuitesForTestPlan", args, "1.0b5")
|
317
313
|
end
|
318
314
|
alias_method :getTestSuitesForTestPlan, :test_suites_for_test_plan
|
319
315
|
|
320
316
|
# List test suites within a test plan alphabetically.
|
321
317
|
#
|
322
|
-
# @
|
318
|
+
# @api TestLink API version 1.0
|
323
319
|
# @param [Fixnum,String] plan_id ID of the plan to get suites for.
|
324
320
|
# @return [Array<Hash>] List of all suites in plan and their associated info.
|
325
321
|
def test_plan_platforms plan_id
|
326
|
-
args = {
|
322
|
+
args = { :testplanid => plan_id }
|
327
323
|
make_call("tl.getTestPlanPlatforms", args, "1.0")
|
328
324
|
end
|
329
325
|
alias_method :getTestPlanPlatforms, :test_plan_platforms
|
330
326
|
|
331
327
|
# Gets a list of test suites that are direct children of the given test suite.
|
332
328
|
#
|
333
|
-
# @
|
329
|
+
# @api TestLink API version 1.0
|
334
330
|
# @param [Fixnum,String] suite_id ID of the suite to get suites for.
|
335
331
|
# @return [Array<Hash>] List of all suites in plan and their associated info.
|
336
332
|
def test_suites_for_test_suite suite_id
|
337
|
-
args = {
|
333
|
+
args = { :testsuiteid => suite_id }
|
338
334
|
make_call("tl.getTestSuitesForTestSuite", args, "1.0")
|
339
335
|
end
|
340
336
|
alias_method :getTestSuitesForTestSuite, :test_suites_for_test_suite
|
@@ -344,12 +340,12 @@ class TestLinker
|
|
344
340
|
# @param [Fixnum,String] project_id ID of the project to get suites for.
|
345
341
|
# @return [Array<Hash>] List of first level suites in project and their
|
346
342
|
# associated info.
|
347
|
-
def
|
348
|
-
args = {
|
343
|
+
def first_level_test_suites_for_project project_id
|
344
|
+
args = { :testprojectid => project_id }
|
349
345
|
make_call("tl.getFirstLevelTestSuitesForTestProject", args, "1.0b5")
|
350
346
|
end
|
351
347
|
alias_method :getFirstLevelTestSuitesForTestProject,
|
352
|
-
:
|
348
|
+
:first_level_test_suites_for_project
|
353
349
|
|
354
350
|
# Info about test cases within a test plan.
|
355
351
|
#
|
@@ -368,35 +364,34 @@ class TestLinker
|
|
368
364
|
# @return [Hash] List of all test cases in the plan and their
|
369
365
|
# associated info.
|
370
366
|
def test_cases_for_test_plan(plan_id, options={})
|
371
|
-
args = {
|
367
|
+
args = { :testplanid => plan_id }
|
372
368
|
args.merge! options
|
373
369
|
make_call("tl.getTestCasesForTestPlan", args, "1.0b5")
|
374
370
|
end
|
375
371
|
alias_method :getTestCasesForTestPlan, :test_cases_for_test_plan
|
376
372
|
|
377
|
-
# @param [Fixnum,String] suite_id ID of the suite to retrieve test cases for.
|
378
373
|
# @param [Fixnum,String] project_id
|
379
|
-
# @param [
|
380
|
-
# @
|
381
|
-
# @
|
374
|
+
# @param [Fixnum,String] suite_id ID of the suite to retrieve test cases for.
|
375
|
+
# @param [Boolean] deep
|
376
|
+
# @param [String] details Default is "simple"; use "full" to get
|
382
377
|
# summary, steps & expected results.
|
383
378
|
# @return [Array<Hash>] List of test cases in the given suite and their
|
384
379
|
# associated info.
|
385
|
-
def test_cases_for_test_suite(
|
386
|
-
args = {
|
387
|
-
|
380
|
+
def test_cases_for_test_suite(project_id, suite_id, deep=true, details="")
|
381
|
+
args = { :testsuiteid => suite_id, :projectid => project_id,
|
382
|
+
:deep => deep, :details => details }
|
388
383
|
make_call("tl.getTestCasesForTestSuite", args, "1.0b5")
|
389
384
|
end
|
390
385
|
alias_method :getTestCasesForTestSuite, :test_cases_for_test_suite
|
391
386
|
|
392
387
|
# Gets the summarized results grouped by platform.
|
393
388
|
#
|
394
|
-
# @
|
389
|
+
# @api TestLink API version 1.0
|
395
390
|
# @param [Fixnum,String] plan_id
|
396
391
|
# @return [Hash] Contains "type" => platform, "total_tc" => X, "details =>
|
397
392
|
# Array of counts.
|
398
393
|
def totals_for_test_plan plan_id
|
399
|
-
args = {
|
394
|
+
args = { :testplanid => plan_id }
|
400
395
|
make_call("tl.getTotalsForTestPlan", args, "1.0")
|
401
396
|
end
|
402
397
|
alias_method :getTotalsForTestPlan, :totals_for_test_plan
|
@@ -408,14 +403,12 @@ class TestLinker
|
|
408
403
|
# @param [Fixnum,String] testcaseexternalid If not present, testcaseid must be called.
|
409
404
|
# @return [String]
|
410
405
|
def test_case_attachments options
|
411
|
-
|
412
|
-
args.merge! options
|
413
|
-
make_call("tl.getTestCaseAttachments", args, "1.0b5")
|
406
|
+
make_call("tl.getTestCaseAttachments", options, "1.0b5")
|
414
407
|
end
|
415
408
|
alias_method :getTestCaseAttachments, :test_case_attachments
|
416
409
|
|
417
|
-
# @param [Fixnum,String] test_case_external_id
|
418
410
|
# @param [Fixnum,String] project_id
|
411
|
+
# @param [Fixnum,String] test_case_external_id
|
419
412
|
# @param [Fixnum] custom_field_name
|
420
413
|
# @param [Hash] options
|
421
414
|
# @option options [String] details Changes output information. If null or 'value',
|
@@ -423,11 +416,11 @@ class TestLinker
|
|
423
416
|
# plus value and internal test case id; if 'simple', returns value plus custom
|
424
417
|
# field name, label, and type (as code).
|
425
418
|
# @return [Array<Hash>]
|
426
|
-
def test_case_custom_field_design_value(
|
427
|
-
|
428
|
-
args = {
|
429
|
-
testcaseexternalid
|
430
|
-
customfieldname
|
419
|
+
def test_case_custom_field_design_value(project_id, test_case_external_id,
|
420
|
+
custom_field_name, options={})
|
421
|
+
args = { :testprojectid => project_id,
|
422
|
+
:testcaseexternalid => test_case_external_id,
|
423
|
+
:customfieldname => custom_field_name }
|
431
424
|
args.merge! options
|
432
425
|
make_call("tl.getTestCaseCustomFieldDesignValue", args, "1.0b5")
|
433
426
|
end
|
@@ -445,19 +438,18 @@ class TestLinker
|
|
445
438
|
# @return [Array<Hash>] List of all test cases in the DB matching
|
446
439
|
# test_case_name and their associated info.
|
447
440
|
def test_case_id_by_name(test_case_name, options={})
|
448
|
-
args = {
|
441
|
+
args = { :testcasename => test_case_name }
|
449
442
|
args.merge! options
|
450
443
|
make_call("tl.getTestCaseIDByName", args, "1.0b5")
|
451
444
|
end
|
452
445
|
alias_method :getTestCaseIDByName, :test_case_id_by_name
|
453
446
|
|
454
|
-
# @param [Fixnum,String] test_case_id
|
455
|
-
# @param [Fixnum,String] build_id
|
456
447
|
# @param [Fixnum,String] plan_id
|
448
|
+
# @param [Fixnum,String] build_id
|
449
|
+
# @param [Fixnum,String] test_case_id
|
457
450
|
# @return [Array<Hash>] Single element Array containing the result Hash.
|
458
|
-
def last_execution_result(
|
459
|
-
args = {
|
460
|
-
testcaseid: test_case_id, buildid: build_id }
|
451
|
+
def last_execution_result(plan_id, build_id, test_case_id)
|
452
|
+
args = { :testplanid => plan_id, :testcaseid => test_case_id, :buildid => build_id }
|
461
453
|
make_call("tl.getLastExecutionResult", args, "1.0b5")
|
462
454
|
end
|
463
455
|
alias_method :getLastExecutionResult, :last_execution_result
|
@@ -468,7 +460,7 @@ class TestLinker
|
|
468
460
|
# @return [Array<Hash>] List of all builds for the plan and their associated
|
469
461
|
# info.
|
470
462
|
def builds_for_test_plan plan_id
|
471
|
-
args = {
|
463
|
+
args = { :testplanid => plan_id }
|
472
464
|
make_call("tl.getBuildsForTestPlan", args, "1.0b5")
|
473
465
|
end
|
474
466
|
alias_method :getBuildsForTestPlan, :builds_for_test_plan
|
@@ -476,7 +468,7 @@ class TestLinker
|
|
476
468
|
# @param [Fixnum,String] plan_id ID of the plan to get build for.
|
477
469
|
# @return [Hash] Info for the latest build for the given test plan.
|
478
470
|
def latest_build_for_test_plan plan_id
|
479
|
-
args = {
|
471
|
+
args = { :testplanid => plan_id }
|
480
472
|
make_call("tl.getLatestBuildForTestPlan", args, "1.0b5")
|
481
473
|
end
|
482
474
|
alias_method :getLatestBuildForTestPlan, :latest_build_for_test_plan
|
@@ -491,33 +483,31 @@ class TestLinker
|
|
491
483
|
# @option options [Fixnum] active
|
492
484
|
# @option options [Fixnum] public
|
493
485
|
# @return
|
494
|
-
def
|
495
|
-
args = {
|
496
|
-
testcaseprefix: test_case_prefix }
|
486
|
+
def create_project(project_name, test_case_prefix, options={})
|
487
|
+
args = { :testprojectname => project_name, :testcaseprefix => test_case_prefix }
|
497
488
|
args.merge! options
|
498
489
|
make_call("tl.createTestProject", args, "1.0b5")
|
499
490
|
end
|
500
|
-
alias_method :createTestProject, :
|
491
|
+
alias_method :createTestProject, :create_project
|
501
492
|
|
502
|
-
# @
|
503
|
-
# @param [String] plan_name
|
493
|
+
# @api TestLink API version 1.0
|
504
494
|
# @param [String] project_name
|
495
|
+
# @param [String] plan_name
|
505
496
|
# @param [Hash] options
|
506
497
|
# @option options [String] notes
|
507
498
|
# @option options [String] active Defaults to 1.
|
508
499
|
# @option options [String] public Defaults to 1.
|
509
500
|
# @return
|
510
|
-
def create_test_plan(
|
511
|
-
args = {
|
512
|
-
testprojectname: project_name }
|
501
|
+
def create_test_plan(project_name, plan_name, options={})
|
502
|
+
args = { :testplanname => plan_name, :testprojectname => project_name }
|
513
503
|
args.merge! options
|
514
504
|
make_call('tl.createTestPlan', args, "1.0")
|
515
505
|
end
|
516
506
|
alias_method :createTestPlan, :create_test_plan
|
517
507
|
|
508
|
+
# @param [Fixnum,String] project_id
|
518
509
|
# @param [String] suite_name
|
519
510
|
# @param [String] details
|
520
|
-
# @param [Fixnum,String] project_id
|
521
511
|
# @param [Hash] options
|
522
512
|
# @option options [Fixnum,String] parentid Defaults to top level.
|
523
513
|
# @option options [Fixnum] order Order inside parent container.
|
@@ -526,9 +516,9 @@ class TestLinker
|
|
526
516
|
# @option options [Boolean] actiononduplicatedname Applicable only if
|
527
517
|
# checkduplicatedname = true.
|
528
518
|
# @return [Array<Hash>] Info about results of test suite creation.
|
529
|
-
def create_test_suite(suite_name, details,
|
530
|
-
args = {
|
531
|
-
|
519
|
+
def create_test_suite(project_id, suite_name, details, options={})
|
520
|
+
args = { :testprojectid => project_id, :testsuitename => suite_name,
|
521
|
+
:details => details }
|
532
522
|
args.merge! options
|
533
523
|
make_call('tl.createTestSuite', args, "1.0b5")
|
534
524
|
end
|
@@ -536,23 +526,23 @@ class TestLinker
|
|
536
526
|
|
537
527
|
# Creates a new build for a specific test plan.
|
538
528
|
#
|
529
|
+
# @param [Fixnum,String] plan_id
|
539
530
|
# @param [String] build_name
|
540
531
|
# @param [String] build_notes
|
541
|
-
# @param [Fixnum,String] plan_id
|
542
532
|
# @return
|
543
|
-
def create_build(build_name, build_notes
|
544
|
-
args = {
|
545
|
-
|
533
|
+
def create_build(plan_id, build_name, build_notes)
|
534
|
+
args = { :testplanid => plan_id, :buildname => build_name,
|
535
|
+
:buildnotes => build_notes }
|
546
536
|
make_call("tl.createBuild", args, "1.0b5")
|
547
537
|
end
|
548
538
|
alias_method :createBuild, :create_build
|
549
539
|
|
540
|
+
# @param [Fixnum,String] project_id
|
541
|
+
# @param [Fixnum,String] suite_id
|
550
542
|
# @param [String] test_case_name
|
551
543
|
# @param [String] test_case_summary
|
552
544
|
# @param [String] test_case_steps
|
553
545
|
# @param [String] test_case_expected_results
|
554
|
-
# @param [Fixnum,String] suite_id
|
555
|
-
# @param [Fixnum,String] project_id
|
556
546
|
# @param [String] login
|
557
547
|
# @param [Hash] options
|
558
548
|
# @option options [String] preconditions
|
@@ -563,16 +553,15 @@ class TestLinker
|
|
563
553
|
# @option options [String] actiononduplicatedname
|
564
554
|
# @option options [String] executiontype
|
565
555
|
# @return
|
566
|
-
def create_test_case(test_case_name, test_case_summary,
|
567
|
-
|
568
|
-
args = {
|
569
|
-
|
570
|
-
|
571
|
-
|
572
|
-
|
573
|
-
|
574
|
-
|
575
|
-
expectedresults: test_case_expected_results }
|
556
|
+
def create_test_case(project_id, suite_id, test_case_name, test_case_summary,
|
557
|
+
test_case_steps, test_case_expected_results, login, options={})
|
558
|
+
args = { :testcasename => test_case_name,
|
559
|
+
:testsuiteid => suite_id,
|
560
|
+
:testprojectid => project_id,
|
561
|
+
:authorlogin => login,
|
562
|
+
:summary => test_case_summary,
|
563
|
+
:steps => test_case_steps,
|
564
|
+
:expectedresults => test_case_expected_results }
|
576
565
|
args.merge! options
|
577
566
|
make_call("tl.createTestCase", args, "1.0b5")
|
578
567
|
end
|
@@ -580,21 +569,21 @@ class TestLinker
|
|
580
569
|
|
581
570
|
# Adds a test case version to a test plan.
|
582
571
|
#
|
572
|
+
# @param [Fixnum,String] project_id
|
573
|
+
# @param [Fixnum,String] plan_id
|
583
574
|
# @param [Fixnum,String] test_case_external_id
|
584
575
|
# @param [Fixnum,String] test_case_version
|
585
|
-
# @param [Fixnum,String] plan_id
|
586
|
-
# @param [Fixnum,String] project_id
|
587
576
|
# @param [Hash] options Optional parameters for the method.
|
588
577
|
# @option options [String] urgency
|
589
578
|
# @option options [Fixnum] executionorder
|
590
579
|
# @option options [Fixnum] platformid Only if test plan has no platforms.
|
591
580
|
# (TestLink API >=1.0)
|
592
581
|
# @return
|
593
|
-
def add_test_case_to_test_plan(
|
594
|
-
|
595
|
-
args = {
|
596
|
-
|
597
|
-
version
|
582
|
+
def add_test_case_to_test_plan(project_id, plan_id, test_case_external_id,
|
583
|
+
test_case_version, options={})
|
584
|
+
args = { :testprojectid => project_id, :testplanid => plan_id,
|
585
|
+
:testcaseexternalid => test_case_external_id,
|
586
|
+
:version => test_case_version }
|
598
587
|
args.merge! options
|
599
588
|
make_call("tl.addTestCaseToTestPlan", args, "1.0b5")
|
600
589
|
end
|
@@ -606,9 +595,9 @@ class TestLinker
|
|
606
595
|
#
|
607
596
|
# @see #test_case_execution_result=
|
608
597
|
# @version TestLink API version 1.0 Beta 5
|
609
|
-
# @param [Fixnum,String] test_case_id ID of the test case to post results to.
|
610
|
-
# @param [String] status 'p', 'f', 's', or 'b' for Pass/Fail/Skip/Block
|
611
598
|
# @param [Fixnum,String] plan_id ID of the test plan to post results to.
|
599
|
+
# @param [Fixnum,String] test_case_id ID of the test case to post results to.
|
600
|
+
# @param [String] status 'p', 'f', or 'b' for Pass/Fail/Block
|
612
601
|
# @param [Hash] options
|
613
602
|
# @option options [Fixnum,String] buildid ID of the build to post results to.
|
614
603
|
# @option options [Fixnum,String] buildname Name of the build to post results to.
|
@@ -623,15 +612,15 @@ class TestLinker
|
|
623
612
|
# @return [Hash] "status" of posting, "id" of the execution, "message"
|
624
613
|
# giving success or failure info.
|
625
614
|
# @raise [TestLinker::Error] If result fails to be posted for any reason.
|
626
|
-
def report_test_case_result(test_case_id, status,
|
615
|
+
def report_test_case_result(plan_id, test_case_id, status, options={})
|
627
616
|
if @version >= "1.0"
|
628
617
|
message = "Method not supported in version #{@version}. "
|
629
618
|
message << "Use #test_case_execution_result="
|
630
619
|
raise TestLinker::Error, message
|
631
620
|
end
|
632
621
|
|
633
|
-
args = {
|
634
|
-
|
622
|
+
args = { :testcaseid => test_case_id, :testplanid => plan_id,
|
623
|
+
:status => status, :guess => true }
|
635
624
|
args.merge! options
|
636
625
|
result = @server.call("tl.reportTCResult", args).first
|
637
626
|
|
@@ -647,10 +636,10 @@ class TestLinker
|
|
647
636
|
# NOTE: will guess at last build, needs to be set to guarantee accuracy.
|
648
637
|
#
|
649
638
|
# @see #report_test_case_result
|
650
|
-
# @
|
651
|
-
# @param [String] test_case_id ID of the test case to post results to.
|
652
|
-
# @param [String] status 'p', 'f', 's', or 'b' for Pass/Fail/Skip/Block
|
639
|
+
# @api TestLink API version 1.0
|
653
640
|
# @param [String] plan_id ID of the test plan to post results to.
|
641
|
+
# @param [String] test_case_id ID of the test case to post results to.
|
642
|
+
# @param [String] status 'p', 'f', or 'b' for Pass/Fail/Block
|
654
643
|
# @param [Hash] options
|
655
644
|
# @option options [Fixnum] buildid ID of the build to post results to.
|
656
645
|
# @option options [String] buildname Name of the build to post results to.
|
@@ -664,15 +653,15 @@ class TestLinker
|
|
664
653
|
# @return [Hash] "status" of posting, "id" of the execution, "message"
|
665
654
|
# giving success or failure info.
|
666
655
|
# @raise [TestLinker::Error] If result fails to be posted for any reason.
|
667
|
-
def test_case_execution_result=(test_case_id, status,
|
656
|
+
def test_case_execution_result=(plan_id, test_case_id, status, options={})
|
668
657
|
if @version < "1.0"
|
669
658
|
message = "Method not supported in version #{@version}. "
|
670
659
|
message << "Use #report_test_case_result"
|
671
660
|
raise TestLinker::Error, message
|
672
661
|
end
|
673
662
|
|
674
|
-
args = {
|
675
|
-
|
663
|
+
args = { :testcaseid => test_case_id, :testplanid => plan_id,
|
664
|
+
:status => status, :guess => true }
|
676
665
|
args.merge! options
|
677
666
|
result = @server.call("tl.setTestCaseExecutionResult", args).first
|
678
667
|
|