Running Backend Server
To collect code coverage for a Node.js backend application, the SeaLights Node.js agent can be attached in one of two ways:
Non-Intrusive Approach (Using
preload.jswithNODE_OPTIONS)Wrapper Command (Using
slnodejs run)
Once your application starts with the agent, it should appear under Live Agents Monitor in the SeaLights Cockpit.
Non-Intrusive Approach (Using preload.js with NODE_OPTIONS)
preload.js with NODE_OPTIONS)This method is ideal when you cannot or prefer not to modify the application’s execution command, such as in Docker containers, pm2, or CI environments.
The SeaLights agent provides a preload.js script that can be injected into the process using the NODE_OPTIONS environment variable.
export SL_tokenfile=./sltoken.txt
export SL_buildsessionidfile=buildSessionId
export SL_labid=my_lab_id
export NODE_OPTIONS="--require ./node_modules/slnodejs/lib/preload.js"
node ./server/app.js💡 Note: This method also works with TypeScript apps run via
ts-node, e.g.,ts-node ./server/app.ts. No special handling is needed beyond settingNODE_OPTIONScorrectly.
Wrapper Command (Using slnodejs run)
slnodejs run)This method wraps the application’s startup command using the SeaLights CLI runner. It gives you full control over parameters and visibility into agent behavior.
Generic Node.js App
npx slnodejs run --tokenfile ./sltoken.txt --buildsessionidfile buildSessionId --labid my_lab_id --workspacepath ./server --useinitialcolor true -- ./server/app.jsnpx slnodejs run --tokenfile .\sltoken.txt --buildsessionidfile buildSessionId --labid my_lab_id --workspacepath .\server --useinitialcolor true -- .\server\app.jsTypeScript App Using ts-node
ts-nodeSeaLights only supports ts-node apps when started with: node -r ts-node/register ./server/app.ts
Wrap this format with the agent:
npx slnodejs run --tokenfile ./sltoken.txt --buildsessionidfile buildSessionId --labid my_lab_id --workspacepath ./server --useinitialcolor true --useslnode2 -- -r ts-node/register ./server/app.tsnpx slnodejs run --tokenfile .\sltoken.txt --buildsessionidfile buildSessionId --labid my_lab_id --workspacepath .\server --useinitialcolor true --useslnode2 -- -r ts-node/register .\server\app.tsAdditional Notes
To verify the agent is running, you can run the following command:
ps -ef | grep slnodejsGet-WmiObject Win32_Process | Where-Object { $_.CommandLine -like "*slnodejs*" } | Select-Object CommandLine, ProcessIdWe recommend using the
--labidparameter (orSL_labidfor preload) to correlate your test and listener sessions. Iflabidis not set, the session ID will be used automatically.For full parameter details, see the Node.js Command Reference.
Last updated
Was this helpful?

