Index: lib/src/runner/vm/isolate_listener.dart |
diff --git a/lib/src/runner/vm/isolate_listener.dart b/lib/src/runner/vm/isolate_listener.dart |
index 493ade4f2df027b5190f2eb91122f6d0595b7bdd..23f7b7350b4a374cd23d04a6f4a0e00eda906b3d 100644 |
--- a/lib/src/runner/vm/isolate_listener.dart |
+++ b/lib/src/runner/vm/isolate_listener.dart |
@@ -117,26 +117,34 @@ class IsolateListener { |
"type": "group", |
"name": group.name, |
"metadata": group.metadata.serialize(), |
+ "setUpAll": _serializeTest(group.setUpAll), |
+ "tearDownAll": _serializeTest(group.tearDownAll), |
"entries": group.entries.map((entry) { |
- if (entry is Group) return _serializeGroup(entry); |
- |
- var test = entry as Test; |
- var receivePort = new ReceivePort(); |
- receivePort.listen((message) { |
- assert(message['command'] == 'run'); |
- _runTest(test, message['reply']); |
- }); |
- |
- return { |
- "type": "test", |
- "name": test.name, |
- "metadata": test.metadata.serialize(), |
- "sendPort": receivePort.sendPort |
- }; |
+ return entry is Group ? _serializeGroup(entry) : _serializeTest(entry); |
}).toList() |
}; |
} |
+ /// Serializes [test] into a JSON-safe map. |
+ /// |
+ /// Returns `null` if [test] is `null`. |
+ Map _serializeTest(Test test) { |
+ if (test == null) return null; |
+ |
+ var receivePort = new ReceivePort(); |
+ receivePort.listen((message) { |
+ assert(message['command'] == 'run'); |
+ _runTest(test, message['reply']); |
+ }); |
+ |
+ return { |
+ "type": "test", |
+ "name": test.name, |
+ "metadata": test.metadata.serialize(), |
+ "sendPort": receivePort.sendPort |
+ }; |
+ } |
+ |
/// Runs [test] and sends the results across [sendPort]. |
void _runTest(Test test, SendPort sendPort) { |
var liveTest = test.load(_suite); |