-
-
Notifications
You must be signed in to change notification settings - Fork 33.8k
doc: instructions for generating coverage reports #15190
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
refack
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM % a wording suggestion & Windows fix
BUILDING.md
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Windows (i.e. vcbuild) does not have a counterpart, so you can remove this section
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for your review @refack I will update the doc.
BUILDING.md
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Suggestion:
... (if you
only want to generate a coverage report for the JavaScript tests then you do
not need to run the first command, i.e. `configure`).
|
@ssbrewster Thanks for this. |
BUILDING.md
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hey, thanks for writing it up!
From my limited experience with make coverage, it can have some quite surprising behavior. I'd suggest noting the following caveats in this section of the docs. Whether to note some or all of them is up to you!
It doesn't work on macOS (I think? /cc @Trott)It does!- The
lib/directory is overwritten duringmake coverage, and the original copied tolib_/. I'd always suggest checking in thelib/directory to Git before running coverage reports in case something awry happens. See.Lines 151 to 152 in 86e7c61
if [ -d lib_ ]; then $(RM) -r lib; mv lib_ lib; fi mv lib lib_ - The initial
make coveragerun downloads some tools to the project root folder that are not.gitignored, which can be a nuisance. - All effects of
make coverage(lib/renaming, downloaded tools, raw and processed output) can be reverted withmake coverage-clean make coverageboth builds and runs (i.e.make+make test); no way to split them properly unfortunately (one couldcoverage-buildfirst, but whencoverage-testing the JS files will get instrumented again, and thenodebinary rebuilt based on the instrumented JS files).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for your review @TimothyGu. I will document make coverage-clean. I'm also wondering if we should handle setting clean as an option on the command line i.e. make coverage --clean=true make coverage CLEAN=true so that the coverage reports can be generated and the clean-up done in one run.
I think this would be good but coverage-clean also removes the coverage/ dir with the reports on so if passing the option --clean CLEAN=true then we would want to leave the coverage/ dir intact. I don't think I see this as an issue as long as that dir is added to .gitignore. What do you think?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Also, I just noticed that on the install of istanbul-merge and nyc, npm generates a package-lock.json which isn't removed by make coverage-clean.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm also wondering if we should handle setting clean as an option on the command line i.e.
make coverage --clean=true
That would be nice, but GNU Make doesn't support doing that AFAIK. But GNU Make does support environment variables so you can do make coverage CLEAN=true. PR welcome!
Also, I just noticed that on the install of istanbul-merge and nyc, npm generates a
package-lock.jsonwhich isn't removed bymake coverage-clean.
Good catch! You can submit another pull request to change that if you'd like to, or if not please file an issue about it so we don't forget :)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Great I will raise two other PRs and yes you're right my syntax was wrong on make coverage CLEAN=true :)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'll wait to this to land before submitting the PR for handling passing clean as an option so that I can update the docs for that.
Seems to work fine for me on macOS so no need for that caveat as far as I can tell. |
040ec16 to
75d70bc
Compare
Add instructions for generating code coverage reports to BUILDING.md
75d70bc to
0408aff
Compare
mhdawson
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
Add instructions for generating code coverage reports to BUILDING.md PR-URL: #15190 Reviewed-By: Timothy Gu <timothygu99@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com> Reviewed-By: James M Snell <jasnell@gmail.com>
|
Landed in 6e27fd7 |
Add instructions for generating code coverage reports to BUILDING.md PR-URL: #15190 Reviewed-By: Timothy Gu <timothygu99@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com> Reviewed-By: James M Snell <jasnell@gmail.com>
Add instructions for generating code coverage reports to BUILDING.md PR-URL: #15190 Reviewed-By: Timothy Gu <timothygu99@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com> Reviewed-By: James M Snell <jasnell@gmail.com>
Add instructions for generating code coverage reports to BUILDING.md PR-URL: #15190 Reviewed-By: Timothy Gu <timothygu99@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com> Reviewed-By: James M Snell <jasnell@gmail.com>
Add instructions for generating code coverage reports to BUILDING.md PR-URL: nodejs#15190 Reviewed-By: Timothy Gu <timothygu99@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com> Reviewed-By: James M Snell <jasnell@gmail.com>
Add instructions for generating code coverage reports to BUILDING.md PR-URL: #15190 Reviewed-By: Timothy Gu <timothygu99@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com> Reviewed-By: James M Snell <jasnell@gmail.com>
Add instructions for generating code coverage reports to BUILDING.md PR-URL: #15190 Reviewed-By: Timothy Gu <timothygu99@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com> Reviewed-By: James M Snell <jasnell@gmail.com>
This PR adds instructions for generating coverage reports. I only added the instructions to BUILDING.md but not CONTRIBUTING.md because that defers to BUILDING.md in the Test section
(See the BUILDING.md for more details.), but I'm happy to add the instructions to that document too if people think they're needed there.Checklist
make -j4 testAffected core subsystem(s)
doc