We had set up unit tests on the webapp generator using mocha and chai, as I had blogged before.
But we also need to get coverage reports for each code commit and the overall state of the repo.
Since it is hosted on Github, Travis comes to our rescue. As you can see from our .travis.yml file, we already had Travis running to check for builds, and deploying to heroku.
Now to enable Codecov, simply go to http://codecov.io and enable your repository (You have to login with Github so see your Github repos) .
Once you do it, your dashboard should be visible like this https://codecov.io/github/fossasia/open-event-webapp
We use istanbul to get codecoverage. To try it out just use
istanbul cover _mocha
On the root of your project (where the /test/ folder is ) . That should generate a folder called coverage or lcov. Codecov can read lcov reports. They have provided a bash file which can be run to automatically upload coverage reports. You can run it like this –
bash <(curl -s https://codecov.io/bash)
Now go back to your codecov dashboard, and your coverage report should show up.
If all is well, we can integrate this with travis so that it happens on every code push. Add this to your travis.yml file.
script: - istanbul cover _mocha after_success: - bash <(curl -s https://codecov.io/bash)
This will ensure that on each push, we run coverage first. And if it is successful, we push the result to codecov.
We can see coverage file by file like this
And we can see coverage line by line in a file like this