ember-cli-code-coverage icon indicating copy to clipboard operation
ember-cli-code-coverage copied to clipboard

Ability to collect and report coverage in development

Open krasnoukhov opened this issue 1 year ago • 0 comments

The use case I had for this is making integration specs (which are using Capybara) collect and report frontend app coverage.

With the current addon approach, it's totally possible to instrument and collect code coverage when running ember server in dev mode (after #413 is merged).

However sendCoverage cannot be imported because it's part of addon-test-support. I'd like to propose for that to be moved to addon so it can be imported. And then users will be able to report coverage no matter the test/dev environment. We're doing it like this so it does not pull dependency into prod:

import { importSync, isDevelopingApp, macroCondition } from '@embroider/macros';

if (macroCondition(isDevelopingApp())) {
  let { forceModulesToBeLoaded, sendCoverage } = importSync('ember-cli-code-coverage');

  window.sendCoverage = function () {
    forceModulesToBeLoaded();
    sendCoverage();
  };
}

And then window.sendCoverage() is called on RSpec side. Thoughts?

krasnoukhov avatar Apr 12 '24 09:04 krasnoukhov