phl v1.0.1
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 testa 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 testyou can pass a list of Istanbul reporters that you'd like to run:
phl --reporter=lcov --reporter=text-lcov npm testIf 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 95This 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 reportTo 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=lcovIncluding 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