update_test_run_status
Update the status of a test run in Xray Cloud, such as marking it as PASS or FAIL, to track test execution results and maintain accurate test management records.
Instructions
Update the status of a specific test run (e.g., mark as PASS or FAIL)
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| testRunId | Yes | The test run ID (obtained from test execution details) | |
| status | Yes | The new status for the test run |
Implementation Reference
- src/xray-client.ts:564-578 (handler)Core handler function that executes the GraphQL mutation to update the test run status in Xray Cloud.async updateTestRunStatus(testRunId: string, status: TestRunStatus): Promise<string> { const mutation = ` mutation UpdateTestRunStatus($id: String!, $status: String!) { updateTestRunStatus(id: $id, status: $status) } `; const variables = { id: testRunId, status }; const result = await this.graphqlRequest<{ updateTestRunStatus: string }>(mutation, variables); return result.updateTestRunStatus; }
- src/index.ts:689-702 (handler)MCP tool call handler in the switch statement that invokes the Xray client method.case 'update_test_run_status': { const result = await xrayClient.updateTestRunStatus( args.testRunId as string, args.status as TestRunStatus ); return { content: [ { type: 'text', text: `Test run ${args.testRunId} status updated to ${args.status}: ${result}`, }, ], }; }
- src/index.ts:248-266 (schema)Input schema definition for the update_test_run_status tool, including parameters and validation.{ name: 'update_test_run_status', description: 'Update the status of a specific test run (e.g., mark as PASS or FAIL)', inputSchema: { type: 'object', properties: { testRunId: { type: 'string', description: 'The test run ID (obtained from test execution details)', }, status: { type: 'string', enum: ['TODO', 'EXECUTING', 'PASS', 'FAIL', 'ABORTED', 'PASSED', 'FAILED'], description: 'The new status for the test run', }, }, required: ['testRunId', 'status'], }, },
- src/index.ts:27-503 (registration)Tool registration in the tools array used by ListToolsRequestHandler.// Define available tools const tools: Tool[] = [ { name: 'create_test_case', description: 'Create a new test case in Xray Cloud', inputSchema: { type: 'object', properties: { projectKey: { type: 'string', description: 'The Jira project key (e.g., "PROJ")', }, summary: { type: 'string', description: 'The test case summary/title', }, description: { type: 'string', description: 'The test case description', }, testType: { type: 'string', enum: ['Manual', 'Cucumber', 'Generic'], description: 'The type of test case', default: 'Manual', }, labels: { type: 'array', items: { type: 'string' }, description: 'Labels to attach to the test case', }, priority: { type: 'string', description: 'Priority of the test case (e.g., "High", "Medium", "Low")', }, }, required: ['projectKey', 'summary'], }, }, { name: 'get_test_case', description: 'Get details of a specific test case by key', inputSchema: { type: 'object', properties: { testKey: { type: 'string', description: 'The test case key (e.g., "PROJ-123")', }, }, required: ['testKey'], }, }, { name: 'update_test_case', description: 'Update an existing test case', inputSchema: { type: 'object', properties: { testKey: { type: 'string', description: 'The test case key (e.g., "PROJ-123")', }, summary: { type: 'string', description: 'New summary/title for the test case', }, description: { type: 'string', description: 'New description for the test case', }, labels: { type: 'array', items: { type: 'string' }, description: 'New labels for the test case', }, priority: { type: 'string', description: 'New priority for the test case', }, }, required: ['testKey'], }, }, { name: 'delete_test_case', description: 'Delete a test case', inputSchema: { type: 'object', properties: { testKey: { type: 'string', description: 'The test case key to delete (e.g., "PROJ-123")', }, }, required: ['testKey'], }, }, { name: 'search_test_cases', description: 'Search for test cases using JQL (Jira Query Language)', inputSchema: { type: 'object', properties: { jql: { type: 'string', description: 'JQL query to search test cases (e.g., "project = PROJ AND labels = automation")', }, maxResults: { type: 'number', description: 'Maximum number of results to return', default: 50, }, }, required: ['jql'], }, }, { name: 'get_project_test_cases', description: 'Get all test cases for a specific project', inputSchema: { type: 'object', properties: { projectKey: { type: 'string', description: 'The Jira project key (e.g., "PROJ")', }, maxResults: { type: 'number', description: 'Maximum number of results to return', default: 50, }, }, required: ['projectKey'], }, }, // Test Execution tools { name: 'create_test_execution', description: 'Create a new test execution in Xray Cloud to run tests', inputSchema: { type: 'object', properties: { projectKey: { type: 'string', description: 'The Jira project key (e.g., "PROJ")', }, summary: { type: 'string', description: 'The test execution summary/title', }, description: { type: 'string', description: 'The test execution description', }, testIssueIds: { type: 'array', items: { type: 'string' }, description: 'Array of test issue IDs to include in this execution (e.g., ["10001", "10002"])', }, testEnvironments: { type: 'array', items: { type: 'string' }, description: 'Array of test environments (e.g., ["Chrome", "iOS"])', }, }, required: ['projectKey', 'summary'], }, }, { name: 'get_test_execution', description: 'Get details of a specific test execution by key, including all test runs', inputSchema: { type: 'object', properties: { testExecutionKey: { type: 'string', description: 'The test execution key (e.g., "PROJ-456")', }, }, required: ['testExecutionKey'], }, }, { name: 'search_test_executions', description: 'Search for test executions using JQL (Jira Query Language)', inputSchema: { type: 'object', properties: { jql: { type: 'string', description: 'JQL query to search test executions (e.g., "project = PROJ AND created >= -7d")', }, maxResults: { type: 'number', description: 'Maximum number of results to return', default: 50, }, }, required: ['jql'], }, }, { name: 'get_project_test_executions', description: 'Get all test executions for a specific project', inputSchema: { type: 'object', properties: { projectKey: { type: 'string', description: 'The Jira project key (e.g., "PROJ")', }, maxResults: { type: 'number', description: 'Maximum number of results to return', default: 50, }, }, required: ['projectKey'], }, }, { name: 'update_test_run_status', description: 'Update the status of a specific test run (e.g., mark as PASS or FAIL)', inputSchema: { type: 'object', properties: { testRunId: { type: 'string', description: 'The test run ID (obtained from test execution details)', }, status: { type: 'string', enum: ['TODO', 'EXECUTING', 'PASS', 'FAIL', 'ABORTED', 'PASSED', 'FAILED'], description: 'The new status for the test run', }, }, required: ['testRunId', 'status'], }, }, // Test Plan tools { name: 'create_test_plan', description: 'Create a new test plan in Xray Cloud to organize tests', inputSchema: { type: 'object', properties: { projectKey: { type: 'string', description: 'The Jira project key (e.g., "PROJ")', }, summary: { type: 'string', description: 'The test plan summary/title', }, description: { type: 'string', description: 'The test plan description', }, testIssueIds: { type: 'array', items: { type: 'string' }, description: 'Array of test issue IDs to include in this plan', }, }, required: ['projectKey', 'summary'], }, }, { name: 'get_test_plan', description: 'Get details of a specific test plan by key, including all tests', inputSchema: { type: 'object', properties: { testPlanKey: { type: 'string', description: 'The test plan key (e.g., "PROJ-789")', }, }, required: ['testPlanKey'], }, }, { name: 'search_test_plans', description: 'Search for test plans using JQL (Jira Query Language)', inputSchema: { type: 'object', properties: { jql: { type: 'string', description: 'JQL query to search test plans', }, maxResults: { type: 'number', description: 'Maximum number of results to return', default: 50, }, }, required: ['jql'], }, }, { name: 'get_project_test_plans', description: 'Get all test plans for a specific project', inputSchema: { type: 'object', properties: { projectKey: { type: 'string', description: 'The Jira project key (e.g., "PROJ")', }, maxResults: { type: 'number', description: 'Maximum number of results to return', default: 50, }, }, required: ['projectKey'], }, }, { name: 'add_tests_to_test_plan', description: 'Add tests to an existing test plan', inputSchema: { type: 'object', properties: { testPlanIssueId: { type: 'string', description: 'The test plan issue ID (not key)', }, testIssueIds: { type: 'array', items: { type: 'string' }, description: 'Array of test issue IDs to add', }, }, required: ['testPlanIssueId', 'testIssueIds'], }, }, { name: 'remove_tests_from_test_plan', description: 'Remove tests from an existing test plan', inputSchema: { type: 'object', properties: { testPlanIssueId: { type: 'string', description: 'The test plan issue ID (not key)', }, testIssueIds: { type: 'array', items: { type: 'string' }, description: 'Array of test issue IDs to remove', }, }, required: ['testPlanIssueId', 'testIssueIds'], }, }, // Test Set tools { name: 'create_test_set', description: 'Create a new test set in Xray Cloud to group related tests', inputSchema: { type: 'object', properties: { projectKey: { type: 'string', description: 'The Jira project key (e.g., "PROJ")', }, summary: { type: 'string', description: 'The test set summary/title', }, description: { type: 'string', description: 'The test set description', }, testIssueIds: { type: 'array', items: { type: 'string' }, description: 'Array of test issue IDs to include in this set', }, }, required: ['projectKey', 'summary'], }, }, { name: 'get_test_set', description: 'Get details of a specific test set by key, including all tests', inputSchema: { type: 'object', properties: { testSetKey: { type: 'string', description: 'The test set key (e.g., "PROJ-890")', }, }, required: ['testSetKey'], }, }, { name: 'search_test_sets', description: 'Search for test sets using JQL (Jira Query Language)', inputSchema: { type: 'object', properties: { jql: { type: 'string', description: 'JQL query to search test sets', }, maxResults: { type: 'number', description: 'Maximum number of results to return', default: 50, }, }, required: ['jql'], }, }, { name: 'get_project_test_sets', description: 'Get all test sets for a specific project', inputSchema: { type: 'object', properties: { projectKey: { type: 'string', description: 'The Jira project key (e.g., "PROJ")', }, maxResults: { type: 'number', description: 'Maximum number of results to return', default: 50, }, }, required: ['projectKey'], }, }, { name: 'add_tests_to_test_set', description: 'Add tests to an existing test set', inputSchema: { type: 'object', properties: { testSetIssueId: { type: 'string', description: 'The test set issue ID (not key)', }, testIssueIds: { type: 'array', items: { type: 'string' }, description: 'Array of test issue IDs to add', }, }, required: ['testSetIssueId', 'testIssueIds'], }, }, { name: 'remove_tests_from_test_set', description: 'Remove tests from an existing test set', inputSchema: { type: 'object', properties: { testSetIssueId: { type: 'string', description: 'The test set issue ID (not key)', }, testIssueIds: { type: 'array', items: { type: 'string' }, description: 'Array of test issue IDs to remove', }, }, required: ['testSetIssueId', 'testIssueIds'], }, }, ];
- src/xray-client.ts:62-62 (helper)Type definition for TestRunStatus used in the tool schema and handler.export type TestRunStatus = 'TODO' | 'EXECUTING' | 'PASS' | 'FAIL' | 'ABORTED' | 'PASSED' | 'FAILED';