coverage (used by pytest-cov) needs the tests folder to contain an __init__.py before it will collect any data.
I added __init__.py to the tests folder and then coverage collected the data as expected.
Refer to http://thomas-cokelaer.info/blog/2017/01/pytest-cov-collects-no-data-on-travis/