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.

planId
path True

integer

int32

ID of the test plan that contains the suite.

project
path True

string

Project ID or project name

suiteId
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[]

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

TestSuite[]

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
IdentityRef
ReferenceLinks

The class to represent a collection of REST reference links.

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.

SuiteCreateModel

Suite create model

TestSuite

Test suite

IdentityRef

Name Type Description
_links

ReferenceLinks

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.

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[]

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

TestSuite[]

Child test suites of current test suite.

defaultConfigurations

ShallowReference[]

Test suite default configuration.

defaultTesters

ShallowReference[]

Test suite default testers.

id

integer

Id of test suite.

inheritDefaultConfigurations

boolean

Default configuration was inherited or not.

lastError

string

Last error for test suite.

lastPopulatedDate

string

Last populated date.

lastUpdatedBy

IdentityRef

IdentityRef of user who has updated test suite recently.

lastUpdatedDate

string

Last update date.

name

string

Name of test suite.

parent

ShallowReference

Test suite parent shallow reference.

plan

ShallowReference

Test plan to which the test suite belongs.

project

ShallowReference

Test suite project shallow reference.

queryString

string

Test suite query string, for dynamic suites.

requirementId

integer

Test suite requirement id.

revision

integer

Test suite revision.

state

string

State of test suite.

suiteType

string

Test suite type.

suites

ShallowReference[]

List of shallow reference of suites.

testCaseCount

integer

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.