Collector Class
a mechanism to merge multiple coverage objects into one. Handles the use case of overlapping coverage information for the same files in multiple coverage objects and does not double-count in this situation. For example, if you pass the same coverage object multiple times, the final merged object will be no different that any of the objects passed in (except for execution counts).
The Collector
is built for scale to handle thousands of coverage objects.
By default, all processing is done in memory since the common use-case is of
one or a few coverage objects. You can work around memory
issues by passing in a Store
implementation that stores temporary computations
on disk (the tmp
store, for example).
The getFinalCoverage
method returns an object with merged coverage information
and is provided as a convenience for implementors working with coverage information
that can fit into memory. Reporters, in the interest of generality, should not use this method for
creating reports.
Usage
var collector = new require('istanbul').Collector();
files.forEach(function (f) {
//each coverage object can have overlapping information about multiple files
collector.add(JSON.parse(fs.readFileSync(f, 'utf8')));
});
collector.files().forEach(function(file) {
var fileCoverage = collector.fileCoverageFor(file);
console.log('Coverage for ' + file + ' is:' + JSON.stringify(fileCoverage));
});
// convenience method: do not use this when dealing with a large number of files
var finalCoverage = collector.getFinalCoverage();
Constructor
Collector
-
options
Parameters:
-
options
ObjectOptional. Configuration options.
-
store
Store- an implementation of
Store
to use for temporary calculations.
- an implementation of
-
Item Index
Methods
Methods
add
-
coverage
-
testName
adds a coverage object to the collector.
Parameters:
-
coverage
Objectthe coverage object.
-
testName
StringOptional. The name of the test used to produce the object. This is currently not used.
dispose
()
disposes this collector and reclaims temporary resources used in the
computation. Calls dispose()
on the underlying store.
fileCoverageFor
-
fileName
return file coverage information for a single file
Parameters:
-
fileName
Stringthe path for the file for which coverage information is required. Must be one of the values returned in the
files()
method.
Returns:
the coverage information for the specified file.
files
()
Array
returns a list of unique file paths for which coverage information has been added.
Returns:
an array of file paths for which coverage information is present.
getFinalCoverage
()
Object
returns file coverage information for all files. This has the same format as
any of the objects passed in to the add
method. The number of keys in this
object will be a superset of all keys found in the objects passed to add()
Returns:
the merged coverage information