File: /var/www/zaklada/html/node_modules/cover/README.markdown
## Cover - Native JavaScript Code Coverage
Cover gives you the ability to collect code-coverage for your projects, using
whatever unit test framework you want, and all using native JavaScript. It also
comes bundled with pre-defined reporters, such as HTML and CLI output, so you
can easily see where you are missing coverage.
### Standing on the shoulders of giants
I would be amiss to not mention that the hard work in this library was
by [Chris Dickinson] with his work on [runforcover]. In reality, Cover is
a fork of runforcover, fixing some of the issues and making it more usable.
The original version of Cover used [substack]'s excellent [bunker] library,
but it has recently been moved to using [esprima] and a new code homegrown
instrumentation library.
### Known Issues
There are currently a few known issues that I am working on:
1. If you use 'global' to pass state between modules (mocha does this, for
example), then you might run into issues. Cover runs modules as if they
were executed with `NODE_MODULE_CONTEXTS` was set.
2. If you start new node processes, Cover won't work with those, as
it instruments by hooking into `require`.
### Usage
Using Cover is simple. Simply install it globally:
> npm install cover -g
And then, run it
> cover run mytests.js
Want to pass some arguments to your test? No problem (note the `--`):
> cover run mytests.js -- --arg1 --arg2=foo
Once you've run your tests, it will create a directory with coverage data in it.
If you want to see the coverage report, simply run:
> cover report
which will output the report to the CLI. Want to get an HTML report?
> cover report html
This will create a `cover_html` directory with the coverage information.
### Configuration
Cover reads from a `.coverrc` file in your project directory, and it comes
with sensible defaults. Here are the defaults that it uses:
{
"formatter": "cli",
"ignore": ".coverignore",
"prefix": "coveragefile_", // Prefix for coverage data files
"dataDirectory": ".coverage_data", // Directory to put coverage files in
"debugDirectory": ".coverage_debug", // Directory to put instrumented files in
"modules": false, // Whether or not to cover node_modules directory
// Formatter-specific info
"html" : {
"directory": "cover_html", // Directory to write HTML files too
"generateIndex": true // Whether to generate an index.html file
},
"json": {
}
}
You can also specify which files to ignore using .coverignore. Here is the one used
for Cover itself:
node_modules
You can specify both files and directories in the `.coverignore` file.
If you have a customer path for your configuration files, you can specify this
on the command line:
> cover --config path/to/config --ignore path/to/ignore run myfile.js
[esprima]: http://www.esprima.org
[substack]: https://github.com/substack
[bunker]: https://github.com/substack/node-bunker
[Chris Dickinson]: https://github.com/chrisdickinson
[runforcover]: https://github.com/chrisdickinson/node-runforcover