Integrations Overview
TMS integrates with your existing test frameworks so test results flow automatically into your dashboard -- no manual entry, no copy-paste, no context switching.
How It Works
Your Test Framework TMS Plugin/Reporter TMS Dashboard
+-----------------+ +------------------+ +---------------+
| Run your tests | ---> | Captures results | ---> | View results, |
| as usual | | Sends to TMS API | | trends, and |
| | | Uploads artifacts| | analytics |
+-----------------+ +------------------+ +---------------+
- Install the TMS plugin for your test framework
- Configure your API key and project ID
- Run your tests as usual
- View results in the TMS dashboard -- they appear automatically
Prerequisites
Before setting up any integration, you need:
- A TMS account with access to at least one project
- An API key (create one under API Keys at auth.provalab.io/api-keys; keys start with
tms_) - Your Organization ID and Project ID (visible in the TMS dashboard URL or under Settings > Organization)
Environment Variables
All TMS integrations use the same core environment variables:
| Variable | Required | Description |
|---|---|---|
TMS_API_KEY | Yes | Your API key from auth.provalab.io/api-keys |
TMS_API_URL | Yes | Your TMS URL: https://tms.provalab.io for ProvaLab cloud, or your self-hosted host. (The pytest plugin reads TMS_BASE_URL instead and defaults to the cloud URL.) |
TMS_ORGANIZATION_ID | Yes | Your organization ID |
TMS_PROJECT_ID | Yes | The project to report results to |
TMS_ENVIRONMENT | No | Environment tag (e.g., staging, production). Node, Java, .NET and Ruby SDKs only; the pytest plugin has no environment setting (use --tms-test-run-name) |
TMS_TEST_RUN_NAME | No | Custom name for the test run |
TMS_DISABLED | No | Set to true to disable TMS reporting |
Open any project in TMS. The URL looks like https://tms.yourcompany.com/org/3/projects/12 -- here 3 is your Organization ID and 12 is your Project ID.
Supported Frameworks
JavaScript / TypeScript
| Framework | Package | Guide |
|---|---|---|
| Playwright | tms-node-sdk | E2E testing with auto-screenshots |
| Jest | tms-node-sdk | Unit and integration testing |
| Cypress | tms-node-sdk | E2E testing with video capture |
| Mocha | tms-node-sdk | Flexible test framework |
| Vitest | tms-node-sdk | Fast Vite-native testing |
Python
| Framework | Package | Guide |
|---|---|---|
| pytest | pytest-tms-plugin (wheel from plugins.provalab.io) | The most popular Python test framework |
| unittest | tms-plugin (not yet published; use pytest) | Python's built-in test framework |
| Robot Framework | tms-plugin (not yet published) | Keyword-driven testing |
Java
| Framework | Package | Guide |
|---|---|---|
| JUnit 5 | com.tms:tms-java-sdk | Modern Java testing |
| TestNG | com.tms:tms-java-sdk | Enterprise Java testing |
.NET
| Framework | Package | Guide |
|---|---|---|
| NUnit | TMS.SDK | .NET test framework |
| xUnit | TMS.SDK | .NET test framework |
Third-Party Services
| Service | Guide |
|---|---|
| Jira | Sync test cases and auto-create bug tickets |
| GitHub | Link commits, PR checks, and GitHub Actions |
| Slack | Get notified on test runs, failures, and summaries |
| CI/CD Pipelines | GitHub Actions, Jenkins, and GitLab CI examples |
Test Case Mapping
All integrations support linking automated tests to TMS test cases. This lets you track which test cases are covered by automation and see historical results per test case.
Option 1: Inline in test names -- Include [TMS-123] in your test title:
test('[TMS-123] should validate login', () => { ... });
@pytest.mark.tms_case_id(123)
def test_login():
...
@TMSTestCase(id = 123)
public void testLogin() { ... }
Option 2: Mapping file -- Create a test-case-mapping.json:
{
"should validate login": { "id": 123, "priority": "high" },
"handles errors": { "id": 456, "priority": "medium" }
}
Tests without a TMS case ID mapping are still reported to TMS -- they just won't be linked to a specific test case. You can map them later from the TMS dashboard.
Need Help?
- Check the CI/CD guide for running TMS-integrated tests in your pipeline
- Visit the TMS dashboard and go to Help > Documentation for API reference
- Contact your TMS administrator if you need an API key or project access