| Index: lib/src/runner.dart
|
| diff --git a/lib/src/runner.dart b/lib/src/runner.dart
|
| index 260c3106951badc31a575aaecf285d2af02b05eb..90027ddbb17b70c0a6b365e521e79572ae19d379 100644
|
| --- a/lib/src/runner.dart
|
| +++ b/lib/src/runner.dart
|
| @@ -158,9 +158,23 @@ class Runner {
|
| ]);
|
| })).map((loadSuite) {
|
| return loadSuite.changeSuite((suite) {
|
| - return suite.filter((test) =>
|
| - (_config.pattern == null || test.name.contains(_config.pattern)) &&
|
| - (_config.tags.isEmpty || intersect(_config.tags, test.metadata.tags)));
|
| + return suite.filter((test) {
|
| + bool matchesNamePattern =
|
| + _config.pattern == null || test.name.contains(_config.pattern);
|
| + bool matchesTags = _config.tags.isEmpty ||
|
| + intersect(_config.tags, test.metadata.tags);
|
| + bool matchesExcludeTags =
|
| + intersect(_config.excludeTags, test.metadata.tags);
|
| +
|
| + var specifiedTags = _config.tags.union(_config.excludeTags);
|
| + List unrecognizedTags = test.metadata.tags.difference(specifiedTags);
|
| + if (unrecognizedTags.isNotEmpty) {
|
| + var yellow = _config.color ? '\u001b[33m' : '';
|
| + stderr.writeln("\n${yellow}WARNING: unrecognized tags ${unrecognizedTags} in test '${test.name}'");
|
| + }
|
| +
|
| + return matchesNamePattern && matchesTags && !matchesExcludeTags;
|
| + });
|
| });
|
| });
|
| }
|
|
|