A JavaScript code coverage tool that computes statement, line, function, and branch coverage with module loader hooks.
Istanbul is a JavaScript code coverage tool that computes statement, line, function, and branch coverage by instrumenting JavaScript code. It solves the problem of measuring test effectiveness across different environments, including unit tests, server-side functional tests, and browser tests, helping developers identify untested code areas.
JavaScript developers and teams who need to track code coverage for their projects, especially those running tests in node.js or browser environments and requiring detailed coverage metrics.
Developers choose Istanbul because it is a comprehensive, all-JavaScript coverage tool with module loader hooks for transparent instrumentation, support for multiple report formats, and scalability for large projects, making it a versatile choice for diverse testing scenarios.
Yet another JS code coverage tool that computes statement, line, function and branch coverage with module loader hooks to transparently add coverage when running tests. Supports all JS coverage use cases including unit tests, server side functional tests and browser tests. Built for scale.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Tracks statement, line, function, and branch coverage, providing detailed insights into test effectiveness across various environments, as emphasized in the features.
Uses module loader hooks to instrument code on the fly without requiring test runner cooperation, making it easy to add coverage to node unit tests transparently.
Generates reports in HTML, LCOV, Cobertura, and other formats, catering to different needs such as CI pipelines or local analysis, as highlighted in the command-line tools.
Works for server-side (node.js) unit tests, browser tests via instrumentation, and as middleware for server-side coverage, supporting diverse testing scenarios.
The repository has been archived for 7 years with no updates, meaning no bug fixes, security patches, or support for modern JavaScript ecosystems, as stated in the archive notice.
Requires manual referencing of JS files instead of .cmd wrappers on Windows, adding setup complexity and potential errors, as detailed in the 'Usage on Windows' section.
Instrumenting code introduces runtime overhead, which can slow down test execution, a common trade-off that might affect large-scale or performance-sensitive projects.