diff --git a/.travis.yml b/.travis.yml
index 6fd6331..fb66899 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -2,5 +2,8 @@ language: node_js
# default is the very old 0.10.48; match local version instead
node_js: '8.9'
-script: npm test
-after_script: npm run test:pub
+script: npm test -- --coverage
+after_script:
+ # upload coverage reports to CodeCov
+ - bash <(curl -s https://codecov.io/bash)
+ - npm run test:pub
diff --git a/README.md b/README.md
index d1d96b1..e7e73cf 100644
--- a/README.md
+++ b/README.md
@@ -12,6 +12,7 @@
[![typings](https://img.shields.io/npm/types/mst-persist.svg)](https://github.com/agilgur5/mst-persist/blob/master/src/index.ts)
[![build status](https://img.shields.io/travis/agilgur5/mst-persist/master.svg)](https://travis-ci.org/agilgur5/mst-persist)
+[![code coverage](https://img.shields.io/codecov/c/gh/agilgur5/mst-persist/master.svg)](https://codecov.io/gh/agilgur5/mst-persist)
[![NPM](https://nodei.co/npm/mst-persist.png?downloads=true&downloadRank=true&stars=true)](https://npmjs.org/package/mst-persist)