Travis CI and many others support this out of box. Most common to do this and probably recommended in most cases. However, if you need to do it locally for some reason, here are some local scripts.
Really easy to setup.
Don’t have to distribute new CI credentials.
Easiest way to provide DB, etc.
Slow to execute.
Doesn’t ensure tests get executed.
Parallelized Local Script
Not always safe.
Solve with Docker? Complicated.