Test Suites - Create
Create a test suite.
POST https://dev.azure.com/{organization}/{project}/_apis/test/Plans/{planId}/suites/{suiteId}?api-version=5.0
URI Parameters
| Name | In | Required | Type | Description |
|---|---|---|---|---|
|
organization
|
path | True |
string |
The name of the Azure DevOps organization. |
|
plan
|
path | True |
integer (int32) |
ID of the test plan that contains the suite. |
|
project
|
path | True |
string |
Project ID or project name |
|
suite
|
path | True |
integer (int32) |
ID of the parent suite. |
|
api-version
|
query | True |
string |
Version of the API to use. This should be set to '5.0' to use this version of the api. |
Request Body
| Name | Type | Description |
|---|---|---|
| name |
string |
Name of test suite. |
| queryString |
string |
For query based suites, query string that defines the suite. |
| requirementIds |
integer[] (int32) |
For requirements test suites, the IDs of the requirements. |
| suiteType |
string |
Type of test suite to create. It can have value from DynamicTestSuite, StaticTestSuite and RequirementTestSuite. |
Responses
| Name | Type | Description |
|---|---|---|
| 200 OK |
successful operation |
Security
oauth2
Type:
oauth2
Flow:
accessCode
Authorization URL:
https://app.vssps.visualstudio.com/oauth2/authorize&response_type=Assertion
Token URL:
https://app.vssps.visualstudio.com/oauth2/token?client_assertion_type=urn:ietf:params:oauth:client-assertion-type:jwt-bearer&grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer
Scopes
| Name | Description |
|---|---|
| vso.test_write | Grants the ability to read, create, and update test plans, cases, results and other test management related artifacts. |
Examples
| Based on a query |
| Based on requirements |
| Static suite |
Based on a query
Sample request
POST https://dev.azure.com/fabrikam/fabrikam-fiber-tfvc/_apis/test/Plans/1/suites/1?api-version=5.0
{
"suiteType": "DynamicTestSuite",
"name": "AllTestCases",
"queryString": "SELECT [System.Id],[System.WorkItemType],[System.Title],[Microsoft.VSTS.Common.Priority],[System.AssignedTo],[System.AreaPath] FROM WorkItems WHERE [System.WorkItemType] IN GROUP 'Microsoft.TestCaseCategory'"
}
Sample response
{
"value": [
{
"id": 9,
"name": "AllTestCases",
"url": "https://dev.azure.com/fabrikam/fabrikam-fiber-tfvc/_apis/test/Plans/1/Suites/9",
"project": {
"id": "eb6e4656-77fc-42a1-9181-4c6d8e9da5d1",
"name": "Fabrikam-Fiber-TFVC",
"url": "https://dev.azure.com/fabrikam/_apis/projects/Fabrikam-Fiber-TFVC"
},
"plan": {
"id": "1",
"name": "sprint1",
"url": "https://dev.azure.com/fabrikam/fabrikam-fiber-tfvc/_apis/test/Plans/1"
},
"parent": {
"id": "1",
"name": "sprint1",
"url": "https://dev.azure.com/fabrikam/fabrikam-fiber-tfvc/_apis/test/Plans/1/Suites/1"
},
"queryString": "SELECT [System.Id],[System.WorkItemType],[System.Title],[Microsoft.VSTS.Common.Priority],[System.AssignedTo],[System.AreaPath] FROM WorkItems WHERE [System.WorkItemType] IN GROUP 'Microsoft.TestCaseCategory'",
"revision": 1,
"testCaseCount": 2,
"suiteType": "DynamicTestSuite",
"testCasesUrl": "https://dev.azure.com/fabrikam/fabrikam-fiber-tfvc/_apis/test/Plans/1/Suites/9/testcases",
"inheritDefaultConfigurations": true,
"lastPopulatedDate": "2014-05-04T11:33:28.497Z",
"state": "InProgress",
"lastUpdatedBy": {
"id": "e5a5f7f8-6507-4c34-b397-6c4818e002f4",
"displayName": "Fabrikam Fiber",
"uniqueName": "fabrikamfiber1@outlook.com",
"url": "https://vssps.dev.azure.com/fabrikam/_apis/Identities/e5a5f7f8-6507-4c34-b397-6c4818e002f4",
"imageUrl": "https://dev.azure.com/fabrikam/_api/_common/identityImage?id=e5a5f7f8-6507-4c34-b397-6c4818e002f4"
},
"lastUpdatedDate": "2014-05-04T11:33:28.497Z"
}
],
"count": 1
}
Based on requirements
Sample request
POST https://dev.azure.com/fabrikam/fabrikam-fiber-tfvc/_apis/test/Plans/1/suites/1?api-version=5.0
{
"suiteType": "RequirementTestSuite",
"requirementIds": [
2
]
}
Sample response
{
"value": [
{
"id": 13,
"url": "https://dev.azure.com/fabrikam/fabrikam-fiber-tfvc/_apis/test/Plans/1/Suites/13",
"project": {
"id": "eb6e4656-77fc-42a1-9181-4c6d8e9da5d1",
"name": "Fabrikam-Fiber-TFVC",
"url": "https://dev.azure.com/fabrikam/_apis/projects/Fabrikam-Fiber-TFVC"
},
"plan": {
"id": "1",
"name": "sprint1",
"url": "https://dev.azure.com/fabrikam/fabrikam-fiber-tfvc/_apis/test/Plans/1"
},
"parent": {
"id": "1",
"name": "sprint1",
"url": "https://dev.azure.com/fabrikam/fabrikam-fiber-tfvc/_apis/test/Plans/1/Suites/1"
},
"name": "2 : BestFeatureEver",
"requirementId": 2,
"revision": 1,
"testCaseCount": 0,
"suiteType": "RequirementTestSuite",
"testCasesUrl": "https://dev.azure.com/fabrikam/fabrikam-fiber-tfvc/_apis/test/Plans/1/Suites/13/testcases",
"inheritDefaultConfigurations": true,
"defaultConfigurations": [],
"lastPopulatedDate": "2014-05-04T11:33:25.857Z",
"state": "InProgress",
"lastUpdatedBy": {
"id": "e5a5f7f8-6507-4c34-b397-6c4818e002f4",
"displayName": "Fabrikam Fiber",
"uniqueName": "fabrikamfiber1@outlook.com",
"url": "https://vssps.dev.azure.com/fabrikam/_apis/Identities/e5a5f7f8-6507-4c34-b397-6c4818e002f4",
"imageUrl": "https://dev.azure.com/fabrikam/_api/_common/identityImage?id=e5a5f7f8-6507-4c34-b397-6c4818e002f4"
},
"lastUpdatedDate": "2014-05-04T11:33:25.857Z",
"areaUri": "vstfs:///Classification/Node/13a29f1c-46be-4883-9153-b36900f1b70c"
}
],
"count": 1
}
Static suite
Sample request
POST https://dev.azure.com/fabrikam/fabrikam-fiber-tfvc/_apis/test/Plans/1/suites/1?api-version=5.0
{
"suiteType": "StaticTestSuite",
"name": "NewTestSuite"
}
Sample response
{
"value": [
{
"id": 8,
"name": "NewTestSuite",
"url": "https://dev.azure.com/fabrikam/fabrikam-fiber-tfvc/_apis/test/Plans/1/Suites/8",
"project": {
"id": "eb6e4656-77fc-42a1-9181-4c6d8e9da5d1",
"name": "Fabrikam-Fiber-TFVC",
"url": "https://dev.azure.com/fabrikam/_apis/projects/Fabrikam-Fiber-TFVC"
},
"plan": {
"id": "1",
"name": "sprint1",
"url": "https://dev.azure.com/fabrikam/fabrikam-fiber-tfvc/_apis/test/Plans/1"
},
"parent": {
"id": "1",
"name": "sprint1",
"url": "https://dev.azure.com/fabrikam/fabrikam-fiber-tfvc/_apis/test/Plans/1/Suites/1"
},
"revision": 1,
"testCaseCount": 0,
"suiteType": "StaticTestSuite",
"testCasesUrl": "https://dev.azure.com/fabrikam/fabrikam-fiber-tfvc/_apis/test/Plans/1/Suites/8/testcases",
"inheritDefaultConfigurations": true,
"state": "InProgress",
"lastUpdatedBy": {
"id": "e5a5f7f8-6507-4c34-b397-6c4818e002f4",
"displayName": "Fabrikam Fiber",
"uniqueName": "fabrikamfiber1@outlook.com",
"url": "https://vssps.dev.azure.com/fabrikam/_apis/Identities/e5a5f7f8-6507-4c34-b397-6c4818e002f4",
"imageUrl": "https://dev.azure.com/fabrikam/_api/_common/identityImage?id=e5a5f7f8-6507-4c34-b397-6c4818e002f4"
},
"lastUpdatedDate": "2014-05-04T11:33:25.857Z"
}
],
"count": 1
}
Definitions
| Name | Description |
|---|---|
|
Identity |
|
|
Reference |
The class to represent a collection of REST reference links. |
|
Shallow |
An abstracted reference to some other resource. This class is used to provide the build data contracts with a uniform way to reference other resources in a way that provides easy traversal through links. |
|
Suite |
Suite create model |
|
Test |
Test suite |
IdentityRef
| Name | Type | Description |
|---|---|---|
| _links |
This field contains zero or more interesting links about the graph subject. These links may be invoked to obtain additional relationships or more detailed information about this graph subject. |
|
| descriptor |
string |
The descriptor is the primary way to reference the graph subject while the system is running. This field will uniquely identify the same graph subject across both Accounts and Organizations. |
| directoryAlias |
string |
|
| displayName |
string |
This is the non-unique display name of the graph subject. To change this field, you must alter its value in the source provider. |
| id |
string |
|
| imageUrl |
string |
|
| inactive |
boolean |
|
| isAadIdentity |
boolean |
|
| isContainer |
boolean |
|
| isDeletedInOrigin |
boolean |
|
| profileUrl |
string |
|
| uniqueName |
string |
|
| url |
string |
This url is the full route to the source resource of this graph subject. |
ReferenceLinks
The class to represent a collection of REST reference links.
| Name | Type | Description |
|---|---|---|
| links |
object |
The readonly view of the links. Because Reference links are readonly, we only want to expose them as read only. |
ShallowReference
An abstracted reference to some other resource. This class is used to provide the build data contracts with a uniform way to reference other resources in a way that provides easy traversal through links.
| Name | Type | Description |
|---|---|---|
| id |
string |
ID of the resource |
| name |
string |
Name of the linked resource (definition name, controller name, etc.) |
| url |
string |
Full http link to the resource |
SuiteCreateModel
Suite create model
| Name | Type | Description |
|---|---|---|
| name |
string |
Name of test suite. |
| queryString |
string |
For query based suites, query string that defines the suite. |
| requirementIds |
integer[] (int32) |
For requirements test suites, the IDs of the requirements. |
| suiteType |
string |
Type of test suite to create. It can have value from DynamicTestSuite, StaticTestSuite and RequirementTestSuite. |
TestSuite
Test suite
| Name | Type | Description |
|---|---|---|
| areaUri |
string |
Area uri of the test suite. |
| children |
Child test suites of current test suite. |
|
| defaultConfigurations |
Test suite default configuration. |
|
| defaultTesters |
Test suite default testers. |
|
| id |
integer (int32) |
Id of test suite. |
| inheritDefaultConfigurations |
boolean |
Default configuration was inherited or not. |
| lastError |
string |
Last error for test suite. |
| lastPopulatedDate |
string (date-time) |
Last populated date. |
| lastUpdatedBy |
IdentityRef of user who has updated test suite recently. |
|
| lastUpdatedDate |
string (date-time) |
Last update date. |
| name |
string |
Name of test suite. |
| parent |
Test suite parent shallow reference. |
|
| plan |
Test plan to which the test suite belongs. |
|
| project |
Test suite project shallow reference. |
|
| queryString |
string |
Test suite query string, for dynamic suites. |
| requirementId |
integer (int32) |
Test suite requirement id. |
| revision |
integer (int32) |
Test suite revision. |
| state |
string |
State of test suite. |
| suiteType |
string |
Test suite type. |
| suites |
List of shallow reference of suites. |
|
| testCaseCount |
integer (int32) |
Test cases count. |
| testCasesUrl |
string |
Test case url. |
| text |
string |
Used in tree view. If test suite is root suite then, it is name of plan otherwise title of the suite. |
| url |
string |
Url of test suite. |