Test Infrastructure and improvements

These changes add improvements to the tooling surrounding tests, including code coverage.