Copy or clone test plans, test suites, and test cases
Artykuł
TFS 2017 | TFS 2015
Several tools support copy, clone, or import operations of test items—such as, test plans, test suites, and test cases. Test cases describe the steps to take to run a test and validate a feature implementation or bug fix. Test suites group test cases, and optionally other test suites, into a particular order. Test plans define a collection of test suites to run for a particular iteration or release.
Each test case is designed to confirm a specific behavior. Test cases may belong to one or more test suites, however test suites can belong to one and only one test plan.
In general, you should create a test plan for every major project milestone. Copy, clone, or import operations of test items support the following scenarios:
Define a test plan for a new sprint or release based on an existing test plan
Import test suites from one test plan to another test plan within the same or different project
Copy test cases for use in different test suites and test plans
Share test objects across projects
Move test objects from one project to another, possibly to support consolidating projects into a single project.
Depending on the Azure DevOps version you use, you can use the clients or tools listed in the following table to copy, clone, or import test plans, test suites, or test cases.
Microsoft Test Manager (MTM) was deprecated for use with Azure DevOps Services in January 2020, and isn't supported for Azure DevOps Server 2020 and later versions. The current version of Azure Test Plans supports all features that MTM supported and more.
The Test Case Management (TCM) command-line tool is installed when you install Visual Studio 2017 or earlier versions. Examples provided in this article reflect the options available with the Visual Studio 2017 version. Earlier versions may support fewer options. For details, see Work with the TCM command-line tool.
Prerequisites
You must connect to a project. If you don't have a project yet, create one.
To add or edit test-related artifacts, you must have the following permissions:
To add or modify test plans, test suites, test cases, or other test-based work item types, you must have Edit work items in this node permission set to Allow under the corresponding Area Path.
To modify test plan properties such as build and test settings, you must have Manage test plans permission set to Allow under the corresponding Area Path.
To create and delete test suites, add, and remove test cases from test suites, change test configurations associated with test suites, and modify a test suite hierarchy (move a test suite), you must have Manage test suites permission set to Allow under the corresponding Area Path.
To exercise the TCM command-line tool, you must have the following in place:
Installed Visual Studio 2017 Professional or earlier version. You access TCM from the command prompt and the following directories:
%programfiles(x86)%\Microsoft Visual Studio\2017\Professional\Common7\IDE %programfiles(x86)%\Microsoft Visual Studio\2017\Enterprise\Common7\IDE%programfiles(x86)%\Microsoft Visual Studio 14.0\Common7\IDE
To run a TCM command, specify the /collection and /teamproject parameters, and /login as needed.
Parameter
Description
/collection:CollectionURL
Required. Specifies the URI of the team project collection.The format for the URI is as follows: - For Azure DevOps Services: http://dev.azure.com/OrganizationName - For Azure DevOps Server: http://ServerName:Port/VirtualDirectoryName/CollectionName. If no virtual directory is used, then the format for the URI is as follows:http://ServerName:Port/CollectionName
/teamproject:project
Required. The name of the project that contains the test objects you want to clone or import automated tests into.
/login:username,[password]
Optional. Specifies the name and password of a valid Azure DevOps user and who has permissions to run the command. Use this option if your Windows credentials don't have the appropriate permissions, or you're using basic authentication, or you're not connected to a domain.
You must be a valid member of the project(s) you want to access and have the required permissions based on the commands you run. To learn more, see Manual test access and permissions.
To clone or import test objects, you must have been granted the same access levels required to add test plans and test suites as described in Prerequisites.
List test plans or test suites
You often need to know the ID assigned to a test plan or test suite to support copy, clone, or import operations.
You can generate a list of test plans, test suites, or other test objects from the Boards>Queries page. For example, by setting the Work Item Type=Test Plan, you can list all test plans defined for the team project. If you choose the Query across all projects checkbox, the query will list all test plans defined for all projects. To learn more about defining queries, see Define a work item query.
Tip
While test plans, test suites, and test cases are related to each other, you can't view the relationships through a work item query. Link types aren't used to link test plans, test suites, and test cases. Only shared steps and shared parameters are linked to test cases. Also, test cases are linked to user stories or other work items that they test.
TCM supports listing of test plans and test suites. Lists specify the work ID for each test plan or test suite. This ID is the same as a plan ID or suite ID.
The following command lists the test plans defined for the Fabrikam Fiber project hosted in the fabrikamprime organization. The ID and Name corresponds to the work item ID and Title defined for the test plan. For example, test plan 86 is titled Hello World Test.
tcm plans /list /collection:https://dev.azure.com/fabrikamprime /teamproject:"Fabrikam Fiber"
Id Name
--------- ----------------------------------------------------------------
66 Sprint 1
72 All sprints
77 Sprint 2
86 Hello World Test
List test suites
Use tcm suites /list to list the test suites with their work item IDs. When no optional parameters are specified, all test suites are listed for the team project.
The following command lists the test suites defined for the Fabrikam Fiber project hosted in the fabrikamprime organization. The ID corresponds to the work item ID defined for the test suite. Under the Name column, the first entry indicates the test plan that the test suite is defined under. Following the -> (arrow) is the Title of the test suite or the Title of a parent test suite. For example, test suite 75, Sub Suite 01, is a sub-test suite of Suite 01 defined for the All sprints test plan.
tcm suites /list /collection:https://dev.azure.com/fabrikamprime /teamproject:"Fabrikam Fiber"
Id Name
--------- ----------------------------------------------------------------
67 Sprint 1
68 Sprint 1 -> 33 : Change initial view
69 Sprint 1 -> 34 : Welcome back page
70 Sprint 1 -> 43 : Cancel order form
73 All sprints
74 All sprints -> Suite 01
75 All sprints -> Suite 01 -> Sub Suite 01
78 Sprint 2
87 Hello World Test
Copy or clone test plans
We recommend creating a new test plan per sprint or release. When doing so, generally you can clone the test plan for the prior cycle and, with few changes, the copied test plan is ready for the new cycle.
Cloning is useful when you want to branch your application into two versions. After cloning, tests for the two versions can be changed without affecting each other.
This feature isn't supported through the web portal for Azure DevOps Server 2019 and earlier versions. The feature to copy test plans requires Azure DevOps Server 2020 or later version.
You can use the TCM command-line tool to clone a test plan to the same or different project, and to track the status of the clone operation.
Use tcm plans /clone to initiate a cloning operation of all test cases from one test suite to a different destination suite within the same project. The destination suite must be defined and exist in a different plan. All contained suites and test cases are cloned. The command may return an operation ID that you can use to track the status and completion of the clone operation. When the clone operation completes quickly, no operation ID is returned.
The /clone /sourceplanid /destinationplanname creates a new plan. If you specify /sourcesuiteids, the command initiates a clone operation to clone the test cases to the new plan. The command returns an operation ID that can be used to track status and completion of the clone operation.
Parameter
Description
/sourceplanid:id
Required. Specifies the ID of the plan to be copied, and the ID of the suite into which the new copy will be added. If you want to copy a whole test plan, use the ID of the suite at the root of the test plan.The ID of a suite is displayed in the details pane when you select it in the test plan. You can also get a list of suites by using tcm suites /list.
/destinationplanname:name
Specifies the name of the plan into which the cloned test plan will be copied.
Optional. Specify to change the value of a field in each cloned work item. Specify multiple occurrences of this parameter to change as many fields as you want. This option is required when you clone a test suite to a different project.
/sourcesuiteids:suiteid1,[suiteid2,...
Optional. Specifies source test suites within the test plan to copy.
/clonerequirements
Optional. Specifies to clone requirements category work items that are attached to requirements-based test suites. If you omit this parameter, requirements-based test suites are converted to static suites.
/clonechildren
Optional. Specify to clone all child suites of the suites provided.
/clonerequirements
Optional. Specify this switch to clone a requirement-based suite to a destination requirement-based suite. By default, a requirement-based test suite is cloned to a destination static test suite. Can only specify this option when /sourcesuiteids is provided.
The following example clones test plan 66 to a new test plan titled Test plan, Release 3, which is then assigned the ID 118.
tcm plans /clone /sourceplanid:66 /destinationplanname:"Test plan, Release 3" /overridefield:"Iteration Path"="Fabrikam Fiber\Release 3" /overridefield:"Area Path"="Fabrikam Fiber\Web" /collection:https://dev.azure.com/fabrikamprime /teamproject:"Fabrikam Fiber"
Plan created with ID: 118
Clone operation is complete.
Track the status of the test plan clone operation
Use tcm plans /clone /status to retrieve the status of the clone operation made with tcm suites /clone. Test suites that contain a large number of test cases can take a considerable time to clone.
When you're creating the test plan for a new sprint, you often want to repeat some of the tests from the previous sprints, to make sure that the functionality you already implemented still works.
Note the following:
When you import (Web) or clone (TCM) a test suite to a new project, the new suite will contain copies of all test cases in the source suite. However, it won't retain any historical data like the previous test runs, related bugs, old results.
Shared steps referenced by the test cases are also cloned and created in the destination project.
You can't clone test cases from and to the same test plan, even into a different suite. To accomplish this scenario, you must first move the test cases to a different, temporary test plan. Then, use the temporary test plan as the source plan and clone the test cases back to the source test plan by putting the ID into the destination test plan place. Shared steps present in the test cases will also be duplicated in this process.
You can use tcm suites /list to list all test suites defined for a project.
In order to use the same test cases in different suites and plans, copy and paste test cases using the Grid view. To learn more, see (XLink to be provided)
This feature isn't supported through the web portal for Azure DevOps Server 2019 and earlier versions. The feature to import test suites requires Azure DevOps Server 2020 or later version.
You can use the TCM command-line tool to clone a test plan to the same or different project, and to track the status of the clone operation.
Use tcm suites /clone to initiate a cloning operation of all test cases from one test suite to a different destination suite within the same project by default. The destination suite must be defined and exist in a different plan. All contained suites and test cases are cloned. The command returns an operation ID that you can use to track the status and completion of the clone operation.
The following options provide support for optional clone operations:
/destinationteamproject: Clone a suite to a different project.
/destinationworkitemtype: Specify the work item type to use when cloning the test cases. Specify this option when cloning test cases to a custom work item type.
/overridefield: Override the values for select fields, such as the Area Path and Iteration Path fields, which is required when cloning to a different project. Or override the value of other fields to distinguish cloned test cases from the original.
/clonerequirements: Specify this switch to clone a requirement-based suite to a destination requirement-based suite.
Specifies the ID of the suite to be copied, and the ID of the suite into which the new copy will be added. If you want to copy a whole test plan, use the ID of the suite at the root of the test plan. The ID of a suite is displayed in the details pane when you select it in the test plan. You can also get a list of suites by using tcm suites /list.
Optional. Specify to change the value of a field in each cloned work item. Specify multiple occurrences of this parameter to change as many fields as you want. This option is required when you clone a test suite to a different project.
/destinationsuiteid:id
Specifies the ID of the suite into which the new copy will be added. If you want to copy a whole test plan, use the ID of the suite at the root of the test plan. The ID of a suite is displayed in the details pane when you select it in the test plan. You can also get a list of suites by using tcm suites /list.
/destinationteamproject:projectname
Optional. Specify when you want to clone the test suite to a different project but in the same organization or project collection. When specified, you must specify override field values for the Area Path and Iteration Path fields.
/destinationworkitemtype:workitemtype
Optional. Specify when you want to clone the test suite to a different work item type in the destination project.
/clonerequirements
Optional. Specify this switch to clone a requirement-based suite to a destination requirement-based suite. By default, a requirement-based test suite is cloned to a destination static test suite.
When you clone a test suite, the following objects are copied from the source test plan to the destination test plan.
Test plan object
Notes
Test case
Each new test case retains its shared steps. A link is defined between the source and new test cases. The new test cases do not have test runs, bugs, test results, or build information.
Shared steps
Shared steps referenced by cloned test cases are copied.
Test suite
Test suites that are copied retain the following data:
- Names and hierarchical structure of the test suites - Order of the test cases - Assigned testers - Configurations
Recordings
Action recordings linked from a cloned test case are copied.
Links and Attachments
All links and attachments are copied for all copied test items.
Test configuration
The test configuration defined for the source test plan is copied over and applied to the destination test plan.
The following test information is not copied:
Test settings: The test setting for the source test plan isn't copied. Instead, the test settings for the destination test plan is applied.
Test results and test runs: No test results are copied. Because test runs are applicable only to the source test plan, they are not copied.
When /clonerequirements is specified and Requirements-based test suites are copied:
The Requirements-based test suites are copied and linked to a new copy of the requirement work item.
Requirements work items (product backlog items or user stories) that are associated with a cloned requirements-based suite are cloned.
Bug work items are cloned in a project that uses the Scrum process template, or any project in which the Bug work item type is in the Requirements work item category. Otherwise, bugs aren't cloned.
When /clonerequirements in't specified and Requirements-based test suites are copied:
Requirements-based test suites are converted to static test suites in the destination test plan.
Cloned test cases are referenced under the static test suite.
Cloned test cases don't include links to their original requirements work items.
Example
The following example illustrates cloning test suite 97 defined for the Fabrikam Fiber project to the Fabrikam Git project. Because the test suite contained a query-based suite, a warning message is listed to review and revise the respective query in the source and destination test suites.
tcm suites /clone /collection:https://dev.azure.com/fabrikamprime /teamproject:"Fabrikam Fiber" /destinationteamproject:"Fabrikam Git" /suiteid:97 /destinationsuiteid:104 /overridefield:"Iteration Path"="Fabrikam Git" /overridefield:"Area Path"="Fabrikam Git"
Started clone operation with id 4.
Use /status:4 to get progress and completion information of the operation.
Warning: You have cloned the following query based suites as part of this clone operation. You are advised to fix their respective queries in the source and destination suites, after the clone operation completes.
1. Sprint 3 -> Sprint 3 query-based suite
Track the status of the test suite clone operation
Use tcm suites /clone /status to retrieve the status of the clone operation made with tcm suites /clone. Test suites that contain a large number of test cases can take a considerable time to clone.
tcm suites /clone /status:4 /collection:https://dev.azure.com/fabrikamprime /teamproject:"Fabrikam Fiber"
Clone operation 4 has succeeded. Summary information:
Started on: 10-Nov-21 5:00:28 PM
Started by: Jamal Hartnett
Source suite id: 97
Destination suite id: 114
Test cases cloned: 9
Shared steps cloned: 0
Requirements cloned: 0
Completed on: 10-Nov-21 5:00:30 PM
Copy and paste test case(s) (Grid view)
You copy and paste test cases in order to use the same tests in different suites and plans. For example, you could have a test suite that uses a subset of the tests defined in a more exhaustive test suite. The Define>Grid view supports editing test cases as well as copy and pasting test cases to different test suites. For editing test cases, see Create test cases, Use the Grid view to edit test cases.
From the Internet Explorer, Edge, or Chrome browsers, you can copy test cases from the Grid view for one test plan and test suite to another test plan and test suite.
From the Test Plans>Test plans page, choose the test suite containing the test case(s) you want to copy. Within the Define tab, Choose the Grid view.
Highlight the rows you want to copy, and then enter CTRL+C.
Select a different test suite from the same or different plan and paste with CTRL+V. If you don't select a different suite, nothing happens when you paste, because each suite can only have one reference to any test case.
Choose
Save test cases.
The new test cases are saved with new IDs assigned.
Import automated test cases (TCM)
To import automated test cases to a test suite, use tcm testcase /import. You must specify a .dll file for the test assembly that contains your tests.
Specifies the path and name of the test assembly that contains your automated tests that you want to import.
/maxpriority:priority
Optional. Specifies which tests to import based on the maximum priority of the test method. For example, if the parameter is /maxpriority:1, only tests with a priority attribute for the test method less than or equal to 1 are imported as test cases from the assembly.
/minpriority:priority
Optional. Specifies which tests to import based on the minimum priority of the test method. For example, if the parameter is /minpriority:2, only tests with a priority attribute for the test method equal or greater than 2 are imported as test cases from the assembly.
/category:filter
Optional. Specifies which tests to import based on the category of each test method in the test assembly. You can use this parameter together with /syncsuite to import tests with a certain category into a specific test suite. For more information about test categories, see Run unit tests with Test Explorer.
/syncsuite:id
Optional. Specifies the suite ID for the test suite in your test plan to which you want to add the test cases that you import. This suite cannot be a dynamic suite or a query-based suite. If you specify a test suite to synchronize to update tests that have already been added, the tests that aren't imported are removed from the test suite but not from the test plan itself.