Running Tests with unittest, unittest2, pytest, nose or behave

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

See 'Generating an Agent token' for instructions on how to generate a token

Running your tests - Functional Tests

Before running your functional tests you need to set up the backend server to receive the test footprints. See Using Python Agent - Running backend server using SeaLights agent

Once set up you now run your tests with one of the following flags

Running tests with unittest

sl-python unittest --teststage "Unit Tests" {--cov-report /path/to/report.xml} <your args...>

Running tests with pytest

Sealights agent conflicts with the pytest coverage option (--cov), and this option must be removed when using the sl-python command below.

sl-python pytest <Options ...> <pytest args...> Options: --buildsessionidfile <Text> Path to a file to save the build session id in (default: <user.dir>/buildSessionId.txt) --buildsessionid <Text> Provide build session id manually, case-sensitive --tokenfile <Text> A path to a file where the program can find the token. Case-sensitive --token <Text> Token (mandatory. Can also be provided by 'tokenfile' argument). Case-sensitive --labid <Text> Lab Id, case-sensitive --teststage <Text> {E.g: integration tests, regression, [Unit Tests]} --cov-report <Path> {E.g: /path/to/report.xml} --per-test <StrToBool> {E.g: false, [true]} --interval <Integer in milli second> {E.g: 20000, [10000], 5000} -tsd, --test-selection-disable <Flag> -tsri, --test-selection-retry-interval <Integer in second> {E.g: 1, [5], 10} -tsrt, --test-selection-retry-timeout <Integer in second> {E.g: 30, [60], 120}

If the pytest-cov module exists in your project with an older version than defined in the sl-python dependencies, coverage collection will fail.
This can be avoided by removing pytest-cov from your dependencies, as sl-python will install this automatically.

Running tests with unittest2

sl-python unit2 --teststage "Unit Tests" {--cov-report /path/to/report.xml} <your args...>

Running tests with nose

Running tests with behave