Skip to main content

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 |
+-----------------+ +------------------+ +---------------+
  1. Install the TMS plugin for your test framework
  2. Configure your API key and project ID
  3. Run your tests as usual
  4. 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:

VariableRequiredDescription
TMS_API_KEYYesYour API key from auth.provalab.io/api-keys
TMS_API_URLYesYour 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_IDYesYour organization ID
TMS_PROJECT_IDYesThe project to report results to
TMS_ENVIRONMENTNoEnvironment 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_NAMENoCustom name for the test run
TMS_DISABLEDNoSet to true to disable TMS reporting
Where to find your IDs

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​

FrameworkPackageGuide
Playwrighttms-node-sdkE2E testing with auto-screenshots
Jesttms-node-sdkUnit and integration testing
Cypresstms-node-sdkE2E testing with video capture
Mochatms-node-sdkFlexible test framework
Vitesttms-node-sdkFast Vite-native testing

Python​

FrameworkPackageGuide
pytestpytest-tms-plugin (wheel from plugins.provalab.io)The most popular Python test framework
unittesttms-plugin (not yet published; use pytest)Python's built-in test framework
Robot Frameworktms-plugin (not yet published)Keyword-driven testing

Java​

FrameworkPackageGuide
JUnit 5com.tms:tms-java-sdkModern Java testing
TestNGcom.tms:tms-java-sdkEnterprise Java testing

.NET​

FrameworkPackageGuide
NUnitTMS.SDK.NET test framework
xUnitTMS.SDK.NET test framework

Third-Party Services​

ServiceGuide
JiraSync test cases and auto-create bug tickets
GitHubLink commits, PR checks, and GitHub Actions
SlackGet notified on test runs, failures, and summaries
CI/CD PipelinesGitHub 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" }
}
Unmapped tests still get reported

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