Index: lib/src/runner/browser/server.dart |
diff --git a/lib/src/runner/browser/server.dart b/lib/src/runner/browser/server.dart |
index fcfea2fdb2b846b237d60e591365b8be77954b90..6c1d52d0e038d8a64c85af0e25ba6ff3f16441a2 100644 |
--- a/lib/src/runner/browser/server.dart |
+++ b/lib/src/runner/browser/server.dart |
@@ -250,7 +250,15 @@ void main() { |
return _browserManagerFor(browser).then((browserManager) { |
if (_closed) return null; |
return browserManager.loadSuite(path, suiteUrl); |
- }).then((suite) => suite.change(platform: browser.name)); |
+ }).then((suite) { |
+ if (_closed) return null; |
+ if (suite != null) return suite.change(platform: browser.name); |
+ |
+ // If the browser manager fails to load a suite and the server isn't |
+ // closed, it's probably because the browser failed. We emit the failure |
+ // here to ensure that it gets surfaced. |
+ return _browsers[browser].onExit; |
+ }); |
}); |
} |