# Local TMS

Local TMS is a lightweight and agile way to store and manage your test data well suited for teams regardless of their size. Local TMS stores test data as a collection of `t.md` and `r.md` files right in the project. This approach allows for branching, versioning, reviewing, and better integration with automated tests.

Take a look at this short video to see how local TMS works:

[Video](https://resources.jetbrains.com.cn/help/img/idea/2026.2/aqua_local_tms.mp4)

> **Warning:**
> Local TMS format is experimental and does not have a specification, therefore, it is subject to changes in future releases.

Procedure: Enable local TMS

1. Press `Ctrl+Alt+S` (Windows), `⌘ Comma` (macOS), `⌘ Comma` (IntelliJ IDEA Classic (macOS)), `⌘ Comma` (macOS System Shortcuts), `Ctrl+Alt+S` (XWin), `Ctrl+Alt+S` (GNOME), `Ctrl+Alt+S` (KDE), `Ctrl+Alt+S` (Emacs), `Ctrl+Alt+S` (Sublime Text), `⌘ Comma` (Sublime Text (macOS)), `Ctrl+Alt+S` (NetBeans), `Ctrl+Alt+S` (Visual Studio), `⌘ Comma` (Visual Studio (macOS)), `Ctrl+Alt+S` (Eclipse), `⌘ Comma` (Eclipse (macOS)) to open settings and then select `Tools | TMS`.

2. Set the Markdown checkbox under TMS.

If your project already has any `t.md` files in it, they will be displayed in the Markdown tab of the TMS tool window.

Procedure: Create a test suite

1. In the Project tool window (`Alt+1` (Windows), `⌘ 1` (macOS), `⌘ 1` (IntelliJ IDEA Classic (macOS)), `⌘ 1` (macOS System Shortcuts), `Alt+1` (XWin), `Alt+1` (GNOME), `Alt+1` (KDE), `Alt+1` (Emacs), `Alt+1` (Sublime Text), `⌘ 1` (Sublime Text (macOS)), `Ctrl+1` (NetBeans), `Ctrl+Alt+L` (Visual Studio), `⌘ ⌥ L` (Visual Studio (macOS)), `Alt+1` (Eclipse), `Alt+1` (Eclipse (macOS))), select the directory in which you want to create the test suite, press `Alt+Insert` (Windows), `⌘ N` (macOS), `⌃ N` (IntelliJ IDEA Classic (macOS)), `⌘ N` (macOS System Shortcuts), `Alt+Insert` (XWin), `Alt+Insert` (GNOME), `Alt+Insert` (KDE), `Alt+Insert` (Emacs), `Ctrl+N` (Sublime Text), `⌘ N` (Sublime Text (macOS)), `Alt+Insert` (NetBeans), `Ctrl+N` (Visual Studio), `⌘ N` (Visual Studio (macOS)), `Alt+Insert` (Eclipse), `⌘ N` (Eclipse (macOS)), and select Test Suite from the menu.

Alternatively, right-click the directory and select `New | New Test Suite`.

2. Give the test suite a name and press `Enter` (Windows), `⏎` (macOS), `⏎` (IntelliJ IDEA Classic (macOS)), `⏎` (macOS System Shortcuts), `Enter` (XWin), `Enter` (GNOME), `Enter` (KDE), `Enter` (Emacs), `Enter` (Sublime Text), `⏎` (Sublime Text (macOS)), `Enter` (NetBeans), `Enter` (Visual Studio), `⏎` (Visual Studio (macOS)), `Enter` (Eclipse), `⏎` (Eclipse (macOS)).

Test suite files have the following format:

```
# MyTestSuite
Tags: tag1, tag2
Meta: key1 = value, key2 = value

## S1 Sub-suite 1
* C1 Test Case 1
Tags: tag3
    * Step 1
    * Step 2
* C2 Test Case 2
Tags: tag4
    * Step 1
    * Step 2

## S2 Sub-suite 2
* C3 Test Case 3
Tags: tag5
    * Step 1
    * Step 2
```

* The heading contains the test suite name.

* Tags and metadata are specified using `Tags` and `Meta` keywords right after the element declaration. Tags and metadata can then be used as criteria for filtering TMS items.

* Each element (suite, sub-suite, and case) can have its own tags and metadata.

* Tags and metadata are inherited from a suite or a sub-suite to its respective test case(s). Inherited tags and metadata are shown for the test cases in the TMS tool window. ![Inherited tags and metadata](https://resources.jetbrains.com.cn/help/img/idea/2026.2/aqua_tags_metadata_visibility.png)

* List items are test cases.

* Letters `S` and `C` followed by numbers represent an ID assigned to a test suite or case. Assigning an ID for the test case is recommended, and optional for the test suite.

* Nested list items are test steps.

> **Note:**
> When assigning an ID to a test suite or case, specify only the number. The corresponding letter is added automatically.

![Assigning IDs to test suites and cases](https://resources.jetbrains.com.cn/help/img/idea/2026.2/aqua_test_suites_and_cases.animated.gif)

> **Tip:**
> Rename refactoring `Shift+F6` (Windows), `⇧ F6` (macOS), `⇧ F6` (IntelliJ IDEA Classic (macOS)), `⌘ ⌥ R` (macOS System Shortcuts), `Shift+F6` (XWin), `Shift+F6` (GNOME), `Shift+F6` (KDE), `Shift+F6` (Emacs), `Shift+F6` (Sublime Text), `⇧ F6` (Sublime Text (macOS)), `Ctrl+R` (NetBeans), `Ctrl+R, R` (Visual Studio), `⌘ R, R` (Visual Studio (macOS)), `Alt+Shift+R` (Eclipse), `⇧ F6` (Eclipse (macOS)) and find usages `Alt+F7` (Windows), `⌥ F7` (macOS), `⌥ F7` (IntelliJ IDEA Classic (macOS)), `⌃ U` (macOS System Shortcuts), `Alt+F7` (XWin), `Alt+Shift+7` (GNOME), `Alt+Shift+7` (KDE), `Alt+F7` (Emacs), `Alt+F7` (Sublime Text), `⌥ F7` (Sublime Text (macOS)), `Alt+F7` (NetBeans), `Shift+F12` (Visual Studio), `⇧ F12` (Visual Studio (macOS)), `Ctrl+G` (Eclipse), `⌘ ⇧ G` (Eclipse (macOS)) work for all identifiers and metadata in local TMS files. This is useful, for example, when you want to consistently rename an element that might be used elsewhere, or quickly look up occurrences of test statuses, user ids, tags, and so on.

Procedure: Create a test run

Test runs are stored in `r.md` files as part of your project. They are not required to correspond to a test case and can consist of arbitrary steps.

1. In the Project tool window (`Alt+1` (Windows), `⌘ 1` (macOS), `⌘ 1` (IntelliJ IDEA Classic (macOS)), `⌘ 1` (macOS System Shortcuts), `Alt+1` (XWin), `Alt+1` (GNOME), `Alt+1` (KDE), `Alt+1` (Emacs), `Alt+1` (Sublime Text), `⌘ 1` (Sublime Text (macOS)), `Ctrl+1` (NetBeans), `Ctrl+Alt+L` (Visual Studio), `⌘ ⌥ L` (Visual Studio (macOS)), `Alt+1` (Eclipse), `Alt+1` (Eclipse (macOS))), select the directory in which you want to create the test run, press `Alt+Insert` (Windows), `⌘ N` (macOS), `⌃ N` (IntelliJ IDEA Classic (macOS)), `⌘ N` (macOS System Shortcuts), `Alt+Insert` (XWin), `Alt+Insert` (GNOME), `Alt+Insert` (KDE), `Alt+Insert` (Emacs), `Ctrl+N` (Sublime Text), `⌘ N` (Sublime Text (macOS)), `Alt+Insert` (NetBeans), `Ctrl+N` (Visual Studio), `⌘ N` (Visual Studio (macOS)), `Alt+Insert` (Eclipse), `⌘ N` (Eclipse (macOS)), and select Test Run from the menu.

Alternatively, right-click the directory and select `New | New Test Run`.

2. Select the test cases that should be checked during this test run.

Procedure: Manage a test run

For each test case in a test run, you can specify its outcome and who performed the test.

1. Go to the test run file.

2. Specify the result, for example, `[ok]` or `[fail]` and the agent id using the `@` sign, for example:

```
* [ok] @my.user Test Case 1
```

## Share test data through VCS

Test data stored in local TMS can be shared and versioned just like any other project files.

For more information about enabling and using version control in your project, refer to [Version control](version-control-integration.html) topic.

