js-zrim-test-bootstrap

0.4.0 • Public • Published

JavaScript Zrim Test Bootstrap

Introduction

The goal of this project is to provide utilities to make test easier.

Test Launcher

The TestLauncher class use those environment variable to have the default behaviour:

  • ZE_DISABLE_CODE_COVERAGE : Disable the code coverage (set the variable to 1)

Example:

const TestLauncher = require('js-zrim-test-bootstrap').TestLauncher;

The test launcher is able to enable the coverage for your unit, integration and system test. This features is not available if you start the application in a different process or use cluster process.

Configuration

By default the test launcher will use the configuration given to the configure function. Some configuration can be override by some environment variables.

Builders

The module export a builder which help you generate the configuration. The test launcher can be configured without the builder.

Examples

Unit Test

In this example, we use the configuration builder to help us create the configuration with a nicer look.

And in case of success we start the test. The coverage and test result will automatically be saved.

const TestLauncher = require('js-zrim-test-bootstrap').TestLauncher,
  TestLauncherConfigBuilder = require('js-zrim-test-bootstrap').TestLauncherConfigBuilder,
  util = require('util');

const testLauncher = new TestLauncher(),
  configBuilder = new TestLauncherConfigBuilder();

configBuilder
  .projectConfiguration()
  .rootDirectoryPath(__dirname + '/../..')
  .parentBuilder()
  .testConfiguration()
  .unitTest()
  .parentBuilder()
  .withPreLaunchStep(function (context) {
    return new Promise(resolve => {
      // So something before istanbul is launch
      resolve();
    });
  })
  .withPreTestLaunchStep(function (context) {
      return new Promise(resolve => {
        // So something before jasmine is launch and after istanbul is started
        resolve();
      });
    })
  .withCleanUpStep(function (context) {
    return new Promise(resolve => {
      // Do some cleanup
      resolve();
    });
  });

testLauncher.configure(configBuilder.build())
  .then(() => testLauncher.run())
  .catch(error => {
    process.stderr.write(`Something goes wrong: ${error.message}\n${error.stack}`);
  });

The reports will automatically created to ROOT_PROJECT/reports/test/unit

Package Sidebar

Install

npm i js-zrim-test-bootstrap

Weekly Downloads

5

Version

0.4.0

License

CECILL-2.1

Unpacked Size

142 kB

Total Files

16

Last publish

Collaborators

  • yogo95