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;
};
};
}