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

Unified Diff: json_reporter.md

Issue 1469863005: Add JSON protocol support for groups. (Closed) Base URL: git@github.com:dart-lang/test@master
Patch Set: Code review changes Created 5 years, 1 month 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 | « no previous file | json_reporter.schema.json » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: json_reporter.md
diff --git a/json_reporter.md b/json_reporter.md
index ddcc11f512fdc6cd04358f749569c5be728e54db..25895b94d918499e17841f72b277f678197d8498 100644
--- a/json_reporter.md
+++ b/json_reporter.md
@@ -52,7 +52,7 @@ class, that refers to a nested object. The special type `List<...>` indicates a
JSON list of the given type.
Classes can "extend" one another, meaning that the subclass has all the
-properties of the superclass. Concrete subclasses can be distinguished by the
+attributes of the superclass. Concrete subclasses can be distinguished by the
specific value of their `type` attribute. Classes may be abstract, indicating
that only their subclasses will ever be used.
@@ -95,6 +95,29 @@ class StartEvent extends Event {
A single start event is emitted before any other events. It indicates that the
test runner has started running.
+### GroupEvent
+
+```
+class GroupEvent extends Event {
+ String type = "group";
+
+ /// Metadata about the group.
+ Group group;
+}
+```
+
+A group event is emitted before any `TestStartEvent`s for tests in a given
+group. This is the only event that contains the full metadata about a group;
+future events will refer to the group by its opaque ID.
+
+This includes the implicit group at the root of each suite, which has a `null`
+name. However, it does *not* include implicit groups for the virtual suites
+generated to represent loading test files.
+
+The group should be considered skipped if `group.metadata.skip` is `true`. When
+a group is skipped, a single `TestStartEvent` will be emitted for a test within
+that group that will also be skipped.
+
### TestStartEvent
```
@@ -209,7 +232,7 @@ class DoneEvent extends Event {
An event indicating the result of the entire test run. This will be the final
event emitted by the reporter.
-## Test Information
+## Other Classes
### Test
@@ -221,8 +244,11 @@ class Test {
// The name of the test, including prefixes from any containing groups.
String name;
- // The test's metadata, including metadata from any containing groups and the
- // test suite itself.
+ // The IDs of groups containing this test, in order from outermost to
+ // innermost.
+ List<int> groupIDs;
+
+ // The test's metadata, including metadata from any containing groups.
Metadata metadata;
}
```
@@ -231,6 +257,35 @@ A single test case. The test's ID is unique in the context of this test run.
It's used elsewhere in the protocol to refer to this test without including its
full representation.
+Most tests will have at least one group ID, representing the implicit root
+group. However, some may not; these should be treated as having no group
+metadata.
+
+### Group
+
+```
+class Group {
+ // An opaque ID for the group.
+ int id;
+
+ // The name of the group, including prefixes from any containing groups.
+ String? name;
+
+ // The ID of the group's parent group, unless it's the root group.
+ int? parentID;
+
+ // The group's metadata, including metadata from any containing groups.
+ Metadata metadata;
+}
+```
+
+A group containing test cases. The group's ID is unique in the context of this
+test run. It's used elsewhere in the protocol to refer to this test without
+including its full representation.
+
+The implicit group at the root of each test suite has `null` `name` and
+`parentID` attributes.
+
### Metadata
```
« no previous file with comments | « no previous file | json_reporter.schema.json » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698