From 2c6807703a23ea947bfbb3452492fd287a941b85 Mon Sep 17 00:00:00 2001 From: Natalie Weizenbaum <nweiz@google.com> Date: Mon, 23 Nov 2015 17:57:09 -0800 Subject: [PATCH] Fix a bug with skipped groups. When a group was skipped, it was being filtered out entirely since it had no tests. This preserves it so that it can print a skip message. R=kevmoo@google.com Review URL: https://codereview.chromium.org//1471963002 . --- CHANGELOG.md | 2 ++ lib/src/backend/group.dart | 4 ++-- test/runner/compact_reporter_test.dart | 14 ++++++++++++++ test/runner/expanded_reporter_test.dart | 12 ++++++++++++ 4 files changed, 30 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4eed788a..bfd7505e 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 dc7e6bd3..f1b08a49 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 47b9db91..f8908790 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 11eac9fd..188bc7f0 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); -- GitLab