> For the complete documentation index, see [llms.txt](https://docs.sealights.io/knowledgebase/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.sealights.io/knowledgebase/setup-and-configuration/sealights-agents-and-plugins/python-agent/running-tests/no-supported-framework.md).

# No Supported Framework

Gathering coverage and test information using the SeaLights Python agent without a supported framework is done in a few steps:

{% hint style="info" %}
See '[Generating an Agent token](https://docs.sealights.io/knowledgebase/settings/token-access-and-management#token-list-and-token-creation-2)' for instructions on how to generate a token
{% endhint %}

## Starting the test stage <a href="#starting-the-test-stage" id="starting-the-test-stage"></a>

First the SeaLights server needs to be notified that a test stage is starting.

{% code overflow="wrap" lineNumbers="true" %}

```javascript
sl-python start --testStage "Unit Tests"
```

{% endcode %}

## Running your tests <a href="#running-your-tests" id="running-your-tests"></a>

{% hint style="info" %}
**Test Duration Requirements for Coverage Calculation**\
Please note that tests must run for a minimum of 1 second for SeaLights to calculate coverage. If your test duration is under 1s, adding a brief pause to your test will allow SeaLights to complete the coverage sampling process.
{% endhint %}

### Functional Tests <a href="#functional-tests" id="functional-tests"></a>

Before running your functional tests you need to set up the backend server to receive the test footprints. See [Running Your Backend Server with the SeaLights Python Agent](/knowledgebase/setup-and-configuration/sealights-agents-and-plugins/python-agent/capturing-coverage-from-runtime-application/running-backend-server-using-sealights-agent.md).

Once set up you now run your tests normally while generating one or more JUnit xml result files to be reported to the SeaLights server.

### Unit Tests <a href="#unit-tests" id="unit-tests"></a>

As the unit tests are not run against a backend server, you need to run the actual tests using the Sealights python Agent while generating one or more JUnit xml result files to be reported to the SeaLights server.

The command is the same as you would use on the backend server. See 'Using Python Agents - Running backend server using SeaLights agent'

## Upload report files <a href="#upload-report-files" id="upload-report-files"></a>

Once done running the tests you upload the report files to the SeaLights server

{% code overflow="wrap" lineNumbers="true" %}

```javascript
sl-python uploadreports --file "/path/to/junit_report.xml"
```

{% endcode %}

## Ending the Test Stage <a href="#ending-the-test-stage" id="ending-the-test-stage"></a>

Notify the SeaLights server that the test stage has ended.

{% code overflow="wrap" lineNumbers="true" %}

```javascript
sl-python end
```

{% endcode %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.sealights.io/knowledgebase/setup-and-configuration/sealights-agents-and-plugins/python-agent/running-tests/no-supported-framework.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
