-
Notifications
You must be signed in to change notification settings - Fork 4.8k
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
Road to code coverage #960
Comments
@safern do we use Helix for official runs too? It would be nice if we could use helix for the official code coverage run(s). |
We also need to solve the early termination problem right? I see in the vstest issue they say it needs to be a DiagnosticCollector to avoid early termination. Re speed, I dont believe we often use branch coverage today . Is there a flag to only instrument for block coverage, would that help? |
No that issue doesn't affect us as we don't use vstest right now. |
There isn't such a flag yet. Fixing the above linked issue would be the ideal first step to increase perf. The current instrumentation logic is suboptimal. |
@danmosemsft, what do you mean by this? Where do we "use" line/block coverage but don't branch coverage? I personally look at both. |
If it made a significant difference in perf it might mean we could afford to get at least some coverage data automatically in CI rather than none. If we can get both great. |
Ok |
I strongly recommend not going down this path. Branch and/or sequence point coverage is an extremely valuable metric for the primary value-add of code coverage (guided code reviews).
It will not have a substantial impact on performance. Your biggest performance gains will come from |
I recommend starting with Windows Debug and observing stable uploads for at least a week. After that, we can add one additional Debug upload (Linux Debug or Mac Debug), and let it stablize for at least a week. Our uploads will stress the report merge process used by codecov on multiple fronts:
|
Yes, we do use Helix for official runs. Yes we should figure out how to hook up code coverage with helix 😄 |
The codecov dotnet tool is now available: https://www.nuget.org/packages/Codecov.Tool/ Remaining external blocker is the release of an updated coverlet.console package. |
Updated issue with current status. |
@ViktorHofer new package with your fixes https://www.nuget.org/packages/coverlet.console/ |
Status: dotnet test 3.x soon supports coverlet inbox which would help a lot here. Maybe we should give https://github.com/dotnet/corefx/issues/34338 another try. |
@ViktorHofer we have also a nightly build https://www.myget.org/feed/coverlet-dev/package/nuget/coverlet.collector
|
Merge from dotnet/runtime
Due to lack of recent activity, this issue has been marked as a candidate for backlog cleanup. It will be closed if no further activity occurs within 14 more days. Any new comment (by anyone, not necessarily the author) will undo this process. This process is part of our issue cleanup automation. |
The list of remaining work necessary for automated code coverage:
Full code coverage
Currently cc for System.Private.CoreLib is broken. These steps are necessary to fix that:
Make code coverage faster (optional)
Integrate codecov into corefx
Integrate cc and codecov into continuous PRs
cc @danmosemsft @safern @ericstj @stephentoub
The text was updated successfully, but these errors were encountered: