cover-child-process

    0.1.7 • Public • Published

    cover-child-process

    Build Status Coverage Status Dependency Status devDependency Status

    NPM module to collect coverage data from tests that need to spawn NodeJS child processes. Eg. end to end tests and/or tests on command line interfaces

    Implements spawn and exec functions that wrap a target NodeJS script that has already been instrumented for coverage data, collects the coverage data and merges it with the coverage data already collected in the parent process.

    Currently only supports files instrumented with Blanket. However, plugins for other similar instrumentation implementations can easily be created following the interface used for Blanket.

    Usage

    Install and save to your devDependencies

    npm install --save-dev cover-child-process
    

    Use as you would the standard child_process.exec and child_process.spawn methods.

    #exec

    var ChildProcess = require('cover-child-process').ChildProcess;
    var Blanket = require('cover-child-process').Blanket;
     
    // Use the constructor to tell the library how the source has been instrumented
    var childProcess = new ChildProcess(new Blanket());
     
    var child = childProcess.exec(
      'node ../lib-cov/cli.js init something', {
        cwd: '../fixtures/test-scenario'
      }, function (error, stdout, stderr) {
        // Test output, etc, then done
      }
    );

    NB. If the command does not begin with node then it will be passed directly to child_process without capturing coverage data

    #spawn

    var ChildProcess = require('cover-child-process').ChildProcess;
    var Blanket = require('cover-child-process').Blanket;
     
    // Use the constructor to tell the library how the source has been instrumented
    var childProcess = new ChildProcess(new Blanket());
     
    var server = childProcess.spawn(
      'node', [
        '../lib-cov/server.js',
        '8080'
      ], {
        env: process.env
      }
    );
     
    server.stdout.on('data', function (data) {
      // When server has started run tests, then kill the child process
      server.kill();
    });

    NB. If the supplied command is not node then it will be passed directly to child_process without capturing coverage data

    NNB. The spawned process must be killed with the default SIGTERM signal for the coverage data to be collected

    License

    Copyright © 2014 Peter Halliday
    Licensed under the MIT license.

    Donate Bitcoins

    17LtnRG4WxRLYBWzrBoEKP3F7fZx8vcAsK

    Install

    npm i cover-child-process

    DownloadsWeekly Downloads

    18

    Version

    0.1.7

    License

    MIT

    Last publish

    Collaborators

    • avatar