# Testing Frameworks Integration

{% hint style="warning" %}
This documentation page assumes the **two preliminary steps of scan and runtime instrumentation** for the application under test are **already completed**.
{% endhint %}

{% hint style="success" %}
When your integration is successful, you’ll see

* In Coverage Dashboard, the Test Stage name is associated with your application entry, detailing coverage and test results (passed, failed, skipped)
* In the Test Optimization pages, for Supported Frameworks, you can see the potential and/or actual savings of your tests (including details on the recommendation reasons) for this specific application/branch/test stage.
  {% endhint %}

## Integration for Supported Testing Frameworks <a href="#integration-for-supported-testing-frameworks" id="integration-for-supported-testing-frameworks"></a>

### Built-in Integrations with other Tricentis Solutions  <a href="#built-in-integrations-with-other-tricentis-solutions" id="built-in-integrations-with-other-tricentis-solutions"></a>

<table><thead><tr><th width="176.63671875">Framework name</th><th width="348.9765625">Documentation link</th><th>Test Optimization Support</th></tr></thead><tbody><tr><td><strong>Tricentis Tosca</strong></td><td><a href="https://documentation.tricentis.com/tosca/2510/en/content/sealights_integration/sealights_integration_overview.htm">Tosca - SeaLights integration</a> <br><em>(Starting from Tosca 2025.1)</em></td><td><img src="https://4057366433-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAjqTCMRYvHhDgsdPLUnc%2Fuploads%2FHiqKxVnDoOLH0P6P0jAt%2Fcheck_circle.svg?alt=media&#x26;token=15d4ebba-b19c-43c5-9e5b-17b0cc36d41d" alt=""></td></tr><tr><td><strong>Tricentis qTest</strong></td><td><a href="https://docs.sealights.io/knowledgebase/setup-and-configuration/integrations/qtest-integration">Tricentis qTest - Sealights Integration</a></td><td><img src="https://4057366433-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAjqTCMRYvHhDgsdPLUnc%2Fuploads%2FHiqKxVnDoOLH0P6P0jAt%2Fcheck_circle.svg?alt=media&#x26;token=15d4ebba-b19c-43c5-9e5b-17b0cc36d41d" alt=""></td></tr><tr><td><strong>Tricentis Testim</strong></td><td><a href="https://help.testim.io/docs/sealights-integration">Testim Docs - Sealights Integration</a></td><td><img src="https://4057366433-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAjqTCMRYvHhDgsdPLUnc%2Fuploads%2FHiqKxVnDoOLH0P6P0jAt%2Fcheck_circle.svg?alt=media&#x26;token=15d4ebba-b19c-43c5-9e5b-17b0cc36d41d" alt=""></td></tr></tbody></table>

### Integrations with the most common Testing Frameworks  <a href="#integrations-with-the-most-common-testing-frameworks" id="integrations-with-the-most-common-testing-frameworks"></a>

This document provides a tabulated summary of the integration support offered by SeaLights for various testing frameworks, categorized by the underlying technology and linked to their respective documentation pages or sections. For more detailed guidance on these framework integration processes, follow the documentation links provided in the table or refer to related sections within the SeaLights support documentation.

<table><thead><tr><th width="133.51171875">Framework name</th><th width="144.8515625">Underlying Technology</th><th width="317.95703125">Documentation link</th><th>Test Optimization</th></tr></thead><tbody><tr><td><strong>Cucumber JS</strong></td><td>JavaScript</td><td><a data-mention href="../sealights-agents-and-plugins/node.js-testing-plugins/cucumber-js-framework">cucumber-js-framework</a></td><td><img src="https://4057366433-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAjqTCMRYvHhDgsdPLUnc%2Fuploads%2FHiqKxVnDoOLH0P6P0jAt%2Fcheck_circle.svg?alt=media&#x26;token=15d4ebba-b19c-43c5-9e5b-17b0cc36d41d" alt=""></td></tr><tr><td><strong>Cypress</strong></td><td>JavaScript</td><td><a href="https://docs.sealights.io/knowledgebase/setup-and-configuration/sealights-agents-and-plugins/javascript-based-testing-plugins/cypress-framework">Cypress framework</a></td><td><img src="https://4057366433-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAjqTCMRYvHhDgsdPLUnc%2Fuploads%2FHiqKxVnDoOLH0P6P0jAt%2Fcheck_circle.svg?alt=media&#x26;token=15d4ebba-b19c-43c5-9e5b-17b0cc36d41d" alt=""></td></tr><tr><td><strong>Playwright JS</strong></td><td>JavaScript</td><td><a data-mention href="../sealights-agents-and-plugins/node.js-testing-plugins/playwright-js-framework">playwright-js-framework</a></td><td><img src="https://4057366433-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAjqTCMRYvHhDgsdPLUnc%2Fuploads%2FHiqKxVnDoOLH0P6P0jAt%2Fcheck_circle.svg?alt=media&#x26;token=15d4ebba-b19c-43c5-9e5b-17b0cc36d41d" alt=""></td></tr><tr><td><strong>TestCafe</strong></td><td>JavaScript</td><td><a href="https://docs.sealights.io/knowledgebase/setup-and-configuration/sealights-agents-and-plugins/javascript-based-testing-plugins/testcafe-reporter">TestCafe Reporter</a></td><td><img src="https://4057366433-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAjqTCMRYvHhDgsdPLUnc%2Fuploads%2FHiqKxVnDoOLH0P6P0jAt%2Fcheck_circle.svg?alt=media&#x26;token=15d4ebba-b19c-43c5-9e5b-17b0cc36d41d" alt=""></td></tr><tr><td><strong>Jest</strong></td><td>JavaScript</td><td><a data-mention href="../sealights-agents-and-plugins/node.js-testing-plugins/jest-framework">jest-framework</a></td><td><img src="https://4057366433-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAjqTCMRYvHhDgsdPLUnc%2Fuploads%2FHiqKxVnDoOLH0P6P0jAt%2Fcheck_circle.svg?alt=media&#x26;token=15d4ebba-b19c-43c5-9e5b-17b0cc36d41d" alt=""></td></tr><tr><td><strong>Mocha</strong></td><td>JavaScript</td><td><a data-mention href="../sealights-agents-and-plugins/node.js-agent/supported-test-frameworks/mocha-test-framework">mocha-test-framework</a></td><td><img src="https://4057366433-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAjqTCMRYvHhDgsdPLUnc%2Fuploads%2FHiqKxVnDoOLH0P6P0jAt%2Fcheck_circle.svg?alt=media&#x26;token=15d4ebba-b19c-43c5-9e5b-17b0cc36d41d" alt=""></td></tr><tr><td><strong>Karma</strong></td><td>JavaScript</td><td><a data-mention href="../sealights-agents-and-plugins/node.js-agent/supported-test-frameworks/karma-test-framework">karma-test-framework</a></td><td> </td></tr><tr><td><strong>AVA</strong></td><td>JavaScript</td><td><a data-mention href="../sealights-agents-and-plugins/node.js-agent/supported-test-frameworks/ava-framework">ava-framework</a></td><td> </td></tr><tr><td><strong>Protactor</strong></td><td>JavaScript</td><td><a href="https://www.npmjs.com/package/sealights-protractor-plugin">sealights-protractor-plugin - npm</a></td><td><img src="https://4057366433-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAjqTCMRYvHhDgsdPLUnc%2Fuploads%2FHiqKxVnDoOLH0P6P0jAt%2Fcheck_circle.svg?alt=media&#x26;token=15d4ebba-b19c-43c5-9e5b-17b0cc36d41d" alt=""></td></tr><tr><td><strong>Robot</strong></td><td>Python</td><td><a data-mention href="../sample-integrations/integrating-test-executions-from-various-testing-frameworks#robot-framework-sealights-custom-listener">#robot-framework-sealights-custom-listener</a></td><td><img src="https://4057366433-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAjqTCMRYvHhDgsdPLUnc%2Fuploads%2FHiqKxVnDoOLH0P6P0jAt%2Fcheck_circle.svg?alt=media&#x26;token=15d4ebba-b19c-43c5-9e5b-17b0cc36d41d" alt=""></td></tr><tr><td><strong>Pytest</strong></td><td>Python</td><td><a data-mention href="../../sealights-agents-and-plugins/python-agent/running-tests/supported-framework#running-tests-with-pytest">#running-tests-with-pytest</a></td><td><img src="https://4057366433-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAjqTCMRYvHhDgsdPLUnc%2Fuploads%2FHiqKxVnDoOLH0P6P0jAt%2Fcheck_circle.svg?alt=media&#x26;token=15d4ebba-b19c-43c5-9e5b-17b0cc36d41d" alt=""></td></tr><tr><td><strong>Behave</strong></td><td>Python</td><td><a data-mention href="../../sealights-agents-and-plugins/python-agent/running-tests/supported-framework#running-tests-with-behave">#running-tests-with-behave</a></td><td> </td></tr><tr><td><strong>Cucumber Java</strong></td><td>Java</td><td><ul><li>If executed via Maven: <br><a data-mention href="../sealights-agents-and-plugins/java-build-tools-plugins/sealights-maven-plugin/running-tests-only">running-tests-only</a></li><li>If executed via Gradle: <a data-mention href="../sealights-agents-and-plugins/java-build-tools-plugins/sealights-gradle-plugin/running-tests-only-json-file">running-tests-only-json-file</a></li></ul></td><td><img src="https://4057366433-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAjqTCMRYvHhDgsdPLUnc%2Fuploads%2FHiqKxVnDoOLH0P6P0jAt%2Fcheck_circle.svg?alt=media&#x26;token=15d4ebba-b19c-43c5-9e5b-17b0cc36d41d" alt=""></td></tr><tr><td><strong>JUnit, TestNG</strong></td><td>Java</td><td><ul><li>If executed via Maven: <a data-mention href="../sealights-agents-and-plugins/java-build-tools-plugins/sealights-maven-plugin/running-tests-only">running-tests-only</a></li><li>If executed via Gradle: <a data-mention href="../sealights-agents-and-plugins/java-build-tools-plugins/sealights-gradle-plugin/running-tests-only-json-file">running-tests-only-json-file</a></li><li>If executed via Java CLI: <a data-mention href="../../sealights-agents-and-plugins/java-agent/default-usage-cli/running-tests#working-with-a-supported-framework">#working-with-a-supported-framework</a></li></ul></td><td><img src="https://4057366433-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAjqTCMRYvHhDgsdPLUnc%2Fuploads%2FHiqKxVnDoOLH0P6P0jAt%2Fcheck_circle.svg?alt=media&#x26;token=15d4ebba-b19c-43c5-9e5b-17b0cc36d41d" alt=""></td></tr><tr><td><strong>SoapUI</strong></td><td>Java</td><td><a data-mention href="../sealights-agents-and-plugins/java-agent/other-build-and-testing-tools/running-test-listener-with-soapui">running-test-listener-with-soapui</a></td><td> </td></tr><tr><td><strong>JMeter</strong></td><td>Java</td><td><a data-mention href="../sealights-agents-and-plugins/java-agent/other-build-and-testing-tools/running-test-listener-with-jmeter">running-test-listener-with-jmeter</a></td><td> </td></tr><tr><td><strong>xUnit</strong></td><td>.NET</td><td><a data-mention href="../../sealights-agents-and-plugins/.net-core-agent/running-tests#running-tests-with-mstest-nunit-or-xunit">#running-tests-with-mstest-nunit-or-xunit</a></td><td><img src="https://4057366433-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAjqTCMRYvHhDgsdPLUnc%2Fuploads%2FHiqKxVnDoOLH0P6P0jAt%2Fcheck_circle.svg?alt=media&#x26;token=15d4ebba-b19c-43c5-9e5b-17b0cc36d41d" alt=""></td></tr><tr><td><strong>nUnit</strong></td><td>.NET</td><td><a data-mention href="../../sealights-agents-and-plugins/.net-core-agent/running-tests#running-tests-with-mstest-nunit-or-xunit">#running-tests-with-mstest-nunit-or-xunit</a></td><td><img src="https://4057366433-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAjqTCMRYvHhDgsdPLUnc%2Fuploads%2FHiqKxVnDoOLH0P6P0jAt%2Fcheck_circle.svg?alt=media&#x26;token=15d4ebba-b19c-43c5-9e5b-17b0cc36d41d" alt=""></td></tr><tr><td><strong>MSTest, VSTest</strong></td><td>.NET</td><td><a data-mention href="../../sealights-agents-and-plugins/.net-core-agent/running-tests#running-tests-with-mstest-nunit-or-xunit">#running-tests-with-mstest-nunit-or-xunit</a></td><td><img src="https://4057366433-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAjqTCMRYvHhDgsdPLUnc%2Fuploads%2FHiqKxVnDoOLH0P6P0jAt%2Fcheck_circle.svg?alt=media&#x26;token=15d4ebba-b19c-43c5-9e5b-17b0cc36d41d" alt=""></td></tr><tr><td><strong>Go Test</strong></td><td>Go</td><td><a data-mention href="../sealights-agents-and-plugins/go-agent/go-agent-v1/running-tests">running-tests</a></td><td><img src="https://4057366433-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAjqTCMRYvHhDgsdPLUnc%2Fuploads%2FHiqKxVnDoOLH0P6P0jAt%2Fcheck_circle.svg?alt=media&#x26;token=15d4ebba-b19c-43c5-9e5b-17b0cc36d41d" alt=""></td></tr><tr><td><strong>Ginkgo</strong></td><td>Go</td><td><a data-mention href="../../sealights-agents-and-plugins/go-agent/go-agent-v1/running-tests#using-ginkgo">#using-ginkgo</a></td><td><img src="https://4057366433-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAjqTCMRYvHhDgsdPLUnc%2Fuploads%2FHiqKxVnDoOLH0P6P0jAt%2Fcheck_circle.svg?alt=media&#x26;token=15d4ebba-b19c-43c5-9e5b-17b0cc36d41d" alt=""></td></tr><tr><td><strong>Godog, Testify, GoConvey</strong></td><td>Go</td><td><a data-mention href="../../sealights-agents-and-plugins/go-agent/go-agent-v1/running-tests#framework-relying-on-go-test">#framework-relying-on-go-test</a></td><td><img src="https://4057366433-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAjqTCMRYvHhDgsdPLUnc%2Fuploads%2FHiqKxVnDoOLH0P6P0jAt%2Fcheck_circle.svg?alt=media&#x26;token=15d4ebba-b19c-43c5-9e5b-17b0cc36d41d" alt=""></td></tr></tbody></table>

### Integrations maintained by Third-Parties <a href="#integrations-maintained-by-third-parties" id="integrations-maintained-by-third-parties"></a>

<table><thead><tr><th>Framework name</th><th width="124.06640625">Underlying Technology</th><th width="280.82421875">Documentation link</th><th>Test Optimization</th></tr></thead><tbody><tr><td><strong>Katalon Studio</strong></td><td>Java</td><td><ul><li><a href="https://store.katalon.com/product/267/Sealights-Integration">Katalon.com - Sealights Integration plugin</a> (Dynamic Test Suites)</li><li><a href="https://store.katalon.com/product/416/Sealights-Test-Listener">Katalon.com - Sealights Test Listener</a> (Static Test Suites)</li></ul></td><td><img src="https://4057366433-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAjqTCMRYvHhDgsdPLUnc%2Fuploads%2FHiqKxVnDoOLH0P6P0jAt%2Fcheck_circle.svg?alt=media&#x26;token=15d4ebba-b19c-43c5-9e5b-17b0cc36d41d" alt=""></td></tr><tr><td><strong>Ginger by Amdocs</strong></td><td>.NET</td><td><a href="https://ginger-automation.github.io/Ginger-Web-Help/assets/Ginger_By_Amdocs/Integrations/Ginger-Sealights_Integration.htm">Ginger by Amdocs Help - Sealights Integration</a></td><td><img src="https://4057366433-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAjqTCMRYvHhDgsdPLUnc%2Fuploads%2FHiqKxVnDoOLH0P6P0jAt%2Fcheck_circle.svg?alt=media&#x26;token=15d4ebba-b19c-43c5-9e5b-17b0cc36d41d" alt=""></td></tr></tbody></table>

## Generic Integration for Unsupported Framework <a href="#generic-integration-for-unsupported-framework" id="generic-integration-for-unsupported-framework"></a>

### Sealights Public API <a href="#sealights-public-api" id="sealights-public-api"></a>

The SeaLights Public API provides integration capabilities with unsupported testing frameworks by allowing users to manage and optimize their test executions. Below are the detailed steps and API calls required for integrating Test Impact Analysis (TIA) using the SeaLights Public API:

1. **Creating a Test Session**: To begin a test session, you need to create a session using the dedicated API call.
2. **Getting Test Recommendations**: To optimize the testing process, you can retrieve a list of recommended tests to run and use them to dynamically reduce the list of tests executed
3. **Run Your Tests based on Recommendations:** Assuming your application under test is properly instrumented with Sealights
4. **Reporting Test Events**: Once tests are complete, report the test results with the timestamps for each test of its start and end time.
5. **Closing a Test Session**: Finally, close the test session (delete request) complete the testing cycle, and trigger the processing of all the related metadata (coverage and test results).

{% hint style="info" %}
All the relevant details of the API calls are described in our dedicated section of the portal: [Tricentis SeaLights Public API](https://api-doc.sealights.io/#9ca2b292-6f8e-4ee4-9221-a9f734ad9307)
{% endhint %}

### Agents' legacy commands <a href="#agents-legacy-commands" id="agents-legacy-commands"></a>

When using the legacy approach of a SeaLights Agent to run your tests, you can report and capture coverage and test results data effectively for your applications under test. The following steps are to follow:

1. **Start Session**: This command initializes a Test Stage Run for your build, which will be used to link all related test and coverage data. It's critical for associating results from different test stages.
2. **Run Your Tests:** Assuming your application under test is properly instrumented with Sealights
3. **Upload Results**: After executing your tests, you need to upload the test results (success, failed, skipped).
4. **End Session**: Conclude the session to finalize the data collection. This ensures that the session is properly closed and all related data (coverage and test results) is processed.

{% hint style="info" %}
This approach **doesn’t support Sealights Test Optimization** and will not allow you to skip irrelevant tests in a seamless way. If this is necessary, please refer to the Public API section.
{% endhint %}

<table><thead><tr><th width="131.1015625">Technology</th><th>Documentation link</th></tr></thead><tbody><tr><td><strong>Java</strong></td><td><p><a data-mention href="../../sealights-agents-and-plugins/java-agent/default-usage-cli/running-tests#working-without-a-supported-framework">#working-without-a-supported-framework</a></p><p>If you're using <strong>Maven</strong> or <strong>Gradle</strong> to trigger a testing framework that isn't directly supported by us but uses a supported test runner (like <strong>JUnit</strong> or <strong>TestNG</strong>) under the hood, please refer to the relevant integration guides above or contact Support for assistance.</p></td></tr><tr><td><strong>Javascript</strong></td><td><a data-mention href="../sealights-agents-and-plugins/node.js-agent/running-tests">running-tests</a></td></tr><tr><td><strong>.Net</strong></td><td><p><a data-mention href="../../sealights-agents-and-plugins/.net-core-agent/running-tests#legacy-approach">#legacy-approach</a></p><p>If you're using a testing framework that isn't directly supported by us but relies on a supported test runner (like <strong>xUnit</strong>, <strong>NUnit</strong>, or <strong>MSTest</strong>) under the hood, please refer to the relevant integration guides above or contact Support for assistance.</p></td></tr><tr><td><strong>Python</strong></td><td><a data-mention href="../sealights-agents-and-plugins/python-agent/running-tests/no-supported-framework">no-supported-framework</a></td></tr><tr><td><strong>Go</strong></td><td><a data-mention href="../../sealights-agents-and-plugins/go-agent/go-agent-v1/running-tests#running-your-tests-with-the-legacy-approach">#running-your-tests-with-the-legacy-approach</a></td></tr></tbody></table>
