Continuous integration usually run JavaScript tests in browserless-environments.
Uh, platforms like Node can easily simulate the browser, despite being 'browserless'.
I run mine in a PhantomJS environment, which works just fine for headless browser testing.
While I agree with downstream comments that you can run tests headless or browserless, arguably, you're not really testing the user experience until you execute it the way that the user will execute it. Perhaps this is a case of perfect vs. good enough.