You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+37-2Lines changed: 37 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -8,7 +8,7 @@ Please see the [contributing guide](./CONTRIBUTING.md).
8
8
9
9
## Exercise Metadata
10
10
11
-
Each exercise's data lives in a directory under `exercises/` .
11
+
Each exercise's metadata lives in a directory under `exercises/` .
12
12
13
13
```text
14
14
exercises/
@@ -101,7 +101,42 @@ The file format is described in [canonical-schema.json](./canonical-schema.json)
101
101
102
102
- The `scenarios` field can use one or more of a predefined set of values, which are defined in a [`SCENARIOS.txt`](./SCENARIOS.txt) file.
103
103
- The `scenarios` field can be mutated additively, by adding new scenarios. Existing scenarios must not be changed or removed. Adding new scenarios does therefore does not mean adding a new test case.
104
-
- Library tests will have a `library-test` scenario added to allow for easy including/excluding of library tests. Application tests won't have their own scenario, as they must be included and should not be filtered on.
104
+
- Library tests should have a `library-test` scenario added to allow for easy including/excluding of library tests. Application tests won't have their own scenario, as they must be included and should not be filtered on.
105
+
106
+
## Changing Tests
107
+
108
+
As test cases are immutable, a "bug fix" requires adding a new test case. We'll add metadata to test cases to link a re-implementation of a test case to the re-implemented test case.
109
+
110
+
- Re-implemented test cases _must_ have a `reimplements` field which contains the UUID of the test case that was re-implemented.
111
+
- Re-implemented test cases _must_ use the `comments` field to explain why a test case was re-implemented (e.g. "Expected value is changed to 2").
112
+
- Track generators _should not_ automatically select the "latest" version of a test case by looking at the "reimplements" hierarchy. We recommend each track to make this a manual action, as the re-implemented test case might actually make less sense for a track.
113
+
114
+
This is an example of what a re-implementation looks like:
0 commit comments