Running Tests using Mocha test framework
If your testing framework is mocha, SeaLights agent integrates directly with it and reports the test results to the server directly
See 'Generating an Agent token' for instructions on how to generate a token
Here is a sample of configuring use instead of the command 'mocha --recursive test
'
Unix:
npx slnodejs mocha --tokenfile /path/to/sltoken.txt --buildsessionidfile buildSessionId --teststage "Unit Tests" --useslnode2 -- --recursive test
Windows:
call npx slnodejs mocha --tokenfile \path\to\sltoken.txt --buildsessionidfile buildSessionId --teststage "Unit Tests" --useslnode2 -- --recursive test
"
--recursive test
" are sample parameters passed to mocha and should be replaced by your ownSeaLights runs as a mocha reporter, you should remove any parameters setting the reporter otherwise they will conflict
Note the double dash delimiter (
--
) between the sealights options and parameters passed to mocha
See 'Node.js Command Reference - Running tests using mocha' for full parameter details
Multiple Reporters Configuration
In case you’re already using a mocha reporter, like allure-mocha
or mochawesome
, it may conflict with the Sealights agent - which adds a reporter of its own (SeaLightsReporter
) which passes the agent the test-events data.
A common solution is to configure the Multi-Reporters plugin:
Install npm: mocha-multi-reporters
Create a file
config.json
- with content similar to the one below (that allowssealights
,mocha-allure
, andJUnit
reporters together) for example:{ "reporterEnabled": "slnodejs/tsOutputs/mocha-reporter/index, allure-mocha, mocha-junit-reporter", "seaLightsReporterReporterOptions": {}, "mochaJunitReporterReporterOptions": { "mochaFile": "results/junit-custom.xml" }, "allureMochaReporterOptions": { "resultsDir": "results/allure" } }
When you run slnodejs mocha run it with the following additional parameters:
npx slnodejs mocha --tokenfile /path/to/sltoken.txt --buildsessionidfile buildSessionId ... -- --reporter-options configFile=config.json
Mapping Functional Tests to Mocha Suites
In some functional testing configurations, a Mocha Suite may represent the overall functional test, while the Mocha tests within the suite correspond to individual test steps. For compatibility with this configuration, we allow you to pass the reportSuites
flag (as a reporterOption
) to map Sealights Tests to Mocha Suites instead of the Mocha tests themselves.
The flag is disabled by default (false
), but when set to true
, Sealights treats each suite as a single functional test, providing a better alignment with Coverage Analytics and Test Optimization.