@@ -23,8 +23,8 @@ void main() {
2323 {"missing": "entry"}
2424 {"other": true}''' ;
2525 file.writeAsStringSync (output);
26- final Map < int , TestSpecs > result = generateMetrics (file);
27- expect (result, isEmpty);
26+ final TestFileReporterResults result = TestFileReporterResults . fromFile (file);
27+ expect (result.allTestSpecs , isEmpty);
2828 });
2929
3030 test ('have metrics' , () async {
@@ -47,7 +47,7 @@ void main() {
4747 {"group":{"id":7,"suiteID":1,"parentID":2,"name":"ProjectValidatorTask","metadata":{"skip":false,"skipReason":null},"testCount":1,"line":82,"column":3,"url":"file:///file"},"type":"group","time":5000}
4848 {"success":true,"type":"done","time":4870}''' ;
4949 file.writeAsStringSync (output);
50- final Map <int , TestSpecs > result = generateMetrics (file);
50+ final Map <int , TestSpecs > result = TestFileReporterResults . fromFile (file).allTestSpecs ;
5151 expect (result, contains (0 ));
5252 expect (result, contains (1 ));
5353 expect (result[0 ]! .path, 'test/general.shard/project_validator_result_test.dart' );
@@ -62,8 +62,37 @@ void main() {
6262 {"suite":{"id":1,"platform":"vm","path":"other_path"},"type":"suite","time":1000}
6363 {"group":{"id":7,"suiteID":1,"parentID":2,"name":"name","metadata":{"skip":false,"skipReason":null},"testCount":1,"line":82,"column":3,"url":"file:///file"},"type":"group","time":5000}''' ;
6464 file.writeAsStringSync (output);
65- final Map <int , TestSpecs > result = generateMetrics (file);
66- expect (result, isEmpty);
65+ final TestFileReporterResults result = TestFileReporterResults .fromFile (file);
66+ expect (result.hasFailedTests, true );
67+ });
68+
69+ test ('has failed stack traces' , () async {
70+ final File file = fileSystem.file ('success_file' );
71+ const String output = '''
72+ {"protocolVersion":"0.1.1","runnerVersion":"1.22.1","pid":47372,"type":"start","time":0}
73+ {"suite":{"id":0,"platform":"vm","path":"test/tool_subsharding_test.dart"},"type":"suite","time":0}
74+ {"test":{"id":1,"name":"loading test/tool_subsharding_test.dart","suiteID":0,"groupIDs":[],"metadata":{"skip":false,"skipReason":null},"line":null,"column":null,"url":null},"type":"testStart","time":2}
75+ {"count":1,"time":11,"type":"allSuites"}
76+ {"testID":1,"result":"success","skipped":false,"hidden":true,"type":"testDone","time":1021}
77+ {"group":{"id":2,"suiteID":0,"parentID":null,"name":"","metadata":{"skip":false,"skipReason":null},"testCount":3,"line":null,"column":null,"url":null},"type":"group","time":1026}
78+ {"group":{"id":3,"suiteID":0,"parentID":2,"name":"generateMetrics","metadata":{"skip":false,"skipReason":null},"testCount":3,"line":13,"column":3,"url":"file:///Users/user/Documents/flutter/dev/bots/test/tool_subsharding_test.dart"},"type":"group","time":1027}
79+ {"test":{"id":4,"name":"generateMetrics empty metrics","suiteID":0,"groupIDs":[2,3],"metadata":{"skip":false,"skipReason":null},"line":20,"column":5,"url":"file:///Users/user/Documents/flutter/dev/bots/test/tool_subsharding_test.dart"},"type":"testStart","time":1027}
80+ {"testID":4,"error":"Expected: <true> Actual: <false>","stackTrace":"package:test_api expect test/tool_subsharding_test.dart 28:7 main.<fn>.<fn> ","isFailure":true,"type":"error","time":1095}
81+ {"testID":4,"result":"failure","skipped":false,"hidden":false,"type":"testDone","time":1096}
82+ {"test":{"id":5,"name":"generateMetrics have metrics","suiteID":0,"groupIDs":[2,3],"metadata":{"skip":false,"skipReason":null},"line":31,"column":5,"url":"file:///Users/user/Documents/flutter/dev/bots/test/tool_subsharding_test.dart"},"type":"testStart","time":1097}
83+ {"testID":5,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":1103}
84+ {"test":{"id":6,"name":"generateMetrics missing success entry","suiteID":0,"groupIDs":[2,3],"metadata":{"skip":false,"skipReason":null},"line":60,"column":5,"url":"file:///Users/user/Documents/flutter/dev/bots/test/tool_subsharding_test.dart"},"type":"testStart","time":1103}
85+ {"testID":6,"error":"Expected: <false> Actual: <true>","stackTrace":"package:test_api expect test/tool_subsharding_test.dart 68:7 main.<fn>.<fn> ","isFailure":true,"type":"error","time":1107}
86+ {"testID":6,"result":"failure","skipped":false,"hidden":false,"type":"testDone","time":1107}
87+ {"testID":6,"error":"my error","isFailure":true,"type":"error","time":1107}
88+ {"success":false,"type":"done","time":1120}''' ;
89+ file.writeAsStringSync (output);
90+ final TestFileReporterResults result = TestFileReporterResults .fromFile (file);
91+ expect (result.hasFailedTests, true );
92+ expect (result.errors.length == 3 , true );
93+ expect (result.errors[0 ].contains ('Expected: <true> Actual: <false>' ), true );
94+ expect (result.errors[1 ].contains ('Expected: <false> Actual: <true>' ), true );
95+ expect (result.errors[2 ].contains ('my error' ), true );
6796 });
6897 });
6998}
0 commit comments