In parallel with T71685: Generate PHP code coverage reports for extensions.
Description
Details
| Subject | Author | Repo | Branch | Lines +/- | |
|---|---|---|---|---|---|
| build: Add "npm run qunit-coverage" to generate coverage reports | Esanders | mediawiki/core | master | +828 -4 |
| Status | Subtype | Assigned | Task | ||
|---|---|---|---|---|---|
| Resolved | • Jhernandez | T104318 [GOAL]: Testing practices & expose test coverage | |||
| Resolved | None | T100294 [EPIC] Encourage developers to increase code coverage | |||
| Open | None | T184657 Generate JavaScript code coverage reports for extensions | |||
| Declined | None | T116808 Provide a CI job to generate JS code coverage reports for extensions by using karma-coverage instead of just karma |
Event Timeline
@Krinkle implemented this in 0e552715e52c4e757712edb201f05ef5e5eafff9 in the examples extension. It will most likely require re-writing some code to fit in the nodejs only qunit model as well as some CI improvements so it gets displayed in a nice form on doc.wm.o.
We did it for PHPUnit tests as reflected on https://doc.wikimedia.org/cover-extensions/ .
https://gerrit.wikimedia.org/r/c/mediawiki/extensions/examples/+/482488 has an example of generate a coverage report based on QUnit ran through NodeJS. I don't think we ever pushed for that. Instead unit tests are run from Special:JavaScriptTest using Karma, it might be possible to generate a coverage report this way, then with the Resource Loader it is unclear how it can be achieved.
This task was part of a program we had ten years ago (T100294) to enhance testing practices at the Wikimedia Foundation. It has been actives for some years and eventually we have reached a good enough state.
I am closing this one to reflect that even if good to have, it is not a priority of anyone. That can always be revisited one day.
Now that ResourceLoader has sourcemaps, and Chrome V8 reports coverage, this should be feasible.
Change #1310585 had a related patch set uploaded (by Esanders; author: Esanders):
[mediawiki/core@master] Generate coverage reports using Chrome V8 and source mapping
Change #1310585 merged by jenkins-bot:
[mediawiki/core@master] build: Add "npm run qunit-coverage" to generate coverage reports
The next step would be to start publishing some of these reports at https://doc.wikimedia.org