@xihe-lab/tapd-core 2.0.0-rc.2 → 2.0.0-rc.3
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.
- package/README.md +1 -0
- package/dist/advisor/index.d.ts.map +1 -1
- package/dist/advisor/index.js +2 -0
- package/dist/advisor/index.js.map +1 -1
- package/dist/cache/read-cache.d.ts +136 -0
- package/dist/cache/read-cache.d.ts.map +1 -0
- package/dist/cache/read-cache.js +322 -0
- package/dist/cache/read-cache.js.map +1 -0
- package/dist/cache/read-cache.test.d.ts +2 -0
- package/dist/cache/read-cache.test.d.ts.map +1 -0
- package/dist/cache/read-cache.test.js +429 -0
- package/dist/cache/read-cache.test.js.map +1 -0
- package/dist/errors/index.d.ts +120 -0
- package/dist/errors/index.d.ts.map +1 -0
- package/dist/errors/index.js +429 -0
- package/dist/errors/index.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/registry/registry.d.ts +7 -0
- package/dist/registry/registry.d.ts.map +1 -1
- package/dist/registry/registry.js +9 -3
- package/dist/registry/registry.js.map +1 -1
- package/dist/registry/registry.test.js +293 -2
- package/dist/registry/registry.test.js.map +1 -1
- package/dist/tapd-client.d.ts +34 -2
- package/dist/tapd-client.d.ts.map +1 -1
- package/dist/tapd-client.js +121 -42
- package/dist/tapd-client.js.map +1 -1
- package/dist/tools/attachment.js +40 -40
- package/dist/tools/attachment.js.map +1 -1
- package/dist/tools/board.js +22 -22
- package/dist/tools/board.js.map +1 -1
- package/dist/tools/bug.js +259 -259
- package/dist/tools/bug.js.map +1 -1
- package/dist/tools/changes.js +20 -20
- package/dist/tools/changes.js.map +1 -1
- package/dist/tools/comment.js +23 -23
- package/dist/tools/comment.js.map +1 -1
- package/dist/tools/custom-fields.js +16 -16
- package/dist/tools/custom-fields.js.map +1 -1
- package/dist/tools/image.js +2 -2
- package/dist/tools/image.js.map +1 -1
- package/dist/tools/iteration.js +50 -50
- package/dist/tools/iteration.js.map +1 -1
- package/dist/tools/media.js +2 -2
- package/dist/tools/media.js.map +1 -1
- package/dist/tools/mini-comment.js +27 -27
- package/dist/tools/mini-comment.js.map +1 -1
- package/dist/tools/mini-item.js +83 -83
- package/dist/tools/mini-item.js.map +1 -1
- package/dist/tools/mini-workspace.js +5 -5
- package/dist/tools/mini-workspace.js.map +1 -1
- package/dist/tools/program.js +7 -7
- package/dist/tools/program.js.map +1 -1
- package/dist/tools/relations.js +14 -14
- package/dist/tools/relations.js.map +1 -1
- package/dist/tools/release.js +53 -53
- package/dist/tools/release.js.map +1 -1
- package/dist/tools/report.js +8 -8
- package/dist/tools/report.js.map +1 -1
- package/dist/tools/settings.js +77 -77
- package/dist/tools/settings.js.map +1 -1
- package/dist/tools/source.js +14 -14
- package/dist/tools/source.js.map +1 -1
- package/dist/tools/story.js +120 -120
- package/dist/tools/story.js.map +1 -1
- package/dist/tools/task.js +123 -123
- package/dist/tools/task.js.map +1 -1
- package/dist/tools/test.js +117 -117
- package/dist/tools/test.js.map +1 -1
- package/dist/tools/timesheet.js +23 -23
- package/dist/tools/timesheet.js.map +1 -1
- package/dist/tools/user.js +8 -8
- package/dist/tools/user.js.map +1 -1
- package/dist/tools/utility.d.ts +17 -0
- package/dist/tools/utility.d.ts.map +1 -1
- package/dist/tools/utility.js +73 -78
- package/dist/tools/utility.js.map +1 -1
- package/dist/tools/wiki.js +51 -51
- package/dist/tools/wiki.js.map +1 -1
- package/dist/tools/workflow.js +26 -26
- package/dist/tools/workflow.js.map +1 -1
- package/dist/tools/workspace.js +16 -16
- package/dist/tools/workspace.js.map +1 -1
- package/package.json +9 -8
package/dist/tools/test.js
CHANGED
|
@@ -4,11 +4,11 @@ export const testTools = [
|
|
|
4
4
|
// 测试用例 CRUD
|
|
5
5
|
{
|
|
6
6
|
name: "tapd_create_test_case",
|
|
7
|
-
description: "
|
|
7
|
+
description: "创建测试用例(名称、步骤、预期结果、前置条件)。写操作;name 必填;创建人缺省取环境变量 TAPD_NICK_NAME。返回新用例。",
|
|
8
8
|
inputSchema: z.object({
|
|
9
|
-
workspace_id: z.number().optional().describe('项目ID
|
|
10
|
-
name: z.string().describe("
|
|
11
|
-
category_id: z.string().optional().describe('分类ID;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
9
|
+
workspace_id: z.number().optional().describe('项目 ID,可省略(默认取环境变量 TAPD_DEFAULT_WORKSPACE_ID)'),
|
|
10
|
+
name: z.string().describe("测试用例名称(必填)"),
|
|
11
|
+
category_id: z.string().optional().describe('分类 ID;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
12
12
|
priority: z.string().optional().describe("优先级"),
|
|
13
13
|
status: z.string().optional().describe("状态: updating/abandon/normal"),
|
|
14
14
|
description: z.string().optional().describe("描述"),
|
|
@@ -16,9 +16,9 @@ export const testTools = [
|
|
|
16
16
|
expectresult: z.string().optional().describe("预期结果"),
|
|
17
17
|
precondition: z.string().optional().describe("前置条件"),
|
|
18
18
|
type: z.string().optional().describe("用例类型"),
|
|
19
|
-
iteration_id: z.string().optional().describe('迭代ID;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
19
|
+
iteration_id: z.string().optional().describe('迭代 ID;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
20
20
|
owner: z.string().optional().describe("负责人"),
|
|
21
|
-
creator: z.string().optional().describe("
|
|
21
|
+
creator: z.string().optional().describe("创建人(缺省取当前用户)"),
|
|
22
22
|
custom_field_one: z.string().optional().describe("自定义字段 (支持 1-200)"),
|
|
23
23
|
}),
|
|
24
24
|
handler: async (client, params) => {
|
|
@@ -37,22 +37,22 @@ export const testTools = [
|
|
|
37
37
|
},
|
|
38
38
|
{
|
|
39
39
|
name: "tapd_get_test_cases",
|
|
40
|
-
description: "
|
|
40
|
+
description: "查询测试用例列表,支持名称、状态、分类、迭代过滤与分页。只统计数量用数量统计工具。读操作;limit 默认 30、最大 200。返回用例数组。",
|
|
41
41
|
inputSchema: z.object({
|
|
42
|
-
workspace_id: z.number().optional().describe('项目ID
|
|
43
|
-
id: z.string().optional().describe('测试用例ID,支持多ID查询;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
42
|
+
workspace_id: z.number().optional().describe('项目 ID,可省略(默认取环境变量 TAPD_DEFAULT_WORKSPACE_ID)'),
|
|
43
|
+
id: z.string().optional().describe('测试用例 ID,支持多 ID查询;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
44
44
|
name: z.string().optional().describe("测试用例名称,支持模糊匹配"),
|
|
45
45
|
status: z.string().optional().describe("状态: updating/abandon/normal"),
|
|
46
46
|
priority: z.string().optional().describe("优先级"),
|
|
47
|
-
category_id: z.string().optional().describe('分类ID;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
48
|
-
iteration_id: z.string().optional().describe('迭代ID;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
47
|
+
category_id: z.string().optional().describe('分类 ID;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
48
|
+
iteration_id: z.string().optional().describe('迭代 ID;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
49
49
|
creator: z.string().optional().describe("创建人"),
|
|
50
50
|
owner: z.string().optional().describe("负责人"),
|
|
51
51
|
created: z.string().optional().describe("创建时间,支持时间查询"),
|
|
52
52
|
modified: z.string().optional().describe("修改时间,支持时间查询"),
|
|
53
53
|
custom_field_one: z.string().optional().describe("自定义字段"),
|
|
54
|
-
limit: z.number().optional().describe("返回数量,默认30,最大200"),
|
|
55
|
-
page: z.number().optional().describe("页码,默认1"),
|
|
54
|
+
limit: z.number().optional().describe("返回数量,默认 30,最大 200"),
|
|
55
|
+
page: z.number().optional().describe("页码,默认 1"),
|
|
56
56
|
order: z.string().optional().describe("排序规则"),
|
|
57
57
|
fields: z.string().optional().describe("返回字段"),
|
|
58
58
|
}),
|
|
@@ -66,15 +66,15 @@ export const testTools = [
|
|
|
66
66
|
},
|
|
67
67
|
{
|
|
68
68
|
name: "tapd_get_test_cases_count",
|
|
69
|
-
description: "
|
|
69
|
+
description: "按相同过滤条件返回测试用例数量。要看列表用用例列表查询工具。读操作。返回 {count}。",
|
|
70
70
|
inputSchema: z.object({
|
|
71
|
-
workspace_id: z.number().optional().describe('项目ID
|
|
72
|
-
id: z.string().optional().describe('测试用例ID;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
71
|
+
workspace_id: z.number().optional().describe('项目 ID,可省略(默认取环境变量 TAPD_DEFAULT_WORKSPACE_ID)'),
|
|
72
|
+
id: z.string().optional().describe('测试用例 ID;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
73
73
|
name: z.string().optional().describe("测试用例名称"),
|
|
74
74
|
status: z.string().optional().describe("状态"),
|
|
75
75
|
priority: z.string().optional().describe("优先级"),
|
|
76
|
-
category_id: z.string().optional().describe('分类ID;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
77
|
-
iteration_id: z.string().optional().describe('迭代ID;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
76
|
+
category_id: z.string().optional().describe('分类 ID;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
77
|
+
iteration_id: z.string().optional().describe('迭代 ID;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
78
78
|
creator: z.string().optional().describe("创建人"),
|
|
79
79
|
owner: z.string().optional().describe("负责人"),
|
|
80
80
|
}),
|
|
@@ -88,20 +88,20 @@ export const testTools = [
|
|
|
88
88
|
},
|
|
89
89
|
{
|
|
90
90
|
name: "tapd_update_test_case",
|
|
91
|
-
description: "
|
|
91
|
+
description: "按 ID 更新测试用例(步骤、预期结果、状态等)。写操作;id 必填。返回更新结果。",
|
|
92
92
|
inputSchema: z.object({
|
|
93
|
-
id: z.string().describe('测试用例ID
|
|
94
|
-
workspace_id: z.number().optional().describe('项目ID
|
|
93
|
+
id: z.string().describe('测试用例 ID(必填);必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
94
|
+
workspace_id: z.number().optional().describe('项目 ID,可省略(默认取环境变量 TAPD_DEFAULT_WORKSPACE_ID)'),
|
|
95
95
|
name: z.string().optional().describe("测试用例名称"),
|
|
96
96
|
status: z.string().optional().describe("状态"),
|
|
97
97
|
priority: z.string().optional().describe("优先级"),
|
|
98
|
-
category_id: z.string().optional().describe('分类ID;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
98
|
+
category_id: z.string().optional().describe('分类 ID;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
99
99
|
description: z.string().optional().describe("描述"),
|
|
100
100
|
teststeps: z.string().optional().describe("测试步骤"),
|
|
101
101
|
expectresult: z.string().optional().describe("预期结果"),
|
|
102
102
|
precondition: z.string().optional().describe("前置条件"),
|
|
103
103
|
type: z.string().optional().describe("用例类型"),
|
|
104
|
-
iteration_id: z.string().optional().describe('迭代ID;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
104
|
+
iteration_id: z.string().optional().describe('迭代 ID;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
105
105
|
owner: z.string().optional().describe("负责人"),
|
|
106
106
|
custom_field_one: z.string().optional().describe("自定义字段"),
|
|
107
107
|
}),
|
|
@@ -116,12 +116,12 @@ export const testTools = [
|
|
|
116
116
|
// 测试用例分类
|
|
117
117
|
{
|
|
118
118
|
name: "tapd_get_tcase_categories",
|
|
119
|
-
description: "
|
|
119
|
+
description: "查询测试用例分类列表。只统计数量用数量统计工具。读操作。返回分类数组。",
|
|
120
120
|
inputSchema: z.object({
|
|
121
|
-
workspace_id: z.number().optional().describe('项目ID
|
|
122
|
-
id: z.string().optional().describe('分类ID,支持多ID查询;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
121
|
+
workspace_id: z.number().optional().describe('项目 ID,可省略(默认取环境变量 TAPD_DEFAULT_WORKSPACE_ID)'),
|
|
122
|
+
id: z.string().optional().describe('分类 ID,支持多 ID查询;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
123
123
|
name: z.string().optional().describe("分类名称,支持模糊匹配"),
|
|
124
|
-
parent_id: z.string().optional().describe("父分类ID;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度"),
|
|
124
|
+
parent_id: z.string().optional().describe("父分类 ID;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度"),
|
|
125
125
|
created: z.string().optional().describe("创建时间"),
|
|
126
126
|
modified: z.string().optional().describe("修改时间"),
|
|
127
127
|
limit: z.number().optional().describe("返回数量"),
|
|
@@ -139,12 +139,12 @@ export const testTools = [
|
|
|
139
139
|
},
|
|
140
140
|
{
|
|
141
141
|
name: "tapd_get_tcase_categories_count",
|
|
142
|
-
description: "
|
|
142
|
+
description: "按相同过滤条件返回用例分类数量。要看列表用分类列表查询工具。读操作。返回 {count}。",
|
|
143
143
|
inputSchema: z.object({
|
|
144
|
-
workspace_id: z.number().optional().describe('项目ID
|
|
145
|
-
id: z.string().optional().describe('分类ID;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
144
|
+
workspace_id: z.number().optional().describe('项目 ID,可省略(默认取环境变量 TAPD_DEFAULT_WORKSPACE_ID)'),
|
|
145
|
+
id: z.string().optional().describe('分类 ID;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
146
146
|
name: z.string().optional().describe("分类名称"),
|
|
147
|
-
parent_id: z.string().optional().describe("父分类ID;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度"),
|
|
147
|
+
parent_id: z.string().optional().describe("父分类 ID;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度"),
|
|
148
148
|
}),
|
|
149
149
|
handler: async (client, params) => {
|
|
150
150
|
const workspaceId = params.workspace_id ?? TapdClient.getDefaultWorkspaceId();
|
|
@@ -156,11 +156,11 @@ export const testTools = [
|
|
|
156
156
|
},
|
|
157
157
|
{
|
|
158
158
|
name: "tapd_add_tcase_category",
|
|
159
|
-
description: "
|
|
159
|
+
description: "创建测试用例分类,可挂父分类。写操作;name 必填。返回新分类。",
|
|
160
160
|
inputSchema: z.object({
|
|
161
|
-
workspace_id: z.number().optional().describe('项目ID
|
|
162
|
-
name: z.string().describe("
|
|
163
|
-
parent_id: z.string().optional().describe("父分类ID(用于创建子分类);必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度"),
|
|
161
|
+
workspace_id: z.number().optional().describe('项目 ID,可省略(默认取环境变量 TAPD_DEFAULT_WORKSPACE_ID)'),
|
|
162
|
+
name: z.string().describe("分类名称(必填)"),
|
|
163
|
+
parent_id: z.string().optional().describe("父分类 ID(用于创建子分类);必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度"),
|
|
164
164
|
}),
|
|
165
165
|
handler: async (client, params) => {
|
|
166
166
|
const workspaceId = params.workspace_id ?? TapdClient.getDefaultWorkspaceId();
|
|
@@ -173,9 +173,9 @@ export const testTools = [
|
|
|
173
173
|
// 测试用例配置
|
|
174
174
|
{
|
|
175
175
|
name: "tapd_get_tcase_custom_fields_settings",
|
|
176
|
-
description: "
|
|
176
|
+
description: "查询测试用例自定义字段配置。读操作。返回配置数组。",
|
|
177
177
|
inputSchema: z.object({
|
|
178
|
-
workspace_id: z.number().optional().describe('项目ID
|
|
178
|
+
workspace_id: z.number().optional().describe('项目 ID,可省略(默认取环境变量 TAPD_DEFAULT_WORKSPACE_ID)'),
|
|
179
179
|
}),
|
|
180
180
|
handler: async (client, params) => {
|
|
181
181
|
const workspaceId = params.workspace_id ?? TapdClient.getDefaultWorkspaceId();
|
|
@@ -187,9 +187,9 @@ export const testTools = [
|
|
|
187
187
|
},
|
|
188
188
|
{
|
|
189
189
|
name: "tapd_get_tcase_fields_info",
|
|
190
|
-
description: "
|
|
190
|
+
description: "查询测试用例可写字段元信息(类型、是否必填)。读操作。返回字段定义数组。",
|
|
191
191
|
inputSchema: z.object({
|
|
192
|
-
workspace_id: z.number().optional().describe('项目ID
|
|
192
|
+
workspace_id: z.number().optional().describe('项目 ID,可省略(默认取环境变量 TAPD_DEFAULT_WORKSPACE_ID)'),
|
|
193
193
|
}),
|
|
194
194
|
handler: async (client, params) => {
|
|
195
195
|
const workspaceId = params.workspace_id ?? TapdClient.getDefaultWorkspaceId();
|
|
@@ -201,10 +201,10 @@ export const testTools = [
|
|
|
201
201
|
},
|
|
202
202
|
{
|
|
203
203
|
name: "tapd_get_story_by_tcase_id",
|
|
204
|
-
description: "
|
|
204
|
+
description: "按测试用例 ID 反查其关联的需求。正向(按需求找用例)用需求侧关联用例查询工具。读操作;tcase_id 必填。返回关联需求。",
|
|
205
205
|
inputSchema: z.object({
|
|
206
|
-
workspace_id: z.number().optional().describe('项目ID
|
|
207
|
-
tcase_id: z.string().describe('测试用例ID
|
|
206
|
+
workspace_id: z.number().optional().describe('项目 ID,可省略(默认取环境变量 TAPD_DEFAULT_WORKSPACE_ID)'),
|
|
207
|
+
tcase_id: z.string().describe('测试用例 ID(必填);必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
208
208
|
}),
|
|
209
209
|
handler: async (client, params) => {
|
|
210
210
|
const workspaceId = params.workspace_id ?? TapdClient.getDefaultWorkspaceId();
|
|
@@ -217,12 +217,12 @@ export const testTools = [
|
|
|
217
217
|
// 测试用例执行
|
|
218
218
|
{
|
|
219
219
|
name: "tapd_assign_tcase_instance",
|
|
220
|
-
description: "
|
|
220
|
+
description: "在测试计划内给用例实例分配执行人。执行用例用用例执行工具。写操作;test_plan_id、tcase_id、owner 必填。返回分配结果。",
|
|
221
221
|
inputSchema: z.object({
|
|
222
|
-
workspace_id: z.number().optional().describe('项目ID
|
|
223
|
-
test_plan_id: z.string().describe('测试计划ID
|
|
224
|
-
tcase_id: z.string().describe('测试用例ID
|
|
225
|
-
owner: z.string().describe("
|
|
222
|
+
workspace_id: z.number().optional().describe('项目 ID,可省略(默认取环境变量 TAPD_DEFAULT_WORKSPACE_ID)'),
|
|
223
|
+
test_plan_id: z.string().describe('测试计划 ID(必填);必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
224
|
+
tcase_id: z.string().describe('测试用例 ID(必填);必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
225
|
+
owner: z.string().describe("分配的执行人(必填)"),
|
|
226
226
|
}),
|
|
227
227
|
handler: async (client, params) => {
|
|
228
228
|
const workspaceId = params.workspace_id ?? TapdClient.getDefaultWorkspaceId();
|
|
@@ -234,16 +234,16 @@ export const testTools = [
|
|
|
234
234
|
},
|
|
235
235
|
{
|
|
236
236
|
name: "tapd_execute_tcase_instance",
|
|
237
|
-
description: "
|
|
237
|
+
description: "执行测试计划中的用例并记录结果(pass/fail/block),可带逐步骤结果、实际结果与关联缺陷。分配执行人用执行人分配工具。写操作;tcase_id、test_plan_id、result 必填。返回执行结果。",
|
|
238
238
|
inputSchema: z.object({
|
|
239
|
-
workspace_id: z.number().optional().describe('项目ID
|
|
240
|
-
tcase_id: z.string().describe('测试用例ID
|
|
241
|
-
test_plan_id: z.string().describe('测试计划ID
|
|
242
|
-
result: z.string().describe("
|
|
239
|
+
workspace_id: z.number().optional().describe('项目 ID,可省略(默认取环境变量 TAPD_DEFAULT_WORKSPACE_ID)'),
|
|
240
|
+
tcase_id: z.string().describe('测试用例 ID(必填);必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
241
|
+
test_plan_id: z.string().describe('测试计划 ID(必填);必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
242
|
+
result: z.string().describe("执行结果(必填): pass/fail/block"),
|
|
243
243
|
run_step: z.string().optional().describe("执行步骤结果(JSON格式)"),
|
|
244
244
|
actual_result: z.string().optional().describe("实际结果"),
|
|
245
|
-
bug_id: z.string().optional().describe('关联缺陷ID;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
246
|
-
executed_by: z.string().optional().describe("
|
|
245
|
+
bug_id: z.string().optional().describe('关联缺陷 ID;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
246
|
+
executed_by: z.string().optional().describe("执行人(缺省取当前用户)"),
|
|
247
247
|
}),
|
|
248
248
|
handler: async (client, params) => {
|
|
249
249
|
const workspaceId = params.workspace_id ?? TapdClient.getDefaultWorkspaceId();
|
|
@@ -255,11 +255,11 @@ export const testTools = [
|
|
|
255
255
|
},
|
|
256
256
|
{
|
|
257
257
|
name: "tapd_get_tcase_result",
|
|
258
|
-
description: "
|
|
258
|
+
description: "查询用例执行结果记录(可按计划、结果、执行人过滤)。写侧执行动作用用例执行工具。读操作。返回结果数组。",
|
|
259
259
|
inputSchema: z.object({
|
|
260
|
-
workspace_id: z.number().optional().describe('项目ID
|
|
261
|
-
tcase_id: z.string().optional().describe('测试用例ID;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
262
|
-
test_plan_id: z.string().optional().describe('测试计划ID;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
260
|
+
workspace_id: z.number().optional().describe('项目 ID,可省略(默认取环境变量 TAPD_DEFAULT_WORKSPACE_ID)'),
|
|
261
|
+
tcase_id: z.string().optional().describe('测试用例 ID;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
262
|
+
test_plan_id: z.string().optional().describe('测试计划 ID;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
263
263
|
result: z.string().optional().describe("执行结果: pass/fail/block"),
|
|
264
264
|
executed_by: z.string().optional().describe("执行人"),
|
|
265
265
|
executed: z.string().optional().describe("执行时间"),
|
|
@@ -277,11 +277,11 @@ export const testTools = [
|
|
|
277
277
|
},
|
|
278
278
|
{
|
|
279
279
|
name: "tapd_remove_tcase_instance",
|
|
280
|
-
description: "
|
|
280
|
+
description: "把测试用例移出测试计划。加入计划用计划侧用例关联工具。写操作;test_plan_id、tcase_id 必填。返回移除结果。",
|
|
281
281
|
inputSchema: z.object({
|
|
282
|
-
workspace_id: z.number().optional().describe('项目ID
|
|
283
|
-
test_plan_id: z.string().describe('测试计划ID
|
|
284
|
-
tcase_id: z.string().describe('测试用例ID
|
|
282
|
+
workspace_id: z.number().optional().describe('项目 ID,可省略(默认取环境变量 TAPD_DEFAULT_WORKSPACE_ID)'),
|
|
283
|
+
test_plan_id: z.string().describe('测试计划 ID(必填);必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
284
|
+
tcase_id: z.string().describe('测试用例 ID(必填);必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
285
285
|
}),
|
|
286
286
|
handler: async (client, params) => {
|
|
287
287
|
const workspaceId = params.workspace_id ?? TapdClient.getDefaultWorkspaceId();
|
|
@@ -293,11 +293,11 @@ export const testTools = [
|
|
|
293
293
|
},
|
|
294
294
|
{
|
|
295
295
|
name: "tapd_delete_tcase_story_relation",
|
|
296
|
-
description: "
|
|
296
|
+
description: "解除测试用例与需求的关联。建立关联用需求侧用例关联建立工具。写操作;tcase_id、story_id 必填。返回解除结果。",
|
|
297
297
|
inputSchema: z.object({
|
|
298
|
-
workspace_id: z.number().optional().describe('项目ID
|
|
299
|
-
tcase_id: z.string().describe('测试用例ID
|
|
300
|
-
story_id: z.string().describe('需求ID
|
|
298
|
+
workspace_id: z.number().optional().describe('项目 ID,可省略(默认取环境变量 TAPD_DEFAULT_WORKSPACE_ID)'),
|
|
299
|
+
tcase_id: z.string().describe('测试用例 ID(必填);必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
300
|
+
story_id: z.string().describe('需求 ID(必填);必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
301
301
|
}),
|
|
302
302
|
handler: async (client, params) => {
|
|
303
303
|
const workspaceId = params.workspace_id ?? TapdClient.getDefaultWorkspaceId();
|
|
@@ -310,10 +310,10 @@ export const testTools = [
|
|
|
310
310
|
// 测试计划 CRUD
|
|
311
311
|
{
|
|
312
312
|
name: "tapd_get_test_plans",
|
|
313
|
-
description: "
|
|
313
|
+
description: "查询测试计划列表,支持名称、状态、负责人、迭代过滤。只统计数量用数量统计工具。读操作;limit 默认 30、最大 200。返回计划数组。",
|
|
314
314
|
inputSchema: z.object({
|
|
315
|
-
workspace_id: z.number().optional().describe('项目ID
|
|
316
|
-
id: z.string().optional().describe('测试计划ID,支持多ID查询;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
315
|
+
workspace_id: z.number().optional().describe('项目 ID,可省略(默认取环境变量 TAPD_DEFAULT_WORKSPACE_ID)'),
|
|
316
|
+
id: z.string().optional().describe('测试计划 ID,支持多 ID查询;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
317
317
|
name: z.string().optional().describe("测试计划名称,支持模糊匹配"),
|
|
318
318
|
status: z.string().optional().describe("状态"),
|
|
319
319
|
creator: z.string().optional().describe("创建人"),
|
|
@@ -322,9 +322,9 @@ export const testTools = [
|
|
|
322
322
|
end: z.string().optional().describe("结束日期"),
|
|
323
323
|
created: z.string().optional().describe("创建时间"),
|
|
324
324
|
modified: z.string().optional().describe("修改时间"),
|
|
325
|
-
iteration_id: z.string().optional().describe('迭代ID;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
326
|
-
limit: z.number().optional().describe("返回数量,默认30,最大200"),
|
|
327
|
-
page: z.number().optional().describe("页码,默认1"),
|
|
325
|
+
iteration_id: z.string().optional().describe('迭代 ID;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
326
|
+
limit: z.number().optional().describe("返回数量,默认 30,最大 200"),
|
|
327
|
+
page: z.number().optional().describe("页码,默认 1"),
|
|
328
328
|
order: z.string().optional().describe("排序"),
|
|
329
329
|
fields: z.string().optional().describe("返回字段"),
|
|
330
330
|
}),
|
|
@@ -338,18 +338,18 @@ export const testTools = [
|
|
|
338
338
|
},
|
|
339
339
|
{
|
|
340
340
|
name: "tapd_create_test_plan",
|
|
341
|
-
description: "
|
|
341
|
+
description: "创建测试计划。写操作;name 必填;负责人/创建人缺省取环境变量 TAPD_NICK_NAME。返回新计划。",
|
|
342
342
|
inputSchema: z.object({
|
|
343
|
-
workspace_id: z.number().optional().describe('项目ID
|
|
344
|
-
name: z.string().describe("
|
|
343
|
+
workspace_id: z.number().optional().describe('项目 ID,可省略(默认取环境变量 TAPD_DEFAULT_WORKSPACE_ID)'),
|
|
344
|
+
name: z.string().describe("测试计划名称(必填)"),
|
|
345
345
|
description: z.string().optional().describe("描述"),
|
|
346
|
-
owner: z.string().optional().describe("
|
|
347
|
-
creator: z.string().optional().describe("
|
|
346
|
+
owner: z.string().optional().describe("负责人(缺省取当前用户)"),
|
|
347
|
+
creator: z.string().optional().describe("创建人(缺省取当前用户)"),
|
|
348
348
|
begin: z.string().optional().describe("开始日期 (YYYY-MM-DD)"),
|
|
349
349
|
end: z.string().optional().describe("结束日期 (YYYY-MM-DD)"),
|
|
350
350
|
status: z.string().optional().describe("状态"),
|
|
351
|
-
category_id: z.string().optional().describe('分类ID;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
352
|
-
iteration_id: z.string().optional().describe('迭代ID;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
351
|
+
category_id: z.string().optional().describe('分类 ID;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
352
|
+
iteration_id: z.string().optional().describe('迭代 ID;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
353
353
|
}),
|
|
354
354
|
handler: async (client, params) => {
|
|
355
355
|
const workspaceId = params.workspace_id ?? TapdClient.getDefaultWorkspaceId();
|
|
@@ -368,18 +368,18 @@ export const testTools = [
|
|
|
368
368
|
},
|
|
369
369
|
{
|
|
370
370
|
name: "tapd_update_test_plan",
|
|
371
|
-
description: "
|
|
371
|
+
description: "按 ID 更新测试计划。写操作;id 必填。返回更新结果。",
|
|
372
372
|
inputSchema: z.object({
|
|
373
|
-
workspace_id: z.number().optional().describe('项目ID
|
|
374
|
-
id: z.string().describe('测试计划ID
|
|
373
|
+
workspace_id: z.number().optional().describe('项目 ID,可省略(默认取环境变量 TAPD_DEFAULT_WORKSPACE_ID)'),
|
|
374
|
+
id: z.string().describe('测试计划 ID(必填);必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
375
375
|
name: z.string().optional().describe("测试计划名称"),
|
|
376
376
|
description: z.string().optional().describe("描述"),
|
|
377
377
|
owner: z.string().optional().describe("负责人"),
|
|
378
378
|
begin: z.string().optional().describe("开始日期 (YYYY-MM-DD)"),
|
|
379
379
|
end: z.string().optional().describe("结束日期 (YYYY-MM-DD)"),
|
|
380
380
|
status: z.string().optional().describe("状态"),
|
|
381
|
-
category_id: z.string().optional().describe('分类ID;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
382
|
-
iteration_id: z.string().optional().describe('迭代ID;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
381
|
+
category_id: z.string().optional().describe('分类 ID;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
382
|
+
iteration_id: z.string().optional().describe('迭代 ID;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
383
383
|
}),
|
|
384
384
|
handler: async (client, params) => {
|
|
385
385
|
const workspaceId = params.workspace_id ?? TapdClient.getDefaultWorkspaceId();
|
|
@@ -391,10 +391,10 @@ export const testTools = [
|
|
|
391
391
|
},
|
|
392
392
|
{
|
|
393
393
|
name: "tapd_get_test_plan_count",
|
|
394
|
-
description: "
|
|
394
|
+
description: "按相同过滤条件返回测试计划数量。要看列表用计划列表查询工具。读操作。返回 {count}。",
|
|
395
395
|
inputSchema: z.object({
|
|
396
|
-
workspace_id: z.number().optional().describe('项目ID
|
|
397
|
-
id: z.string().optional().describe('测试计划ID;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
396
|
+
workspace_id: z.number().optional().describe('项目 ID,可省略(默认取环境变量 TAPD_DEFAULT_WORKSPACE_ID)'),
|
|
397
|
+
id: z.string().optional().describe('测试计划 ID;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
398
398
|
name: z.string().optional().describe("测试计划名称"),
|
|
399
399
|
status: z.string().optional().describe("状态"),
|
|
400
400
|
creator: z.string().optional().describe("创建人"),
|
|
@@ -411,10 +411,10 @@ export const testTools = [
|
|
|
411
411
|
// 测试计划详情
|
|
412
412
|
{
|
|
413
413
|
name: "tapd_get_test_plan_details",
|
|
414
|
-
description: "
|
|
414
|
+
description: "查询测试计划内用例的测试结果明细。整体进度统计用执行进度查询工具。读操作;test_plan_id 必填。返回结果明细。",
|
|
415
415
|
inputSchema: z.object({
|
|
416
|
-
workspace_id: z.number().optional().describe('项目ID
|
|
417
|
-
test_plan_id: z.string().describe('测试计划ID
|
|
416
|
+
workspace_id: z.number().optional().describe('项目 ID,可省略(默认取环境变量 TAPD_DEFAULT_WORKSPACE_ID)'),
|
|
417
|
+
test_plan_id: z.string().describe('测试计划 ID(必填);必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
418
418
|
limit: z.number().optional().describe("返回数量"),
|
|
419
419
|
page: z.number().optional().describe("页码"),
|
|
420
420
|
fields: z.string().optional().describe("返回字段"),
|
|
@@ -429,10 +429,10 @@ export const testTools = [
|
|
|
429
429
|
},
|
|
430
430
|
{
|
|
431
431
|
name: "tapd_get_test_plan_progress",
|
|
432
|
-
description: "
|
|
432
|
+
description: "查询测试计划执行进度(通过/失败/阻塞统计)。逐用例明细用结果明细查询工具。读操作;test_plan_id 必填。返回进度统计。",
|
|
433
433
|
inputSchema: z.object({
|
|
434
|
-
workspace_id: z.number().optional().describe('项目ID
|
|
435
|
-
test_plan_id: z.string().describe('测试计划ID
|
|
434
|
+
workspace_id: z.number().optional().describe('项目 ID,可省略(默认取环境变量 TAPD_DEFAULT_WORKSPACE_ID)'),
|
|
435
|
+
test_plan_id: z.string().describe('测试计划 ID(必填);必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
436
436
|
}),
|
|
437
437
|
handler: async (client, params) => {
|
|
438
438
|
const workspaceId = params.workspace_id ?? TapdClient.getDefaultWorkspaceId();
|
|
@@ -444,9 +444,9 @@ export const testTools = [
|
|
|
444
444
|
},
|
|
445
445
|
{
|
|
446
446
|
name: "tapd_get_test_plan_fields_info",
|
|
447
|
-
description: "
|
|
447
|
+
description: "查询测试计划可写字段元信息。读操作。返回字段定义数组。",
|
|
448
448
|
inputSchema: z.object({
|
|
449
|
-
workspace_id: z.number().optional().describe('项目ID
|
|
449
|
+
workspace_id: z.number().optional().describe('项目 ID,可省略(默认取环境变量 TAPD_DEFAULT_WORKSPACE_ID)'),
|
|
450
450
|
}),
|
|
451
451
|
handler: async (client, params) => {
|
|
452
452
|
const workspaceId = params.workspace_id ?? TapdClient.getDefaultWorkspaceId();
|
|
@@ -459,11 +459,11 @@ export const testTools = [
|
|
|
459
459
|
// 测试计划关联
|
|
460
460
|
{
|
|
461
461
|
name: "tapd_get_test_plan_tcases",
|
|
462
|
-
description: "
|
|
462
|
+
description: "查询测试计划已关联的测试用例。加入用例用计划侧用例关联建立工具。读操作;test_plan_id 必填。返回用例数组。",
|
|
463
463
|
inputSchema: z.object({
|
|
464
|
-
workspace_id: z.number().optional().describe('项目ID
|
|
465
|
-
test_plan_id: z.string().describe('测试计划ID
|
|
466
|
-
tcase_id: z.string().optional().describe('测试用例ID;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
464
|
+
workspace_id: z.number().optional().describe('项目 ID,可省略(默认取环境变量 TAPD_DEFAULT_WORKSPACE_ID)'),
|
|
465
|
+
test_plan_id: z.string().describe('测试计划 ID(必填);必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
466
|
+
tcase_id: z.string().optional().describe('测试用例 ID;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
467
467
|
limit: z.number().optional().describe("返回数量"),
|
|
468
468
|
page: z.number().optional().describe("页码"),
|
|
469
469
|
fields: z.string().optional().describe("返回字段"),
|
|
@@ -478,10 +478,10 @@ export const testTools = [
|
|
|
478
478
|
},
|
|
479
479
|
{
|
|
480
480
|
name: "tapd_get_test_plan_relative_stories",
|
|
481
|
-
description: "
|
|
481
|
+
description: "查询测试计划已关联的需求。建立关联用计划侧需求关联建立工具。读操作;test_plan_id 必填。返回需求列表。",
|
|
482
482
|
inputSchema: z.object({
|
|
483
|
-
workspace_id: z.number().optional().describe('项目ID
|
|
484
|
-
test_plan_id: z.string().describe('测试计划ID
|
|
483
|
+
workspace_id: z.number().optional().describe('项目 ID,可省略(默认取环境变量 TAPD_DEFAULT_WORKSPACE_ID)'),
|
|
484
|
+
test_plan_id: z.string().describe('测试计划 ID(必填);必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
485
485
|
limit: z.number().optional().describe("返回数量"),
|
|
486
486
|
page: z.number().optional().describe("页码"),
|
|
487
487
|
fields: z.string().optional().describe("返回字段"),
|
|
@@ -496,10 +496,10 @@ export const testTools = [
|
|
|
496
496
|
},
|
|
497
497
|
{
|
|
498
498
|
name: "tapd_get_test_plan_bugs",
|
|
499
|
-
description: "
|
|
499
|
+
description: "查询测试计划关联的缺陷。读操作;test_plan_id 必填。返回缺陷列表。",
|
|
500
500
|
inputSchema: z.object({
|
|
501
|
-
workspace_id: z.number().optional().describe('项目ID
|
|
502
|
-
test_plan_id: z.string().describe('测试计划ID
|
|
501
|
+
workspace_id: z.number().optional().describe('项目 ID,可省略(默认取环境变量 TAPD_DEFAULT_WORKSPACE_ID)'),
|
|
502
|
+
test_plan_id: z.string().describe('测试计划 ID(必填);必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
503
503
|
limit: z.number().optional().describe("返回数量"),
|
|
504
504
|
page: z.number().optional().describe("页码"),
|
|
505
505
|
fields: z.string().optional().describe("返回字段"),
|
|
@@ -514,11 +514,11 @@ export const testTools = [
|
|
|
514
514
|
},
|
|
515
515
|
{
|
|
516
516
|
name: "tapd_create_story_relation",
|
|
517
|
-
description: "
|
|
517
|
+
description: "把需求关联到测试计划。解除用计划侧需求关联解除工具;查询用计划侧关联需求查询工具。写操作;test_plan_id、story_id 必填。返回关联结果。",
|
|
518
518
|
inputSchema: z.object({
|
|
519
|
-
workspace_id: z.number().optional().describe('项目ID
|
|
520
|
-
test_plan_id: z.string().describe('测试计划ID
|
|
521
|
-
story_id: z.string().describe('需求ID
|
|
519
|
+
workspace_id: z.number().optional().describe('项目 ID,可省略(默认取环境变量 TAPD_DEFAULT_WORKSPACE_ID)'),
|
|
520
|
+
test_plan_id: z.string().describe('测试计划 ID(必填);必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
521
|
+
story_id: z.string().describe('需求 ID(必填);必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
522
522
|
}),
|
|
523
523
|
handler: async (client, params) => {
|
|
524
524
|
const workspaceId = params.workspace_id ?? TapdClient.getDefaultWorkspaceId();
|
|
@@ -530,11 +530,11 @@ export const testTools = [
|
|
|
530
530
|
},
|
|
531
531
|
{
|
|
532
532
|
name: "tapd_delete_story_relation",
|
|
533
|
-
description: "
|
|
533
|
+
description: "解除测试计划与需求的关联。建立用计划侧需求关联建立工具。写操作;test_plan_id、story_id 必填。返回解除结果。",
|
|
534
534
|
inputSchema: z.object({
|
|
535
|
-
workspace_id: z.number().optional().describe('项目ID
|
|
536
|
-
test_plan_id: z.string().describe('测试计划ID
|
|
537
|
-
story_id: z.string().describe('需求ID
|
|
535
|
+
workspace_id: z.number().optional().describe('项目 ID,可省略(默认取环境变量 TAPD_DEFAULT_WORKSPACE_ID)'),
|
|
536
|
+
test_plan_id: z.string().describe('测试计划 ID(必填);必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
537
|
+
story_id: z.string().describe('需求 ID(必填);必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
538
538
|
}),
|
|
539
539
|
handler: async (client, params) => {
|
|
540
540
|
const workspaceId = params.workspace_id ?? TapdClient.getDefaultWorkspaceId();
|
|
@@ -546,11 +546,11 @@ export const testTools = [
|
|
|
546
546
|
},
|
|
547
547
|
{
|
|
548
548
|
name: "tapd_create_tcase_relation",
|
|
549
|
-
description: "
|
|
549
|
+
description: "把测试用例关联到测试计划(tcase_id 支持逗号分隔多个)。移出用移出工具。写操作;test_plan_id、tcase_id 必填。返回关联结果。",
|
|
550
550
|
inputSchema: z.object({
|
|
551
|
-
workspace_id: z.number().optional().describe('项目ID
|
|
552
|
-
test_plan_id: z.string().describe('测试计划ID
|
|
553
|
-
tcase_id: z.string().describe('测试用例ID
|
|
551
|
+
workspace_id: z.number().optional().describe('项目 ID,可省略(默认取环境变量 TAPD_DEFAULT_WORKSPACE_ID)'),
|
|
552
|
+
test_plan_id: z.string().describe('测试计划 ID(必填);必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
553
|
+
tcase_id: z.string().describe('测试用例 ID(必填),支持多个 ID 逗号分隔;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
554
554
|
}),
|
|
555
555
|
handler: async (client, params) => {
|
|
556
556
|
const workspaceId = params.workspace_id ?? TapdClient.getDefaultWorkspaceId();
|