Coverage is incomplete due to some tests running in sub-processes

Our coverage is actually better than what is reported by the coverage plug-in - the issue is because e.g. sphinx is being run in a subprocess, the coverage isn't being reported for a lot of the sphinx code. It would be nice to find a way to run sphinx without instantiating a subprocess in order to better see which code we cover.