phl

1.0.1 • Public • Published

phl

This is a slimmer es6 version and fork of nyc

Supporting currently Mac OSX only at the time, if you want better support use nyc.

phl npm test

a code coverage tool built on istanbul that works for applications that spawn subprocesses.

Instrumenting Your Code

Simply run your tests with phl, and it will collect coverage information for each process and store it in phl_output.

phl npm test

you can pass a list of Istanbul reporters that you'd like to run:

phl --reporter=lcov --reporter=text-lcov npm test

If you're so inclined, you can simply add phl to the test stanza in your package.json:

{
  "script": {
    "test": "phl tap ./test/*.js"
  }
}

Checking Coverage

phl exposes istanbul's check-coverage tool. After running your tests with phl, simply run:

phl check-coverage --lines 95 --functions 95 --branches 95

This feature makes it easy to fail your tests if coverage drops below a given threshold.

Running Reports

Once you've run your tests with phl, simply run:

phl report

To view your coverage report:

--------------------|-----------|-----------|-----------|-----------|
File                |   % Stmts |% Branches |   % Funcs |   % Lines |
--------------------|-----------|-----------|-----------|-----------|
   ./               |     85.96 |        50 |        75 |     92.31 |
      index.js      |     85.96 |        50 |        75 |     92.31 |
   ./test/          |     98.08 |        50 |        95 |     98.04 |
      phl-test.js   |     98.08 |        50 |        95 |     98.04 |
   ./test/fixtures/ |       100 |       100 |       100 |       100 |
      sigint.js     |       100 |       100 |       100 |       100 |
      sigterm.js    |       100 |       100 |       100 |       100 |
--------------------|-----------|-----------|-----------|-----------|
All files           |     91.89 |        50 |     86.11 |     95.24 |
--------------------|-----------|-----------|-----------|-----------|

you can use any reporters that are supported by istanbul:

phl report --reporter=lcov

Including and Excluding Files

By default phl does not instrument files in node_modules, or test for coverage. You can override this setting in your package.json, by adding the following configuration:

{"config": {
  "phl": {
    "exclude": [
      "node_modules/"
    ]
  }
}}

If you need coverage for files/directories inside node_modules you can include them like so:

{"config": {
  "phl": {
    "include": [
      "node_modules/utils"
    ]
  }
}}

For a better illustration the following:

{"config": {
  "phl": {
    "exclude": [
      "node_modules/"
    ],
    "include": [
      "node_modules/utils"
    ]
  }
}}

excludes all files inside of node_modules directory other than the utils directory

Package Sidebar

Install

npm i phl

Weekly Downloads

260

Version

1.0.1

License

ISC

Last publish

Collaborators

  • davidchase