A code coverage tool for Ember.js applications using Istanbul to instrument and report test coverage.
ember-cli-code-coverage is an Ember CLI addon that provides code coverage analysis for Ember.js applications using Istanbul. It instruments source code during the build to track which lines, branches, and functions are executed during tests, generating reports like LCOV and HTML to visualize coverage gaps. This helps developers identify untested code and improve test quality.
Ember.js developers and teams who write tests and want to measure how much of their application code is covered by those tests, particularly those using Ember CLI for build and test tooling.
It offers a native Ember CLI integration with Istanbul, supporting various project types (apps, addons, engines), parallel test runs, and modern tooling like TypeScript and Embroider, making it the go-to solution for coverage in the Ember ecosystem.
Code coverage for ember apps using Istanbul
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Instruments code during the build process using Babel plugins, making coverage collection a native part of the Ember workflow without disrupting test runs.
Supports custom reporters, file exclusions, and parallel test merging via config files, allowing teams to tailor coverage to their needs.
Works with classic Ember apps, Embroider apps, in-repo addons, standalone addons, and engines, covering the entire Ember ecosystem.
Integrates with TypeScript and ember-template-imports through documented setup steps, ensuring coverage for contemporary Ember development.
Requires installing Babel plugins separately for each project type (e.g., apps, addons, engines) and configuring environment variables, which can be error-prone and time-consuming.
Has strict version requirements for Testem, Mirage, and Pretender, as noted in the README, potentially causing conflicts or upgrade hurdles in existing projects.
Requires setting up passthroughs for AJAX requests in tests when using Mirage or Pretender, adding overhead and configuration steps that are easy to overlook.
The need for manual configuration files and hooks like modifyAssetLocation means it's not plug-and-play, especially for projects with unconventional structures.