It has been just over a year since the Node.js community started capturing and publishing code coverage data on a nightly basis.¬†I thought it would be a good time to take a look at the progress on improving coverage so far.¬† If you want more background on the initial code coverage implementation you can go back to this earlier blog¬†Code coverage for Node.js drives improvements.
To start I summarized the data that has been posted to coverage.nodejs.org¬†over the last year:
This improvement is due to the hard work to a wide range of community members who have chipped in to add and improve tests.¬† It is a good example of where small to medium contributions by a wide range of people can add up to good progress.¬† A¬†big thank you¬†to everybody who has helped out !
Along the way support for generating the coverage results on OSX was added through pull request 16163¬†by Evan Lucas.¬† That should make it easier for developers using Mac machines to check out the effect of their changes on code coverage.¬† We now have linux and OSX support.¬† It would be great to have Windows as well,¬†but it is good to make progress one step at a time.
You may have noticed that it was not a smooth path from where we started to were we are now.¬† There are a few major dips along the way.
The drop around the start of April was due to the addition of experimental support for N-API.¬† We expected this to happen in advance and planned to work on the testing as outlined in this issue. In just over a month we had addressed the gap in testing and coverage was higher than before.¬† The nightly coverage reports helped focus this effort and confirm when we had achieved an acceptable level.
Similarly,¬†¬†a drop mid July on the C++ side was most likely related to the addition of http2 and we recovered relatively quickly.
The drop around Oct 10 was due to a change that caused the Native addon tests to no longer run as part of the standard Node.js testing.¬† This was spotted due to the drop in coverage¬†illustrating another benefit of¬†the nightly code coverage runs to the community. It makes sure that we catch regressions in the test suite itself !
Looking at the¬†history for the¬†last year, the key observation is that despite some ups and downs our general trend is upward and we continue to make progress¬†in improving our overall coverage.¬† I look for to further progress overs the next year.
I’m happy to have been able to work with the community on this front.¬†¬†If you‚Äôd like to read more about some of¬† IBM‚Äôs other work on Node.js both internally and within the Node.js community check out our¬†Node.js developer center.