After 4 days of research, I've finally built a testing framework I like. It uses protractor/webdriver do run tests in sequence and will stop on failed tests. I have capabilities to take screen shots on failres as well as log the failure. Niether of which I'm doing right now. For now, having the runner stop and letting me inspect the test will suffice. Oh yeah, forgot to mention the framework uses qunit instead of jasmine. This choice is due to the fact that using protractor/jasmine as intended relies on sending data back from the test context 'over the wire' back to the test runner and performing tests against this returned data. The problem was that the over the wire data was too simple. It worked by basically eval shit in the client context and sending back string data to the runner. The massive downside to this is I loose the ability to do anything useful in the client context. Things like controllers wouldn't work in this framework because I have no access to client objects in the runner context, where jasmine exists. For example, there was no way for me to use Templar() to get a controller and test stuff. The current framework of running the tests in the client context make much more sense IMO. We avoid all of the headache of all the over the wire shit and really don't loose any of the power of protractor as a test runner.