diff --git a/CHANGELOG.md b/CHANGELOG.md index 4eed788a33df716f9733cb1855674aab3e82d290..bfd7505ec4c7ca9a79f80018badb6273e3ba134a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,8 @@ * Add a machine-readable JSON reporter. For details, see [the protocol documentation][json-protocol]. +* Skipped groups now properly print skip messages. + [json-protocol]: https://github.com/dart-lang/test/blob/master/json_reporter.md ## 0.12.5+2 diff --git a/lib/src/backend/group.dart b/lib/src/backend/group.dart index dc7e6bd38c5f8f3ee607010b02c76f5568509a1b..f1b08a49e1d8000fdbbe2d640f2c675cf95a4ab3 100644 --- a/lib/src/backend/group.dart +++ b/lib/src/backend/group.dart @@ -44,14 +44,14 @@ class Group implements GroupEntry { if (!metadata.testOn.evaluate(platform, os: os)) return null; var newMetadata = metadata.forPlatform(platform, os: os); var filtered = _map((entry) => entry.forPlatform(platform, os: os)); - if (filtered.isEmpty) return null; + if (filtered.isEmpty && !entries.isEmpty) return null; return new Group(name, filtered, metadata: newMetadata, setUpAll: setUpAll, tearDownAll: tearDownAll); } Group filter(bool callback(Test test)) { var filtered = _map((entry) => entry.filter(callback)); - if (filtered.isEmpty) return null; + if (filtered.isEmpty && !entries.isEmpty) return null; return new Group(name, filtered, metadata: metadata, setUpAll: setUpAll, tearDownAll: tearDownAll); } diff --git a/test/runner/compact_reporter_test.dart b/test/runner/compact_reporter_test.dart index 47b9db9112471c41cda8ad054539ff05e90de1c0..f8908790240c5f3e034dc723d287e5097b40398b 100644 --- a/test/runner/compact_reporter_test.dart +++ b/test/runner/compact_reporter_test.dart @@ -322,6 +322,20 @@ void main() { +0 ~3: All tests skipped."""); }); + test("displays a skipped group", () { + _expectReport(""" + group('skip', () { + test('test 1', () {}); + test('test 2', () {}); + test('test 3', () {}); + }, skip: true);""", + """ + +0: loading test.dart + +0: skip + +0 ~1: skip + +0 ~1: All tests skipped."""); + }); + test("runs skipped tests along with successful tests", () { _expectReport(""" test('skip 1', () {}, skip: true); diff --git a/test/runner/expanded_reporter_test.dart b/test/runner/expanded_reporter_test.dart index 11eac9fdb7c6840e3b376ed2a933d4b4bfd101a8..188bc7f0210f891dba6174bc4553a2d857e92efa 100644 --- a/test/runner/expanded_reporter_test.dart +++ b/test/runner/expanded_reporter_test.dart @@ -251,6 +251,18 @@ void main() { +0 ~3: All tests skipped."""); }); + test("displays a skipped group", () { + _expectReport(""" + group('skip', () { + test('test 1', () {}); + test('test 2', () {}); + test('test 3', () {}); + }, skip: true);""", + """ + +0: skip + +0 ~1: All tests skipped."""); + }); + test("runs skipped tests along with successful tests", () { _expectReport(""" test('skip 1', () {}, skip: true);