-
-
Notifications
You must be signed in to change notification settings - Fork 5.5k
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
Code coverage service for shields #1584
Comments
Yes, I'd love it! I haven't used Codecov, though with IcedFrisby I've used Coveralls and it works well. A scoreboard might be a big motivator – both to get coverage up in general, and to complete the rewrite (#1358). Once we choose, we might need to ask Thaddée to set it up for us. I don't have "owner" access to the Shields organization so there are certain apps I'm not able to set up. |
👍 Definitely agree it would be useful to have coverage checked on PR's |
I think for something like coveralls it is a problem that we don't run all of our tests each merge/PR. i.e: unless we prefix every PR with "[amo, ansible, appveyor, bitbucket....." or just run all the service tests on every PR (which would be slow among other things ), I think something like coveralls will just generate a meaningless number that goes up and down, rather than telling us anything useful. Maybe codecov is more configurable in that respect. If not, maybe we could set up a config that defines a subset of the codebase where we are measuring coverage which excludes the services? |
Hmm, that's a great point!
This seems like a good way to go. When you're writing tests for a service, it would also be good to see coverage of the service code. When I look at https://coveralls.io/github/IcedFrisby/IcedFrisby, I see it does a nice job of showing coverage across different files and/or parts of the tree. Though it wouldn't be as useful for the kind of "single number" coverage we'd want to track over time for master, it might be useful enough. Another I did set up some coverage tooling using istanbul/nyc which similarly breaks out the core code from the service tests. I'm not sure if it's working right now, though. I haven't run it in a while. |
@paulmelnikow nyc configuration in shields is working great for me :-) |
Agreed. The right solution for total repo coverage would be to calculate based off a daily build which runs the full service test suite. Combining that with @paulmelnikow 's idea of using 2 services, we could use coveralls to measure the whole repo coverage based on a daily build and then use codecov on PRs. I think that would work because codecov can provide a file-level coverage report as a PR comment: Although the top-level number/difference from parent would fluctuate, once we're splitting the service code out of I'm not sure we can sensibly attempt to measure the coverage of |
After a little nudge via #2314, Coveralls is now running daily on master, via another repo with Circle. It's a full test run, including all the unit tests and service tests. https://coveralls.io/builds/20137843 The reason I chose Circle is because #979 was a long-standing issue solved by Circle, and I didn't want to solve that problem again. |
- Stop running daily service tests in the main repo (since they're now handled [over here](https://github.com/badges/daily-tests) - Add coverage and separate daily tests badges with links to coveralls - Update our coverage ignores - Move scripts, which do not need coverage, into `scripts/` - Split out coverage test for npm package - Remove spurious env var Ref: #1584 #2314
Coveralls is working well. Does it still seem helpful to set up Codecov for PRs? |
If we want to pick that up let's open a new issue. |
What do you think about adding a code coverage service (like https://codecov.io/#features or https://coveralls.io/features, an example results https://codecov.io/gh/babel/babel) to this project? I know that our service tests are not 100% reliable, but in my opinion such service would be helpful in finding untested parts of the code in PR. What are your experiences with this kind of services?
The text was updated successfully, but these errors were encountered: