make local testing better
diff --git a/lib/server/sse_handler.dart b/lib/server/sse_handler.dart
index 9c1f57f..7a5ac0e 100644
--- a/lib/server/sse_handler.dart
+++ b/lib/server/sse_handler.dart
@@ -96,7 +96,7 @@
   }
 
   shelf.Response _createSseConnection(shelf.Request req, String path) {
-    if (_isClosed) return shelf.Response.notFound('');
+    if (_isClosed) return null;
     req.hijack((channel) async {
       var sink = utf8.encoder.startChunkedConversion(channel.sink);
       sink.add(_sseHeaders(req.headers['origin']));
@@ -115,7 +115,7 @@
 
       _connectionController.add(connection);
     });
-    return shelf.Response.notFound('');
+    return null;
   }
 
   String _getOriginalPath(shelf.Request req) => req.requestedUri.path;
diff --git a/test/sse_test.dart b/test/sse_test.dart
index 63c4b8e..4e1f943 100644
--- a/test/sse_test.dart
+++ b/test/sse_test.dart
@@ -17,6 +17,21 @@
   HttpServer server;
   WebDriver webdriver;
   SseHandler handler;
+  Process chromeDriver;
+
+  setUpAll(() async {
+    try {
+      chromeDriver = await Process.start(
+          'chromedriver', ['--port=4444', '--url-base=wd/hub']);
+    } catch (e) {
+      throw StateError(
+          'Could not start ChromeDriver. Is it installed?\nError: $e');
+    }
+  });
+
+  tearDownAll(() {
+    chromeDriver.kill();
+  });
 
   setUp(() async {
     handler = SseHandler(Uri.parse('/test'));
diff --git a/tool/travis.sh b/tool/travis.sh
index b9c9c9f..9ebd3d4 100755
--- a/tool/travis.sh
+++ b/tool/travis.sh
@@ -23,10 +23,6 @@
   STATUS=$ANALYSIS_STATUS
 fi
 
-# Start chromedriver.
-chromedriver --port=4444 --url-base=wd/hub &
-PIDC=$!
-
 # Run tests.
 pub run test -r expanded -p vm -j 1
 TEST_STATUS=$?