Historically, We had been tackling a CI problem - Tests taking too long to finish and timing out. We had mitigated this by eliminating redundant tests. and are introducing parallel jobs feature of travis (https://docs.travis-ci.com/user/speeding-up-the-build/#parallelizing-your-builds-across-virtual-machines) to have both unit and integration tests run in parallel. We realized that the unit-tests themselves needs to be refactored holistically. We would need to do a better job in standardizing the test setup utility functions and abstractions. Also, some tests have huge setup costs but they don't need the entire setup. This ticket is for tracking this effort.