# Test Case Templates

> Use test case templates as base models for your test cases. For example, you can create a template with [data variations](data-driven-testing.md) to be reused on different tests. You can create test case templates for Test Automation projects, including other file types such as Global Exception Handler. For other projects (e.g., Process), you can create workflow templates.

Use test case templates as base models for your test cases. For example, you can create a template with [data variations](data-driven-testing.md) to be reused on different tests. You can create test case templates for Test Automation projects, including other file types such as Global Exception Handler. For other projects (e.g., Process), you can create workflow templates.

## Conditions

* The templates are specific to the project type and the language that is used to create it.
* The templates cannot be converted to workflows, compiled, or published.
* You can make use of reusable content by [creating a library](creating-basic-library.md) with test case templates. Test data variation is not exported to the library alongside the test case template.

  :::important
  The resources referenced in the template will not be copied locally to the project where you are trying to import the library. The template should not contain references to other assets, such as workflows within the library.
  :::

## Template Sources

When you add a new file, you can choose a template on which to base it. The templates that you can choose from vary depending on the type of file you are adding (workflow or test case) and on whether you have previously added templates to your project **Templates** folder.

## Built-in Templates

### Empty test case

Choose **Empty Test Case** when you [create a test case](application-testing-test-cases.md) if you want to add a **Placeholder** activity that you want to invoke at a later stage.

### BDD test case

**BDD** stands for Behavioural-Driven Development. Choose **BDD Test Case** when you [create a test case](application-testing-test-cases.md) to structure your test around Given-When-Then containers.

### Local File Templates

The local templates are created in the **Templates** folder of the project when you [extract a file as template](test-automation-test-case-templates.md#extract-file-as-template) and when you [add a template to the Templates folder](test-automation-test-case-templates.md#adding-a-local-file-template). Local file templates are available only inside the project where you create, or extract them.

You can create local templates of three types: [execution template](execution-templates.md), [workflow template](workflow-from-a-template.md), and test case template. When you extract a file as a template, the template type is applied automatically based on the type of file you extract (workflow or test case). When you manually add a template to the Templates folder, you select the type of template to create.

### Package-file Templates

#### Test with timeout

The **Test With Timeout** template is available only with the Testing activity package, version 22.10 or higher. Choose **Test With Timeout** when you [create a test case](application-testing-test-cases.md) if you want to use a timeout or to take screenshots when a verification fails.

The template is configured to throw a time-based exception, taking a screenshot of the failure that occurred in your workflow.

:::note
* If you set the `takeScreenshotOnException` Boolean variable to `false` make sure to modify the `Timeout Message` property of the `TimeoutScope` activity.
* You can modify the timeout in the `duration` variable. The default is set to five (5) minutes.
* You can keep screenshots on your machine by [configuring Testing Project Settings](https://docs.uipath.com/activities/docs/project-settings-testing#keep-screenshots).
:::

## Adding a Local File Template

You can use the contextual menu in the **Project** panel to manually add [execution](execution-templates.md), and test case templates based on other templates to your project. After you add a template, you can edit it in the Designer, and then use it as a starting point for creating other files.

![docs image](https://dev-assets.cms.uipath.com/assets/images/studio/studio-168369-beaaee57.webp)

* To add a test case template, right-click the **Templates** folder, and then select **Add** &gt; **Test Case Template**. Follow the [test case creation process](application-testing-test-cases.md) to configure the template.

  ![docs image](https://dev-assets.cms.uipath.com/assets/images/studio/studio-166728-5a689624.webp)
* To add an execution template, right-click the **Templates** folder, and then select **Add** &gt; **Execution Template**.

  ![docs image](https://dev-assets.cms.uipath.com/assets/images/studio/studio-168917-8c5d2791.webp)

### Extract File as Template

1. Open your workflow in Studio.
2. In the **Project** panel, right-click a test case and select **Extract as template**.

   ![docs image](https://dev-assets.cms.uipath.com/assets/images/studio/studio-167965-e840dbc5.webp)

You test case is now stored in **Project** &gt; **Templates**. You can copy and paste or move it back to your testing folder.

![docs image](https://dev-assets.cms.uipath.com/assets/images/studio/studio-170411-8a89aec5.webp)

:::note
* You can create templates directly from the **Templates** folder for your test cases and workflows.
* You can use the contextual menu within the **Templates** folder to perform various actions, such as [comparing files](comparing-files.md).
:::

### Test Case Templates in Libraries

You can create test case templates in libraries the same way you create them in processes. After you [publish the library](about-publishing-automation-projects.md), the templates marked as public are available as **package file templates** in projects where the library is installed.

## Creating a Test Case From a Template

1. Create a Testing project.
2. Build whatever test case you would like to use as a template.
3. When you finish building the test case, right-click it, and select **Extract as Template**.

   Name the template, choose the **Templates** folder as the location to store it in, and select **Create**. For this example, the name of the template is **MyFirstTestCaseTemplate**.

   ![docs image](https://dev-assets.cms.uipath.com/assets/images/studio/studio-172524-013b1fc5.webp)
4. Go to the **Design** tab, in the **File** group, select **New** &gt; **Test Case**. The **New Test Case** window is displayed.

   ![docs image](https://dev-assets.cms.uipath.com/assets/images/studio/studio-166516-c87aa9fb.webp)
5. Give it an appropriate name, and select the template that you previously created from the **Template** dropdown list. For this example, choose **MyFirstTestCaseTemplate**.

## Removing a Template

To remove a template, expand the **Templates** folder in the Project panel, right-click the template, and then select **Delete**.

## Related Articles

* [Extract a project as library](about-libraries.md)
* [Execution Templates](execution-templates.md)
