Endpoints
Test Runs

Test Runs

🚧

The Testify API is still in alpha and is subject to change without notice. Please contact us if you have any questions.

Create, modify, or delete test runs. Also query tests in a test run, and report results individually or in bulk.

GET /v1/test-runs/:projectId

Gets all test runs for the given project.

Query Parameters

Relations should be specified as a comma-separated list of values. Valid relations for this endpoint are:

  • tests
{
  limit?: number;
  offset?: number;
  relations?: string;
}

Response Body

{
  testRuns: {
    id: string;
    createdAt: Date;
    createdBy: string;
    updatedAt: Date;
    updatedBy: string;
    displayId: number;
    name: string;
    milestoneId?: string;
    tests?: {
      id: string;
      createdAt: Date;
      createdBy: string;
      updatedAt: Date;
      updatedBy: string;
      displayId: number;
      name: string;
      preconditions: string;
      steps: {
        action: string;
        expectation: string;
      }[];
      assignedTo: string;
      result: "passed" | "failed" | "inProgress" | "untested";
      case?: {
        id: string;
        createdAt: Date;
        createdBy: string;
        updatedAt: Date;
        updatedBy: string;
        displayId: number;
        name: string;
        preconditions: string;
        comments?: {
          id: string;
          createdAt: Date;
          createdBy: string;
          updatedAt: Date;
          updatedBy: string;
          content: string;
        }[];
        steps: {
          action: string;
          expectation: string;
        }[];
        customFields: { [key: string]: any };
      };
      caseId: string;
      comments?: {
        id: string;
        createdAt: Date;
        createdBy: string;
        updatedAt: Date;
        updatedBy: string;
        content: string;
      }[];
    }[];
    results?: {
      total: number;
      passed: number;
      failed: number;
      inProgress: number;
      untested: number;
    };
  }[];
  pagination: {
    total: number;
    limit: number;
    offset: number;
  };
}

PUT /v1/test-runs/:projectId

Create a new test run for the given project.

Request Body

{
  name: string;
  milestoneId?: string;
  caseIds: string[];
}

Response Body

{
  testRun: {
    id: string;
    createdAt: Date;
    createdBy: string;
    updatedAt: Date;
    updatedBy: string;
    displayId: number;
    name: string;
    milestoneId?: string;
    results?: {
      total: number;
      passed: number;
      failed: number;
      inProgress: number;
      untested: number;
    };
  };
}

POST /v1/test-runs/:testRunId

Update an existing test run.

Request Body

{
  name?: string;
  milestoneId?: string;
  caseIdsToAdd?: string[];
  caseIdsToRemove?: string[];
}

Response Body

{
  testRun: {
    id: string;
    createdAt: Date;
    createdBy: string;
    updatedAt: Date;
    updatedBy: string;
    displayId: number;
    name: string;
    milestoneId?: string;
    results?: {
      total: number;
      passed: number;
      failed: number;
      inProgress: number;
      untested: number;
    };
  };
}

DELETE /v1/test-runs/:testRunId

Delete an existing test run.

Response Body

A successful response will return a response with a status code of 200 and no data parameter:

{
  "ok": true,
  "requestId": string,
  "duration": number,
}

GET /v1/test-runs/test-run/:identifier

Get a specific test run by its identifier. An identifier is different from the test run ID and is in the form of PROJ-R###, where PROJ is the project identifier.

Query Parameters

Relations should be specified as a comma-separated list of values. Valid relations for this endpoint are:

  • tests
{
  relations?: string;
}

Response

{
  testRun: {
    id: string;
    createdAt: Date;
    createdBy: string;
    updatedAt: Date;
    updatedBy: string;
    displayId: number;
    name: string;
    milestoneId?: string;
    tests?: {
      id: string;
      createdAt: Date;
      createdBy: string;
      updatedAt: Date;
      updatedBy: string;
      displayId: number;
      name: string;
      preconditions: string;
      steps: {
        action: string;
        expectation: string;
      }[];
      assignedTo: string;
      result: "passed" | "failed" | "inProgress" | "untested";
      case?: {
        id: string;
        createdAt: Date;
        createdBy: string;
        updatedAt: Date;
        updatedBy: string;
        displayId: number;
        name: string;
        preconditions: string;
        comments?: {
          id: string;
          createdAt: Date;
          createdBy: string;
          updatedAt: Date;
          updatedBy: string;
          content: string;
        }[];
        steps: {
          action: string;
          expectation: string;
        }[];
        customFields: { [key: string]: any };
      };
      caseId: string;
      comments?: {
        id: string;
        createdAt: Date;
        createdBy: string;
        updatedAt: Date;
        updatedBy: string;
        content: string;
      }[];
    }[];
    results?: {
      total: number;
      passed: number;
      failed: number;
      inProgress: number;
      untested: number;
    };
  };
}