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 own

  • SeaLights 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

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:

  1. Install npm: mocha-multi-reporters

  2. Create a file config.json - with content similar to the one below (that allows sealights, mocha-allure, and JUnit 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" } }
  3. 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.