Running Tests using Karma test framework
Gathering coverage and test information using the SeaLights Node.js Test Listener is done in a few steps:
See 'Generating an Agent token' for instructions on how to generate a token
Starting the Test Listener
First the SeaLights server needs to be notified that a test stage is starting.
Unix:
npx slnodejs start --tokenfile /path/to/sltoken.txt --buildsessionidfile buildSessionId --teststage "Unit Tests"
Windows:
call npx slnodejs start --tokenfile \path\to\sltoken.txt --buildsessionidfile buildSessionId --teststage "Unit Tests"
See 'Node.js Command Reference - Starting a test stage' for full parameter details
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 Node.js Agents - Running backend server using SeaLights agent'
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
In order to report the test and coverage information to SeaLights you need to run the karma tests while producing coverage information and a JUnit results file.
For the JUnit results XML file, you can use the karma-junit-reporter reporter. See GitHub - karma-runner/karma-junit-reporter: A Karma plugin. Report results in junit xml format. for details.
For the coverage you need to use the karma-coverage configured to generate a
coverage-final.json
file by using the coverageReporter typejson
. See npm: karma-coverage for details
Upload coverage report files
Once done running the unit tests you upload the coverage report files to the SeaLights server using the nycReport option
Unix:
npx slnodejs nycReport --tokenfile /path/to/sltoken.txt --buildsessionidfile buildSessionId
Windows:
call npx slnodejs nycReport --tokenfile \path\to\sltoken.txt --buildsessionidfile buildSessionId
Upload test results report files
Once done running the tests you upload the test results file to the SeaLights server using the uploadReports option
Unix:
npx slnodejs uploadReports --tokenfile /path/to/sltoken.txt --buildsessionidfile buildSessionId --reportFile junit.xml
Windows:
call npx slnodejs uploadReports --tokenfile \path\to\sltoken.txt --buildsessionidfile buildSessionId --reportFile junit.xml
Ending the Test Stage
Finally the server needs to be notified that a test stage has ended.
Sample command
Samples
Running unit tests using Jest
Below, a sample script running the Unit Tests while instrumenting for client side coverage on Unix: