Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(82)

Unified Diff: README.md

Issue 1691173002: Support tag configuration. (Closed) Base URL: git@github.com:dart-lang/test@master
Patch Set: Code review changes Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « CHANGELOG.md ('k') | doc/package_config.md » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: README.md
diff --git a/README.md b/README.md
index cabbd1f7915a14dd638eadd9842fb380b5845192..13381113a3f4ee36c5deb93c1852b91e4aafcfc8 100644
--- a/README.md
+++ b/README.md
@@ -12,6 +12,7 @@
* [Timeouts](#timeouts)
* [Platform-Specific Configuration](#platform-specific-configuration)
* [Whole-Package Configuration](#whole-package-configuration)
+* [Tagging Tests](#tagging-tests)
* [Debugging](#debugging)
* [Testing with `barback`](#testing-with-barback)
* [Further Reading](#further-reading)
@@ -487,6 +488,48 @@ If multiple platforms match, the configuration is applied in order from first to
last, just as they would in nested groups. This means that for configuration
like duration-based timeouts, the last matching value wins.
+### Tagging Tests
+
+Tags are short strings that you can associate with tests, groups, and suites.
+They don't have any built-in meaning, but they're very useful nonetheless: you
+can associate your own custom configuration with them, or you can use them to
+easily filter tests so you only run the ones you need to.
+
+Tags are defined using the `@Tags` annotation for suites and the `tags` named
+parameter to `test()` and `group()`. For example:
+
+```dart
+@Tags(["browser"])
+
+import "package:test/test.dart";
+
+void main() {
+ test("successfully launches Chrome", () {
+ // ...
+ }, tags: "chrome");
+
+ test("launches two browsers at once", () {
+ // ...
+ }, tags: ["chrome", "firefox"]);
+}
+```
+
+If the test runner encounters a tag that wasn't declared in the
+[package configuration file][configuring tags], it'll print a warning, so be
+sure to include all your tags there. You can also use the file to provide
+default configuration for tags, like giving all `browser` tests twice as much
+time before they time out.
+
+[configuring tags]: https://github.com/dart-lang/test/blob/master/doc/package_config.md#configuring-tags
+
+Tests can be filtered based on their tags by passing command line flags. The
+`--tags` or `-t` flag will cause the test runner to only run tests with the
+given tags, and the `--exclude-tags` or `-x` flag will cause it to only run
+tests *without* the given tags.
+
+Note that tags must be valid Dart identifiers, although they may also contain
+hyphens.
+
### Whole-Package Configuration
For configuration that applies across multiple files, or even the entire
« no previous file with comments | « CHANGELOG.md ('k') | doc/package_config.md » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698