cucumber-compatibility-kit 20.1.0 → 22.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +5 -5
- data/features/ambiguous/ambiguous.feature +6 -0
- data/features/ambiguous/ambiguous.ndjson +13 -0
- data/features/attachments/attachments.ndjson +34 -34
- data/features/backgrounds/backgrounds.feature +17 -0
- data/features/backgrounds/backgrounds.ndjson +36 -0
- data/features/doc-strings/doc-strings.feature +31 -0
- data/features/doc-strings/doc-strings.ndjson +24 -0
- data/features/examples-tables-attachment/examples-tables-attachment.ndjson +9 -9
- data/features/global-hooks/global-hooks.feature +10 -0
- data/features/global-hooks/global-hooks.ndjson +31 -0
- data/features/global-hooks-afterall-error/global-hooks-afterall-error.feature +6 -0
- data/features/global-hooks-afterall-error/global-hooks-afterall-error.ndjson +27 -0
- data/features/global-hooks-attachments/global-hooks-attachments.feature +5 -0
- data/features/global-hooks-attachments/global-hooks-attachments.ndjson +20 -0
- data/features/global-hooks-beforeall-error/global-hooks-beforeall-error.feature +6 -0
- data/features/global-hooks-beforeall-error/global-hooks-beforeall-error.ndjson +22 -0
- data/features/hooks-attachment/hooks-attachment.ndjson +9 -9
- data/features/markdown/markdown.ndjson +17 -17
- data/features/multiple-features/multiple-features-1.feature +10 -0
- data/features/multiple-features/multiple-features-2.feature +10 -0
- data/features/multiple-features/multiple-features-3.feature +10 -0
- data/features/multiple-features/multiple-features.ndjson +64 -0
- data/features/multiple-features-reversed/multiple-features-reversed-1.feature +10 -0
- data/features/multiple-features-reversed/multiple-features-reversed-2.feature +10 -0
- data/features/multiple-features-reversed/multiple-features-reversed-3.feature +10 -0
- data/features/multiple-features-reversed/multiple-features-reversed.arguments.txt +1 -0
- data/features/multiple-features-reversed/multiple-features-reversed.ndjson +64 -0
- data/features/regular-expression/regular-expression.feature +9 -0
- data/features/regular-expression/regular-expression.ndjson +16 -0
- data/features/retry/retry.feature +6 -0
- data/features/retry/retry.ndjson +73 -58
- data/features/rules-backgrounds/rules-backgrounds.feature +23 -0
- data/features/rules-backgrounds/rules-backgrounds.ndjson +44 -0
- data/features/unused-steps/unused-steps.feature +6 -0
- data/features/unused-steps/unused-steps.ndjson +13 -0
- data/lib/cucumber/compatibility_kit.rb +55 -0
- metadata +39 -13
- data/lib/cck/examples.rb +0 -58
data/features/retry/retry.ndjson
CHANGED
@@ -1,59 +1,74 @@
|
|
1
1
|
{"meta":{"protocolVersion":"28.0.0","implementation":{"name":"fake-cucumber","version":"123.45.6"},"cpu":{"name":"arm64"},"os":{"name":"darwin","version":"24.5.0"},"runtime":{"name":"Node.js","version":"24.4.1"},"ci":{"name":"GitHub Actions","url":"https://github.com/cucumber-ltd/shouty.rb/actions/runs/154666429","buildNumber":"154666429","git":{"revision":"99684bcacf01d95875834d87903dcb072306c9ad","remote":"https://github.com/cucumber-ltd/shouty.rb.git","branch":"main"}}}}
|
2
|
-
{"source":{"data":"Feature: Retry\n Some Cucumber implementations support a Retry mechanism, where test cases that fail\n can be retried up to a limited number of attempts in the same test run.\n\n Non-passing statuses other than FAILED won't trigger a retry, as they are not\n going to pass however many times we attempt them.\n\n Scenario: Test cases that pass aren't retried\n Given a step that always passes\n\n Scenario: Test cases that fail are retried if within the --retry limit\n Given a step that passes the second time\n\n Scenario: Test cases that fail will continue to retry up to the --retry limit\n Given a step that passes the third time\n\n Scenario: Test cases won't retry after failing more than the --retry limit\n Given a step that always fails\n\n Scenario: Test cases won't retry when the status is UNDEFINED\n Given a non-existent step\n","uri":"samples/retry/retry.feature","mediaType":"text/x.cucumber.gherkin+plain"}}
|
3
|
-
{"gherkinDocument":{"feature":{"tags":[],"location":{"line":1,"column":1},"language":"en","keyword":"Feature","name":"Retry","description":" Some Cucumber implementations support a Retry mechanism, where test cases that fail\n can be retried up to a limited number of attempts in the same test run.\n\n Non-passing statuses other than FAILED won't trigger a retry, as they are not\n going to pass however many times we attempt them.","children":[{"scenario":{"id":"1","tags":[],"location":{"line":8,"column":3},"keyword":"Scenario","name":"Test cases that pass aren't retried","description":"","steps":[{"id":"0","location":{"line":9,"column":5},"keyword":"Given ","keywordType":"Context","text":"a step that always passes"}],"examples":[]}},{"scenario":{"id":"3","tags":[],"location":{"line":11,"column":3},"keyword":"Scenario","name":"Test cases that fail are retried if within the --retry limit","description":"","steps":[{"id":"2","location":{"line":12,"column":5},"keyword":"Given ","keywordType":"Context","text":"a step that passes the second time"}],"examples":[]}},{"scenario":{"id":"5","tags":[],"location":{"line":14,"column":3},"keyword":"Scenario","name":"Test cases that fail will continue to retry up to the --retry limit","description":"","steps":[{"id":"4","location":{"line":15,"column":5},"keyword":"Given ","keywordType":"Context","text":"a step that passes the third time"}],"examples":[]}},{"scenario":{"id":"7","tags":[],"location":{"line":17,"column":3},"keyword":"Scenario","name":"Test cases won't retry after failing more than the --retry limit","description":"","steps":[{"id":"6","location":{"line":18,"column":5},"keyword":"Given ","keywordType":"Context","text":"a step that always fails"}],"examples":[]}},{"scenario":{"id":"9","tags":[],"location":{"line":20,"column":3},"keyword":"Scenario","name":"Test cases won't retry when the status is
|
4
|
-
{"pickle":{"id":"
|
5
|
-
{"pickle":{"id":"
|
6
|
-
{"pickle":{"id":"
|
7
|
-
{"pickle":{"id":"
|
8
|
-
{"pickle":{"id":"
|
9
|
-
{"
|
10
|
-
{"
|
11
|
-
{"stepDefinition":{"id":"
|
12
|
-
{"stepDefinition":{"id":"
|
13
|
-
{"
|
14
|
-
{"
|
15
|
-
{"
|
16
|
-
{"
|
17
|
-
{"
|
18
|
-
{"
|
19
|
-
{"
|
20
|
-
{"
|
21
|
-
{"
|
22
|
-
{"
|
23
|
-
{"
|
24
|
-
{"
|
25
|
-
{"
|
26
|
-
{"
|
27
|
-
{"
|
28
|
-
{"
|
29
|
-
{"
|
30
|
-
{"
|
31
|
-
{"
|
32
|
-
{"
|
33
|
-
{"
|
34
|
-
{"
|
35
|
-
{"
|
36
|
-
{"
|
37
|
-
{"
|
38
|
-
{"
|
39
|
-
{"
|
40
|
-
{"
|
41
|
-
{"
|
42
|
-
{"
|
43
|
-
{"
|
44
|
-
{"
|
45
|
-
{"
|
46
|
-
{"
|
47
|
-
{"
|
48
|
-
{"
|
49
|
-
{"
|
50
|
-
{"
|
51
|
-
{"
|
52
|
-
{"
|
53
|
-
{"
|
54
|
-
{"
|
55
|
-
{"
|
56
|
-
{"
|
57
|
-
{"
|
58
|
-
{"
|
59
|
-
{"
|
2
|
+
{"source":{"data":"Feature: Retry\n Some Cucumber implementations support a Retry mechanism, where test cases that fail\n can be retried up to a limited number of attempts in the same test run.\n\n Non-passing statuses other than FAILED won't trigger a retry, as they are not\n going to pass however many times we attempt them.\n\n Scenario: Test cases that pass aren't retried\n Given a step that always passes\n\n Scenario: Test cases that fail are retried if within the --retry limit\n Given a step that passes the second time\n\n Scenario: Test cases that fail will continue to retry up to the --retry limit\n Given a step that passes the third time\n\n Scenario: Test cases won't retry after failing more than the --retry limit\n Given a step that always fails\n\n Scenario: Test cases won't retry when the status is AMBIGUOUS\n Given an ambiguous step\n\n Scenario: Test cases won't retry when the status is PENDING\n Given a pending step\n\n Scenario: Test cases won't retry when the status is UNDEFINED\n Given a non-existent step\n","uri":"samples/retry/retry.feature","mediaType":"text/x.cucumber.gherkin+plain"}}
|
3
|
+
{"gherkinDocument":{"feature":{"tags":[],"location":{"line":1,"column":1},"language":"en","keyword":"Feature","name":"Retry","description":" Some Cucumber implementations support a Retry mechanism, where test cases that fail\n can be retried up to a limited number of attempts in the same test run.\n\n Non-passing statuses other than FAILED won't trigger a retry, as they are not\n going to pass however many times we attempt them.","children":[{"scenario":{"id":"1","tags":[],"location":{"line":8,"column":3},"keyword":"Scenario","name":"Test cases that pass aren't retried","description":"","steps":[{"id":"0","location":{"line":9,"column":5},"keyword":"Given ","keywordType":"Context","text":"a step that always passes"}],"examples":[]}},{"scenario":{"id":"3","tags":[],"location":{"line":11,"column":3},"keyword":"Scenario","name":"Test cases that fail are retried if within the --retry limit","description":"","steps":[{"id":"2","location":{"line":12,"column":5},"keyword":"Given ","keywordType":"Context","text":"a step that passes the second time"}],"examples":[]}},{"scenario":{"id":"5","tags":[],"location":{"line":14,"column":3},"keyword":"Scenario","name":"Test cases that fail will continue to retry up to the --retry limit","description":"","steps":[{"id":"4","location":{"line":15,"column":5},"keyword":"Given ","keywordType":"Context","text":"a step that passes the third time"}],"examples":[]}},{"scenario":{"id":"7","tags":[],"location":{"line":17,"column":3},"keyword":"Scenario","name":"Test cases won't retry after failing more than the --retry limit","description":"","steps":[{"id":"6","location":{"line":18,"column":5},"keyword":"Given ","keywordType":"Context","text":"a step that always fails"}],"examples":[]}},{"scenario":{"id":"9","tags":[],"location":{"line":20,"column":3},"keyword":"Scenario","name":"Test cases won't retry when the status is AMBIGUOUS","description":"","steps":[{"id":"8","location":{"line":21,"column":5},"keyword":"Given ","keywordType":"Context","text":"an ambiguous step"}],"examples":[]}},{"scenario":{"id":"11","tags":[],"location":{"line":23,"column":3},"keyword":"Scenario","name":"Test cases won't retry when the status is PENDING","description":"","steps":[{"id":"10","location":{"line":24,"column":5},"keyword":"Given ","keywordType":"Context","text":"a pending step"}],"examples":[]}},{"scenario":{"id":"13","tags":[],"location":{"line":26,"column":3},"keyword":"Scenario","name":"Test cases won't retry when the status is UNDEFINED","description":"","steps":[{"id":"12","location":{"line":27,"column":5},"keyword":"Given ","keywordType":"Context","text":"a non-existent step"}],"examples":[]}}]},"comments":[],"uri":"samples/retry/retry.feature"}}
|
4
|
+
{"pickle":{"id":"15","uri":"samples/retry/retry.feature","astNodeIds":["1"],"tags":[],"name":"Test cases that pass aren't retried","language":"en","steps":[{"id":"14","text":"a step that always passes","type":"Context","astNodeIds":["0"]}]}}
|
5
|
+
{"pickle":{"id":"17","uri":"samples/retry/retry.feature","astNodeIds":["3"],"tags":[],"name":"Test cases that fail are retried if within the --retry limit","language":"en","steps":[{"id":"16","text":"a step that passes the second time","type":"Context","astNodeIds":["2"]}]}}
|
6
|
+
{"pickle":{"id":"19","uri":"samples/retry/retry.feature","astNodeIds":["5"],"tags":[],"name":"Test cases that fail will continue to retry up to the --retry limit","language":"en","steps":[{"id":"18","text":"a step that passes the third time","type":"Context","astNodeIds":["4"]}]}}
|
7
|
+
{"pickle":{"id":"21","uri":"samples/retry/retry.feature","astNodeIds":["7"],"tags":[],"name":"Test cases won't retry after failing more than the --retry limit","language":"en","steps":[{"id":"20","text":"a step that always fails","type":"Context","astNodeIds":["6"]}]}}
|
8
|
+
{"pickle":{"id":"23","uri":"samples/retry/retry.feature","astNodeIds":["9"],"tags":[],"name":"Test cases won't retry when the status is AMBIGUOUS","language":"en","steps":[{"id":"22","text":"an ambiguous step","type":"Context","astNodeIds":["8"]}]}}
|
9
|
+
{"pickle":{"id":"25","uri":"samples/retry/retry.feature","astNodeIds":["11"],"tags":[],"name":"Test cases won't retry when the status is PENDING","language":"en","steps":[{"id":"24","text":"a pending step","type":"Context","astNodeIds":["10"]}]}}
|
10
|
+
{"pickle":{"id":"27","uri":"samples/retry/retry.feature","astNodeIds":["13"],"tags":[],"name":"Test cases won't retry when the status is UNDEFINED","language":"en","steps":[{"id":"26","text":"a non-existent step","type":"Context","astNodeIds":["12"]}]}}
|
11
|
+
{"stepDefinition":{"id":"28","pattern":{"type":"CUCUMBER_EXPRESSION","source":"a step that always passes"},"sourceReference":{"uri":"samples/retry/retry.ts","location":{"line":3}}}}
|
12
|
+
{"stepDefinition":{"id":"29","pattern":{"type":"CUCUMBER_EXPRESSION","source":"a step that passes the second time"},"sourceReference":{"uri":"samples/retry/retry.ts","location":{"line":8}}}}
|
13
|
+
{"stepDefinition":{"id":"30","pattern":{"type":"CUCUMBER_EXPRESSION","source":"a step that passes the third time"},"sourceReference":{"uri":"samples/retry/retry.ts","location":{"line":16}}}}
|
14
|
+
{"stepDefinition":{"id":"31","pattern":{"type":"CUCUMBER_EXPRESSION","source":"a step that always fails"},"sourceReference":{"uri":"samples/retry/retry.ts","location":{"line":23}}}}
|
15
|
+
{"stepDefinition":{"id":"32","pattern":{"type":"CUCUMBER_EXPRESSION","source":"an ambiguous step"},"sourceReference":{"uri":"samples/retry/retry.ts","location":{"line":27}}}}
|
16
|
+
{"stepDefinition":{"id":"33","pattern":{"type":"CUCUMBER_EXPRESSION","source":"an ambiguous step"},"sourceReference":{"uri":"samples/retry/retry.ts","location":{"line":31}}}}
|
17
|
+
{"stepDefinition":{"id":"34","pattern":{"type":"CUCUMBER_EXPRESSION","source":"a pending step"},"sourceReference":{"uri":"samples/retry/retry.ts","location":{"line":35}}}}
|
18
|
+
{"testRunStarted":{"id":"35","timestamp":{"seconds":0,"nanos":0}}}
|
19
|
+
{"testCase":{"id":"36","pickleId":"15","testSteps":[{"id":"37","pickleStepId":"14","stepDefinitionIds":["28"],"stepMatchArgumentsLists":[{"stepMatchArguments":[]}]}],"testRunStartedId":"35"}}
|
20
|
+
{"testCase":{"id":"38","pickleId":"17","testSteps":[{"id":"39","pickleStepId":"16","stepDefinitionIds":["29"],"stepMatchArgumentsLists":[{"stepMatchArguments":[]}]}],"testRunStartedId":"35"}}
|
21
|
+
{"testCase":{"id":"40","pickleId":"19","testSteps":[{"id":"41","pickleStepId":"18","stepDefinitionIds":["30"],"stepMatchArgumentsLists":[{"stepMatchArguments":[]}]}],"testRunStartedId":"35"}}
|
22
|
+
{"testCase":{"id":"42","pickleId":"21","testSteps":[{"id":"43","pickleStepId":"20","stepDefinitionIds":["31"],"stepMatchArgumentsLists":[{"stepMatchArguments":[]}]}],"testRunStartedId":"35"}}
|
23
|
+
{"testCase":{"id":"44","pickleId":"23","testSteps":[{"id":"45","pickleStepId":"22","stepDefinitionIds":["32","33"],"stepMatchArgumentsLists":[{"stepMatchArguments":[]},{"stepMatchArguments":[]}]}],"testRunStartedId":"35"}}
|
24
|
+
{"testCase":{"id":"46","pickleId":"25","testSteps":[{"id":"47","pickleStepId":"24","stepDefinitionIds":["34"],"stepMatchArgumentsLists":[{"stepMatchArguments":[]}]}],"testRunStartedId":"35"}}
|
25
|
+
{"testCase":{"id":"48","pickleId":"27","testSteps":[{"id":"49","pickleStepId":"26","stepDefinitionIds":[],"stepMatchArgumentsLists":[]}],"testRunStartedId":"35"}}
|
26
|
+
{"testCaseStarted":{"id":"50","testCaseId":"36","timestamp":{"seconds":0,"nanos":1000000},"attempt":0}}
|
27
|
+
{"testStepStarted":{"testCaseStartedId":"50","testStepId":"37","timestamp":{"seconds":0,"nanos":2000000}}}
|
28
|
+
{"testStepFinished":{"testCaseStartedId":"50","testStepId":"37","testStepResult":{"status":"PASSED","duration":{"seconds":0,"nanos":1000000}},"timestamp":{"seconds":0,"nanos":3000000}}}
|
29
|
+
{"testCaseFinished":{"testCaseStartedId":"50","timestamp":{"seconds":0,"nanos":4000000},"willBeRetried":false}}
|
30
|
+
{"testCaseStarted":{"id":"51","testCaseId":"38","timestamp":{"seconds":0,"nanos":5000000},"attempt":0}}
|
31
|
+
{"testStepStarted":{"testCaseStartedId":"51","testStepId":"39","timestamp":{"seconds":0,"nanos":6000000}}}
|
32
|
+
{"testStepFinished":{"testCaseStartedId":"51","testStepId":"39","testStepResult":{"message":"Exception in step","exception":{"type":"Error","message":"Exception in step","stackTrace":"Error: Exception in step\nsamples/retry/retry.feature:12"},"status":"FAILED","duration":{"seconds":0,"nanos":1000000}},"timestamp":{"seconds":0,"nanos":7000000}}}
|
33
|
+
{"testCaseFinished":{"testCaseStartedId":"51","timestamp":{"seconds":0,"nanos":8000000},"willBeRetried":true}}
|
34
|
+
{"testCaseStarted":{"id":"52","testCaseId":"38","timestamp":{"seconds":0,"nanos":9000000},"attempt":1}}
|
35
|
+
{"testStepStarted":{"testCaseStartedId":"52","testStepId":"39","timestamp":{"seconds":0,"nanos":10000000}}}
|
36
|
+
{"testStepFinished":{"testCaseStartedId":"52","testStepId":"39","testStepResult":{"status":"PASSED","duration":{"seconds":0,"nanos":1000000}},"timestamp":{"seconds":0,"nanos":11000000}}}
|
37
|
+
{"testCaseFinished":{"testCaseStartedId":"52","timestamp":{"seconds":0,"nanos":12000000},"willBeRetried":false}}
|
38
|
+
{"testCaseStarted":{"id":"53","testCaseId":"40","timestamp":{"seconds":0,"nanos":13000000},"attempt":0}}
|
39
|
+
{"testStepStarted":{"testCaseStartedId":"53","testStepId":"41","timestamp":{"seconds":0,"nanos":14000000}}}
|
40
|
+
{"testStepFinished":{"testCaseStartedId":"53","testStepId":"41","testStepResult":{"message":"Exception in step","exception":{"type":"Error","message":"Exception in step","stackTrace":"Error: Exception in step\nsamples/retry/retry.feature:15"},"status":"FAILED","duration":{"seconds":0,"nanos":1000000}},"timestamp":{"seconds":0,"nanos":15000000}}}
|
41
|
+
{"testCaseFinished":{"testCaseStartedId":"53","timestamp":{"seconds":0,"nanos":16000000},"willBeRetried":true}}
|
42
|
+
{"testCaseStarted":{"id":"54","testCaseId":"40","timestamp":{"seconds":0,"nanos":17000000},"attempt":1}}
|
43
|
+
{"testStepStarted":{"testCaseStartedId":"54","testStepId":"41","timestamp":{"seconds":0,"nanos":18000000}}}
|
44
|
+
{"testStepFinished":{"testCaseStartedId":"54","testStepId":"41","testStepResult":{"message":"Exception in step","exception":{"type":"Error","message":"Exception in step","stackTrace":"Error: Exception in step\nsamples/retry/retry.feature:15"},"status":"FAILED","duration":{"seconds":0,"nanos":1000000}},"timestamp":{"seconds":0,"nanos":19000000}}}
|
45
|
+
{"testCaseFinished":{"testCaseStartedId":"54","timestamp":{"seconds":0,"nanos":20000000},"willBeRetried":true}}
|
46
|
+
{"testCaseStarted":{"id":"55","testCaseId":"40","timestamp":{"seconds":0,"nanos":21000000},"attempt":2}}
|
47
|
+
{"testStepStarted":{"testCaseStartedId":"55","testStepId":"41","timestamp":{"seconds":0,"nanos":22000000}}}
|
48
|
+
{"testStepFinished":{"testCaseStartedId":"55","testStepId":"41","testStepResult":{"status":"PASSED","duration":{"seconds":0,"nanos":1000000}},"timestamp":{"seconds":0,"nanos":23000000}}}
|
49
|
+
{"testCaseFinished":{"testCaseStartedId":"55","timestamp":{"seconds":0,"nanos":24000000},"willBeRetried":false}}
|
50
|
+
{"testCaseStarted":{"id":"56","testCaseId":"42","timestamp":{"seconds":0,"nanos":25000000},"attempt":0}}
|
51
|
+
{"testStepStarted":{"testCaseStartedId":"56","testStepId":"43","timestamp":{"seconds":0,"nanos":26000000}}}
|
52
|
+
{"testStepFinished":{"testCaseStartedId":"56","testStepId":"43","testStepResult":{"message":"Exception in step","exception":{"type":"Error","message":"Exception in step","stackTrace":"Error: Exception in step\nsamples/retry/retry.feature:18"},"status":"FAILED","duration":{"seconds":0,"nanos":1000000}},"timestamp":{"seconds":0,"nanos":27000000}}}
|
53
|
+
{"testCaseFinished":{"testCaseStartedId":"56","timestamp":{"seconds":0,"nanos":28000000},"willBeRetried":true}}
|
54
|
+
{"testCaseStarted":{"id":"57","testCaseId":"42","timestamp":{"seconds":0,"nanos":29000000},"attempt":1}}
|
55
|
+
{"testStepStarted":{"testCaseStartedId":"57","testStepId":"43","timestamp":{"seconds":0,"nanos":30000000}}}
|
56
|
+
{"testStepFinished":{"testCaseStartedId":"57","testStepId":"43","testStepResult":{"message":"Exception in step","exception":{"type":"Error","message":"Exception in step","stackTrace":"Error: Exception in step\nsamples/retry/retry.feature:18"},"status":"FAILED","duration":{"seconds":0,"nanos":1000000}},"timestamp":{"seconds":0,"nanos":31000000}}}
|
57
|
+
{"testCaseFinished":{"testCaseStartedId":"57","timestamp":{"seconds":0,"nanos":32000000},"willBeRetried":true}}
|
58
|
+
{"testCaseStarted":{"id":"58","testCaseId":"42","timestamp":{"seconds":0,"nanos":33000000},"attempt":2}}
|
59
|
+
{"testStepStarted":{"testCaseStartedId":"58","testStepId":"43","timestamp":{"seconds":0,"nanos":34000000}}}
|
60
|
+
{"testStepFinished":{"testCaseStartedId":"58","testStepId":"43","testStepResult":{"message":"Exception in step","exception":{"type":"Error","message":"Exception in step","stackTrace":"Error: Exception in step\nsamples/retry/retry.feature:18"},"status":"FAILED","duration":{"seconds":0,"nanos":1000000}},"timestamp":{"seconds":0,"nanos":35000000}}}
|
61
|
+
{"testCaseFinished":{"testCaseStartedId":"58","timestamp":{"seconds":0,"nanos":36000000},"willBeRetried":false}}
|
62
|
+
{"testCaseStarted":{"id":"59","testCaseId":"44","timestamp":{"seconds":0,"nanos":37000000},"attempt":0}}
|
63
|
+
{"testStepStarted":{"testCaseStartedId":"59","testStepId":"45","timestamp":{"seconds":0,"nanos":38000000}}}
|
64
|
+
{"testStepFinished":{"testCaseStartedId":"59","testStepId":"45","testStepResult":{"status":"AMBIGUOUS","duration":{"seconds":0,"nanos":0}},"timestamp":{"seconds":0,"nanos":39000000}}}
|
65
|
+
{"testCaseFinished":{"testCaseStartedId":"59","timestamp":{"seconds":0,"nanos":40000000},"willBeRetried":false}}
|
66
|
+
{"testCaseStarted":{"id":"60","testCaseId":"46","timestamp":{"seconds":0,"nanos":41000000},"attempt":0}}
|
67
|
+
{"testStepStarted":{"testCaseStartedId":"60","testStepId":"47","timestamp":{"seconds":0,"nanos":42000000}}}
|
68
|
+
{"testStepFinished":{"testCaseStartedId":"60","testStepId":"47","testStepResult":{"status":"PENDING","message":"TODO","duration":{"seconds":0,"nanos":1000000}},"timestamp":{"seconds":0,"nanos":43000000}}}
|
69
|
+
{"testCaseFinished":{"testCaseStartedId":"60","timestamp":{"seconds":0,"nanos":44000000},"willBeRetried":false}}
|
70
|
+
{"testCaseStarted":{"id":"61","testCaseId":"48","timestamp":{"seconds":0,"nanos":45000000},"attempt":0}}
|
71
|
+
{"testStepStarted":{"testCaseStartedId":"61","testStepId":"49","timestamp":{"seconds":0,"nanos":46000000}}}
|
72
|
+
{"testStepFinished":{"testCaseStartedId":"61","testStepId":"49","testStepResult":{"status":"UNDEFINED","duration":{"seconds":0,"nanos":0}},"timestamp":{"seconds":0,"nanos":47000000}}}
|
73
|
+
{"testCaseFinished":{"testCaseStartedId":"61","timestamp":{"seconds":0,"nanos":48000000},"willBeRetried":false}}
|
74
|
+
{"testRunFinished":{"testRunStartedId":"35","timestamp":{"seconds":0,"nanos":49000000},"success":false}}
|
@@ -0,0 +1,23 @@
|
|
1
|
+
Feature: Rules with Backgrounds
|
2
|
+
Like Features, Rules can also have Backgrounds, whose steps are prepended to those of each child Scenario. Only
|
3
|
+
one Background at the Rule level is supported.
|
4
|
+
|
5
|
+
It's even possible to have a Background at both Feature and Rule level, in which case they are concatenated.
|
6
|
+
|
7
|
+
Background:
|
8
|
+
Given an order for "eggs"
|
9
|
+
And an order for "milk"
|
10
|
+
And an order for "bread"
|
11
|
+
|
12
|
+
Rule:
|
13
|
+
Background:
|
14
|
+
Given an order for "batteries"
|
15
|
+
And an order for "light bulbs"
|
16
|
+
|
17
|
+
Example: one scenario
|
18
|
+
When an action
|
19
|
+
Then an outcome
|
20
|
+
|
21
|
+
Example: another scenario
|
22
|
+
When an action
|
23
|
+
Then an outcome
|
@@ -0,0 +1,44 @@
|
|
1
|
+
{"meta":{"protocolVersion":"28.0.0","implementation":{"name":"fake-cucumber","version":"123.45.6"},"cpu":{"name":"arm64"},"os":{"name":"darwin","version":"24.5.0"},"runtime":{"name":"Node.js","version":"24.4.1"},"ci":{"name":"GitHub Actions","url":"https://github.com/cucumber-ltd/shouty.rb/actions/runs/154666429","buildNumber":"154666429","git":{"revision":"99684bcacf01d95875834d87903dcb072306c9ad","remote":"https://github.com/cucumber-ltd/shouty.rb.git","branch":"main"}}}}
|
2
|
+
{"source":{"data":"Feature: Rules with Backgrounds\n Like Features, Rules can also have Backgrounds, whose steps are prepended to those of each child Scenario. Only\n one Background at the Rule level is supported.\n\n It's even possible to have a Background at both Feature and Rule level, in which case they are concatenated.\n\n Background:\n Given an order for \"eggs\"\n And an order for \"milk\"\n And an order for \"bread\"\n\n Rule:\n Background:\n Given an order for \"batteries\"\n And an order for \"light bulbs\"\n\n Example: one scenario\n When an action\n Then an outcome\n\n Example: another scenario\n When an action\n Then an outcome","uri":"samples/rules-backgrounds/rules-backgrounds.feature","mediaType":"text/x.cucumber.gherkin+plain"}}
|
3
|
+
{"gherkinDocument":{"feature":{"tags":[],"location":{"line":1,"column":1},"language":"en","keyword":"Feature","name":"Rules with Backgrounds","description":" Like Features, Rules can also have Backgrounds, whose steps are prepended to those of each child Scenario. Only\n one Background at the Rule level is supported.\n\n It's even possible to have a Background at both Feature and Rule level, in which case they are concatenated.","children":[{"background":{"id":"3","location":{"line":7,"column":3},"keyword":"Background","name":"","description":"","steps":[{"id":"0","location":{"line":8,"column":5},"keyword":"Given ","keywordType":"Context","text":"an order for \"eggs\""},{"id":"1","location":{"line":9,"column":5},"keyword":"And ","keywordType":"Conjunction","text":"an order for \"milk\""},{"id":"2","location":{"line":10,"column":5},"keyword":"And ","keywordType":"Conjunction","text":"an order for \"bread\""}]}},{"rule":{"id":"13","location":{"line":12,"column":3},"keyword":"Rule","name":"","description":"","children":[{"background":{"id":"6","location":{"line":13,"column":5},"keyword":"Background","name":"","description":"","steps":[{"id":"4","location":{"line":14,"column":7},"keyword":"Given ","keywordType":"Context","text":"an order for \"batteries\""},{"id":"5","location":{"line":15,"column":7},"keyword":"And ","keywordType":"Conjunction","text":"an order for \"light bulbs\""}]}},{"scenario":{"id":"9","tags":[],"location":{"line":17,"column":5},"keyword":"Example","name":"one scenario","description":"","steps":[{"id":"7","location":{"line":18,"column":7},"keyword":"When ","keywordType":"Action","text":"an action"},{"id":"8","location":{"line":19,"column":7},"keyword":"Then ","keywordType":"Outcome","text":"an outcome"}],"examples":[]}},{"scenario":{"id":"12","tags":[],"location":{"line":21,"column":5},"keyword":"Example","name":"another scenario","description":"","steps":[{"id":"10","location":{"line":22,"column":7},"keyword":"When ","keywordType":"Action","text":"an action"},{"id":"11","location":{"line":23,"column":7},"keyword":"Then ","keywordType":"Outcome","text":"an outcome"}],"examples":[]}}],"tags":[]}}]},"comments":[],"uri":"samples/rules-backgrounds/rules-backgrounds.feature"}}
|
4
|
+
{"pickle":{"id":"21","uri":"samples/rules-backgrounds/rules-backgrounds.feature","astNodeIds":["9"],"tags":[],"name":"one scenario","language":"en","steps":[{"id":"14","text":"an order for \"eggs\"","type":"Context","astNodeIds":["0"]},{"id":"15","text":"an order for \"milk\"","type":"Context","astNodeIds":["1"]},{"id":"16","text":"an order for \"bread\"","type":"Context","astNodeIds":["2"]},{"id":"17","text":"an order for \"batteries\"","type":"Context","astNodeIds":["4"]},{"id":"18","text":"an order for \"light bulbs\"","type":"Context","astNodeIds":["5"]},{"id":"19","text":"an action","type":"Action","astNodeIds":["7"]},{"id":"20","text":"an outcome","type":"Outcome","astNodeIds":["8"]}]}}
|
5
|
+
{"pickle":{"id":"29","uri":"samples/rules-backgrounds/rules-backgrounds.feature","astNodeIds":["12"],"tags":[],"name":"another scenario","language":"en","steps":[{"id":"22","text":"an order for \"eggs\"","type":"Context","astNodeIds":["0"]},{"id":"23","text":"an order for \"milk\"","type":"Context","astNodeIds":["1"]},{"id":"24","text":"an order for \"bread\"","type":"Context","astNodeIds":["2"]},{"id":"25","text":"an order for \"batteries\"","type":"Context","astNodeIds":["4"]},{"id":"26","text":"an order for \"light bulbs\"","type":"Context","astNodeIds":["5"]},{"id":"27","text":"an action","type":"Action","astNodeIds":["10"]},{"id":"28","text":"an outcome","type":"Outcome","astNodeIds":["11"]}]}}
|
6
|
+
{"stepDefinition":{"id":"30","pattern":{"type":"CUCUMBER_EXPRESSION","source":"an order for {string}"},"sourceReference":{"uri":"samples/rules-backgrounds/rules-backgrounds.ts","location":{"line":3}}}}
|
7
|
+
{"stepDefinition":{"id":"31","pattern":{"type":"CUCUMBER_EXPRESSION","source":"an action"},"sourceReference":{"uri":"samples/rules-backgrounds/rules-backgrounds.ts","location":{"line":7}}}}
|
8
|
+
{"stepDefinition":{"id":"32","pattern":{"type":"CUCUMBER_EXPRESSION","source":"an outcome"},"sourceReference":{"uri":"samples/rules-backgrounds/rules-backgrounds.ts","location":{"line":11}}}}
|
9
|
+
{"testRunStarted":{"id":"33","timestamp":{"seconds":0,"nanos":0}}}
|
10
|
+
{"testCase":{"id":"34","pickleId":"21","testSteps":[{"id":"35","pickleStepId":"14","stepDefinitionIds":["30"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"start":13,"value":"\"eggs\"","children":[{"start":14,"value":"eggs","children":[{"children":[]}]},{"children":[{"children":[]}]}]},"parameterTypeName":"string"}]}]},{"id":"36","pickleStepId":"15","stepDefinitionIds":["30"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"start":13,"value":"\"milk\"","children":[{"start":14,"value":"milk","children":[{"children":[]}]},{"children":[{"children":[]}]}]},"parameterTypeName":"string"}]}]},{"id":"37","pickleStepId":"16","stepDefinitionIds":["30"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"start":13,"value":"\"bread\"","children":[{"start":14,"value":"bread","children":[{"children":[]}]},{"children":[{"children":[]}]}]},"parameterTypeName":"string"}]}]},{"id":"38","pickleStepId":"17","stepDefinitionIds":["30"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"start":13,"value":"\"batteries\"","children":[{"start":14,"value":"batteries","children":[{"children":[]}]},{"children":[{"children":[]}]}]},"parameterTypeName":"string"}]}]},{"id":"39","pickleStepId":"18","stepDefinitionIds":["30"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"start":13,"value":"\"light bulbs\"","children":[{"start":14,"value":"light bulbs","children":[{"children":[]}]},{"children":[{"children":[]}]}]},"parameterTypeName":"string"}]}]},{"id":"40","pickleStepId":"19","stepDefinitionIds":["31"],"stepMatchArgumentsLists":[{"stepMatchArguments":[]}]},{"id":"41","pickleStepId":"20","stepDefinitionIds":["32"],"stepMatchArgumentsLists":[{"stepMatchArguments":[]}]}],"testRunStartedId":"33"}}
|
11
|
+
{"testCase":{"id":"42","pickleId":"29","testSteps":[{"id":"43","pickleStepId":"22","stepDefinitionIds":["30"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"start":13,"value":"\"eggs\"","children":[{"start":14,"value":"eggs","children":[{"children":[]}]},{"children":[{"children":[]}]}]},"parameterTypeName":"string"}]}]},{"id":"44","pickleStepId":"23","stepDefinitionIds":["30"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"start":13,"value":"\"milk\"","children":[{"start":14,"value":"milk","children":[{"children":[]}]},{"children":[{"children":[]}]}]},"parameterTypeName":"string"}]}]},{"id":"45","pickleStepId":"24","stepDefinitionIds":["30"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"start":13,"value":"\"bread\"","children":[{"start":14,"value":"bread","children":[{"children":[]}]},{"children":[{"children":[]}]}]},"parameterTypeName":"string"}]}]},{"id":"46","pickleStepId":"25","stepDefinitionIds":["30"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"start":13,"value":"\"batteries\"","children":[{"start":14,"value":"batteries","children":[{"children":[]}]},{"children":[{"children":[]}]}]},"parameterTypeName":"string"}]}]},{"id":"47","pickleStepId":"26","stepDefinitionIds":["30"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"start":13,"value":"\"light bulbs\"","children":[{"start":14,"value":"light bulbs","children":[{"children":[]}]},{"children":[{"children":[]}]}]},"parameterTypeName":"string"}]}]},{"id":"48","pickleStepId":"27","stepDefinitionIds":["31"],"stepMatchArgumentsLists":[{"stepMatchArguments":[]}]},{"id":"49","pickleStepId":"28","stepDefinitionIds":["32"],"stepMatchArgumentsLists":[{"stepMatchArguments":[]}]}],"testRunStartedId":"33"}}
|
12
|
+
{"testCaseStarted":{"id":"50","testCaseId":"34","timestamp":{"seconds":0,"nanos":1000000},"attempt":0}}
|
13
|
+
{"testStepStarted":{"testCaseStartedId":"50","testStepId":"35","timestamp":{"seconds":0,"nanos":2000000}}}
|
14
|
+
{"testStepFinished":{"testCaseStartedId":"50","testStepId":"35","testStepResult":{"status":"PASSED","duration":{"seconds":0,"nanos":1000000}},"timestamp":{"seconds":0,"nanos":3000000}}}
|
15
|
+
{"testStepStarted":{"testCaseStartedId":"50","testStepId":"36","timestamp":{"seconds":0,"nanos":4000000}}}
|
16
|
+
{"testStepFinished":{"testCaseStartedId":"50","testStepId":"36","testStepResult":{"status":"PASSED","duration":{"seconds":0,"nanos":1000000}},"timestamp":{"seconds":0,"nanos":5000000}}}
|
17
|
+
{"testStepStarted":{"testCaseStartedId":"50","testStepId":"37","timestamp":{"seconds":0,"nanos":6000000}}}
|
18
|
+
{"testStepFinished":{"testCaseStartedId":"50","testStepId":"37","testStepResult":{"status":"PASSED","duration":{"seconds":0,"nanos":1000000}},"timestamp":{"seconds":0,"nanos":7000000}}}
|
19
|
+
{"testStepStarted":{"testCaseStartedId":"50","testStepId":"38","timestamp":{"seconds":0,"nanos":8000000}}}
|
20
|
+
{"testStepFinished":{"testCaseStartedId":"50","testStepId":"38","testStepResult":{"status":"PASSED","duration":{"seconds":0,"nanos":1000000}},"timestamp":{"seconds":0,"nanos":9000000}}}
|
21
|
+
{"testStepStarted":{"testCaseStartedId":"50","testStepId":"39","timestamp":{"seconds":0,"nanos":10000000}}}
|
22
|
+
{"testStepFinished":{"testCaseStartedId":"50","testStepId":"39","testStepResult":{"status":"PASSED","duration":{"seconds":0,"nanos":1000000}},"timestamp":{"seconds":0,"nanos":11000000}}}
|
23
|
+
{"testStepStarted":{"testCaseStartedId":"50","testStepId":"40","timestamp":{"seconds":0,"nanos":12000000}}}
|
24
|
+
{"testStepFinished":{"testCaseStartedId":"50","testStepId":"40","testStepResult":{"status":"PASSED","duration":{"seconds":0,"nanos":1000000}},"timestamp":{"seconds":0,"nanos":13000000}}}
|
25
|
+
{"testStepStarted":{"testCaseStartedId":"50","testStepId":"41","timestamp":{"seconds":0,"nanos":14000000}}}
|
26
|
+
{"testStepFinished":{"testCaseStartedId":"50","testStepId":"41","testStepResult":{"status":"PASSED","duration":{"seconds":0,"nanos":1000000}},"timestamp":{"seconds":0,"nanos":15000000}}}
|
27
|
+
{"testCaseFinished":{"testCaseStartedId":"50","timestamp":{"seconds":0,"nanos":16000000},"willBeRetried":false}}
|
28
|
+
{"testCaseStarted":{"id":"51","testCaseId":"42","timestamp":{"seconds":0,"nanos":17000000},"attempt":0}}
|
29
|
+
{"testStepStarted":{"testCaseStartedId":"51","testStepId":"43","timestamp":{"seconds":0,"nanos":18000000}}}
|
30
|
+
{"testStepFinished":{"testCaseStartedId":"51","testStepId":"43","testStepResult":{"status":"PASSED","duration":{"seconds":0,"nanos":1000000}},"timestamp":{"seconds":0,"nanos":19000000}}}
|
31
|
+
{"testStepStarted":{"testCaseStartedId":"51","testStepId":"44","timestamp":{"seconds":0,"nanos":20000000}}}
|
32
|
+
{"testStepFinished":{"testCaseStartedId":"51","testStepId":"44","testStepResult":{"status":"PASSED","duration":{"seconds":0,"nanos":1000000}},"timestamp":{"seconds":0,"nanos":21000000}}}
|
33
|
+
{"testStepStarted":{"testCaseStartedId":"51","testStepId":"45","timestamp":{"seconds":0,"nanos":22000000}}}
|
34
|
+
{"testStepFinished":{"testCaseStartedId":"51","testStepId":"45","testStepResult":{"status":"PASSED","duration":{"seconds":0,"nanos":1000000}},"timestamp":{"seconds":0,"nanos":23000000}}}
|
35
|
+
{"testStepStarted":{"testCaseStartedId":"51","testStepId":"46","timestamp":{"seconds":0,"nanos":24000000}}}
|
36
|
+
{"testStepFinished":{"testCaseStartedId":"51","testStepId":"46","testStepResult":{"status":"PASSED","duration":{"seconds":0,"nanos":1000000}},"timestamp":{"seconds":0,"nanos":25000000}}}
|
37
|
+
{"testStepStarted":{"testCaseStartedId":"51","testStepId":"47","timestamp":{"seconds":0,"nanos":26000000}}}
|
38
|
+
{"testStepFinished":{"testCaseStartedId":"51","testStepId":"47","testStepResult":{"status":"PASSED","duration":{"seconds":0,"nanos":1000000}},"timestamp":{"seconds":0,"nanos":27000000}}}
|
39
|
+
{"testStepStarted":{"testCaseStartedId":"51","testStepId":"48","timestamp":{"seconds":0,"nanos":28000000}}}
|
40
|
+
{"testStepFinished":{"testCaseStartedId":"51","testStepId":"48","testStepResult":{"status":"PASSED","duration":{"seconds":0,"nanos":1000000}},"timestamp":{"seconds":0,"nanos":29000000}}}
|
41
|
+
{"testStepStarted":{"testCaseStartedId":"51","testStepId":"49","timestamp":{"seconds":0,"nanos":30000000}}}
|
42
|
+
{"testStepFinished":{"testCaseStartedId":"51","testStepId":"49","testStepResult":{"status":"PASSED","duration":{"seconds":0,"nanos":1000000}},"timestamp":{"seconds":0,"nanos":31000000}}}
|
43
|
+
{"testCaseFinished":{"testCaseStartedId":"51","timestamp":{"seconds":0,"nanos":32000000},"willBeRetried":false}}
|
44
|
+
{"testRunFinished":{"testRunStartedId":"33","timestamp":{"seconds":0,"nanos":33000000},"success":true}}
|
@@ -0,0 +1,6 @@
|
|
1
|
+
Feature: Unused steps
|
2
|
+
Depending on the run, some step definitions may not be used. This is valid, and the step definitions are still
|
3
|
+
includes in the stream of messages, which allows formatters to report on step usage if desired.
|
4
|
+
|
5
|
+
Scenario: a scenario
|
6
|
+
Given a step that is used
|
@@ -0,0 +1,13 @@
|
|
1
|
+
{"meta":{"protocolVersion":"28.0.0","implementation":{"name":"fake-cucumber","version":"123.45.6"},"cpu":{"name":"arm64"},"os":{"name":"darwin","version":"24.5.0"},"runtime":{"name":"Node.js","version":"24.4.1"},"ci":{"name":"GitHub Actions","url":"https://github.com/cucumber-ltd/shouty.rb/actions/runs/154666429","buildNumber":"154666429","git":{"revision":"99684bcacf01d95875834d87903dcb072306c9ad","remote":"https://github.com/cucumber-ltd/shouty.rb.git","branch":"main"}}}}
|
2
|
+
{"source":{"data":"Feature: Unused steps\n Depending on the run, some step definitions may not be used. This is valid, and the step definitions are still\n includes in the stream of messages, which allows formatters to report on step usage if desired.\n\n Scenario: a scenario\n Given a step that is used\n","uri":"samples/unused-steps/unused-steps.feature","mediaType":"text/x.cucumber.gherkin+plain"}}
|
3
|
+
{"gherkinDocument":{"feature":{"tags":[],"location":{"line":1,"column":1},"language":"en","keyword":"Feature","name":"Unused steps","description":" Depending on the run, some step definitions may not be used. This is valid, and the step definitions are still\n includes in the stream of messages, which allows formatters to report on step usage if desired.","children":[{"scenario":{"id":"1","tags":[],"location":{"line":5,"column":3},"keyword":"Scenario","name":"a scenario","description":"","steps":[{"id":"0","location":{"line":6,"column":5},"keyword":"Given ","keywordType":"Context","text":"a step that is used"}],"examples":[]}}]},"comments":[],"uri":"samples/unused-steps/unused-steps.feature"}}
|
4
|
+
{"pickle":{"id":"3","uri":"samples/unused-steps/unused-steps.feature","astNodeIds":["1"],"tags":[],"name":"a scenario","language":"en","steps":[{"id":"2","text":"a step that is used","type":"Context","astNodeIds":["0"]}]}}
|
5
|
+
{"stepDefinition":{"id":"4","pattern":{"type":"CUCUMBER_EXPRESSION","source":"a step that is used"},"sourceReference":{"uri":"samples/unused-steps/unused-steps.ts","location":{"line":3}}}}
|
6
|
+
{"stepDefinition":{"id":"5","pattern":{"type":"CUCUMBER_EXPRESSION","source":"a step that is not used"},"sourceReference":{"uri":"samples/unused-steps/unused-steps.ts","location":{"line":7}}}}
|
7
|
+
{"testRunStarted":{"id":"6","timestamp":{"seconds":0,"nanos":0}}}
|
8
|
+
{"testCase":{"id":"7","pickleId":"3","testSteps":[{"id":"8","pickleStepId":"2","stepDefinitionIds":["4"],"stepMatchArgumentsLists":[{"stepMatchArguments":[]}]}],"testRunStartedId":"6"}}
|
9
|
+
{"testCaseStarted":{"id":"9","testCaseId":"7","timestamp":{"seconds":0,"nanos":1000000},"attempt":0}}
|
10
|
+
{"testStepStarted":{"testCaseStartedId":"9","testStepId":"8","timestamp":{"seconds":0,"nanos":2000000}}}
|
11
|
+
{"testStepFinished":{"testCaseStartedId":"9","testStepId":"8","testStepResult":{"status":"PASSED","duration":{"seconds":0,"nanos":1000000}},"timestamp":{"seconds":0,"nanos":3000000}}}
|
12
|
+
{"testCaseFinished":{"testCaseStartedId":"9","timestamp":{"seconds":0,"nanos":4000000},"willBeRetried":false}}
|
13
|
+
{"testRunFinished":{"testRunStartedId":"6","timestamp":{"seconds":0,"nanos":5000000},"success":true}}
|
@@ -0,0 +1,55 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# CompatibilityKit contains a series of helper methods to determine paths for each relevant item(s)
|
4
|
+
class CompatibilityKit
|
5
|
+
class << self
|
6
|
+
# Return the paths for each example that is of 'gherkin' type
|
7
|
+
def gherkin
|
8
|
+
Dir.entries(cck_features_folder_location).select do |file_or_folder|
|
9
|
+
next if file_or_folder.start_with?('.')
|
10
|
+
|
11
|
+
gherkin_example?(File.join(cck_features_folder_location, file_or_folder))
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
# Return the paths for each example that is of 'markdown' type
|
16
|
+
# NB: At the moment this (1 example - 'markdown'), isn't compatible with cucumber-ruby
|
17
|
+
def markdown
|
18
|
+
Dir.entries(cck_features_folder_location).select do |file_or_folder|
|
19
|
+
next if file_or_folder.start_with?('.')
|
20
|
+
|
21
|
+
markdown_example?(File.join(cck_features_folder_location, file_or_folder))
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
# Return the path for a specific example scenario based on its name
|
26
|
+
#
|
27
|
+
# i.e. 'attachments' would return the fully qualified path to the attachments folder
|
28
|
+
# which contains the feature, the ndjson file and any applicable assets to run the example
|
29
|
+
def feature_code_for(example_name)
|
30
|
+
path = File.join(cck_features_folder_location, example_name)
|
31
|
+
|
32
|
+
return path if File.directory?(path)
|
33
|
+
|
34
|
+
raise ArgumentError, "No feature code directory found in gem for CCK example: #{example_name}"
|
35
|
+
end
|
36
|
+
|
37
|
+
private
|
38
|
+
|
39
|
+
def cck_features_folder_location
|
40
|
+
File.expand_path("#{File.dirname(__FILE__)}/../../features/")
|
41
|
+
end
|
42
|
+
|
43
|
+
def gherkin_example?(example_folder)
|
44
|
+
file_type_in_folder?('.feature', example_folder)
|
45
|
+
end
|
46
|
+
|
47
|
+
def markdown_example?(example_folder)
|
48
|
+
file_type_in_folder?('.md', example_folder)
|
49
|
+
end
|
50
|
+
|
51
|
+
def file_type_in_folder?(extension, folder)
|
52
|
+
Dir.entries(folder).any? { |file| File.extname(file) == extension }
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cucumber-compatibility-kit
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 22.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Aurélien Reeves
|
@@ -9,10 +9,9 @@ authors:
|
|
9
9
|
- Vincent Prêtre
|
10
10
|
- Luke Hill
|
11
11
|
- Cucumber Ltd
|
12
|
-
autorequire:
|
13
12
|
bindir: bin
|
14
13
|
cert_chain: []
|
15
|
-
date:
|
14
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
16
15
|
dependencies:
|
17
16
|
- !ruby/object:Gem::Dependency
|
18
17
|
name: rspec
|
@@ -34,14 +33,14 @@ dependencies:
|
|
34
33
|
requirements:
|
35
34
|
- - "~>"
|
36
35
|
- !ruby/object:Gem::Version
|
37
|
-
version: 1.
|
36
|
+
version: 1.80.0
|
38
37
|
type: :development
|
39
38
|
prerelease: false
|
40
39
|
version_requirements: !ruby/object:Gem::Requirement
|
41
40
|
requirements:
|
42
41
|
- - "~>"
|
43
42
|
- !ruby/object:Gem::Version
|
44
|
-
version: 1.
|
43
|
+
version: 1.80.0
|
45
44
|
- !ruby/object:Gem::Dependency
|
46
45
|
name: rubocop-performance
|
47
46
|
requirement: !ruby/object:Gem::Requirement
|
@@ -62,14 +61,14 @@ dependencies:
|
|
62
61
|
requirements:
|
63
62
|
- - "~>"
|
64
63
|
- !ruby/object:Gem::Version
|
65
|
-
version: 3.
|
64
|
+
version: 3.7.0
|
66
65
|
type: :development
|
67
66
|
prerelease: false
|
68
67
|
version_requirements: !ruby/object:Gem::Requirement
|
69
68
|
requirements:
|
70
69
|
- - "~>"
|
71
70
|
- !ruby/object:Gem::Version
|
72
|
-
version: 3.
|
71
|
+
version: 3.7.0
|
73
72
|
description: Kit to check compatibility with official cucumber ruby implementation
|
74
73
|
email: cukebot@cucumber.io
|
75
74
|
executables: []
|
@@ -78,15 +77,21 @@ extra_rdoc_files: []
|
|
78
77
|
files:
|
79
78
|
- LICENSE
|
80
79
|
- README.md
|
80
|
+
- features/ambiguous/ambiguous.feature
|
81
|
+
- features/ambiguous/ambiguous.ndjson
|
81
82
|
- features/attachments/attachments.feature
|
82
83
|
- features/attachments/attachments.ndjson
|
83
84
|
- features/attachments/cucumber.jpeg
|
84
85
|
- features/attachments/cucumber.png
|
85
86
|
- features/attachments/document.pdf
|
87
|
+
- features/backgrounds/backgrounds.feature
|
88
|
+
- features/backgrounds/backgrounds.ndjson
|
86
89
|
- features/cdata/cdata.feature
|
87
90
|
- features/cdata/cdata.ndjson
|
88
91
|
- features/data-tables/data-tables.feature
|
89
92
|
- features/data-tables/data-tables.ndjson
|
93
|
+
- features/doc-strings/doc-strings.feature
|
94
|
+
- features/doc-strings/doc-strings.ndjson
|
90
95
|
- features/empty/empty.feature
|
91
96
|
- features/empty/empty.ndjson
|
92
97
|
- features/examples-tables-attachment/cucumber.jpeg
|
@@ -95,6 +100,14 @@ files:
|
|
95
100
|
- features/examples-tables-attachment/examples-tables-attachment.ndjson
|
96
101
|
- features/examples-tables/examples-tables.feature
|
97
102
|
- features/examples-tables/examples-tables.ndjson
|
103
|
+
- features/global-hooks-afterall-error/global-hooks-afterall-error.feature
|
104
|
+
- features/global-hooks-afterall-error/global-hooks-afterall-error.ndjson
|
105
|
+
- features/global-hooks-attachments/global-hooks-attachments.feature
|
106
|
+
- features/global-hooks-attachments/global-hooks-attachments.ndjson
|
107
|
+
- features/global-hooks-beforeall-error/global-hooks-beforeall-error.feature
|
108
|
+
- features/global-hooks-beforeall-error/global-hooks-beforeall-error.ndjson
|
109
|
+
- features/global-hooks/global-hooks.feature
|
110
|
+
- features/global-hooks/global-hooks.ndjson
|
98
111
|
- features/hooks-attachment/cucumber.svg
|
99
112
|
- features/hooks-attachment/hooks-attachment.feature
|
100
113
|
- features/hooks-attachment/hooks-attachment.ndjson
|
@@ -108,13 +121,26 @@ files:
|
|
108
121
|
- features/markdown/markdown.ndjson
|
109
122
|
- features/minimal/minimal.feature
|
110
123
|
- features/minimal/minimal.ndjson
|
124
|
+
- features/multiple-features-reversed/multiple-features-reversed-1.feature
|
125
|
+
- features/multiple-features-reversed/multiple-features-reversed-2.feature
|
126
|
+
- features/multiple-features-reversed/multiple-features-reversed-3.feature
|
127
|
+
- features/multiple-features-reversed/multiple-features-reversed.arguments.txt
|
128
|
+
- features/multiple-features-reversed/multiple-features-reversed.ndjson
|
129
|
+
- features/multiple-features/multiple-features-1.feature
|
130
|
+
- features/multiple-features/multiple-features-2.feature
|
131
|
+
- features/multiple-features/multiple-features-3.feature
|
132
|
+
- features/multiple-features/multiple-features.ndjson
|
111
133
|
- features/parameter-types/parameter-types.feature
|
112
134
|
- features/parameter-types/parameter-types.ndjson
|
113
135
|
- features/pending/pending.feature
|
114
136
|
- features/pending/pending.ndjson
|
137
|
+
- features/regular-expression/regular-expression.feature
|
138
|
+
- features/regular-expression/regular-expression.ndjson
|
115
139
|
- features/retry/retry.arguments.txt
|
116
140
|
- features/retry/retry.feature
|
117
141
|
- features/retry/retry.ndjson
|
142
|
+
- features/rules-backgrounds/rules-backgrounds.feature
|
143
|
+
- features/rules-backgrounds/rules-backgrounds.ndjson
|
118
144
|
- features/rules/rules.feature
|
119
145
|
- features/rules/rules.ndjson
|
120
146
|
- features/skipped/skipped.feature
|
@@ -125,7 +151,9 @@ files:
|
|
125
151
|
- features/undefined/undefined.ndjson
|
126
152
|
- features/unknown-parameter-type/unknown-parameter-type.feature
|
127
153
|
- features/unknown-parameter-type/unknown-parameter-type.ndjson
|
128
|
-
-
|
154
|
+
- features/unused-steps/unused-steps.feature
|
155
|
+
- features/unused-steps/unused-steps.ndjson
|
156
|
+
- lib/cucumber/compatibility_kit.rb
|
129
157
|
homepage: https://github.com/cucumber/compatibility-kit
|
130
158
|
licenses:
|
131
159
|
- MIT
|
@@ -135,7 +163,6 @@ metadata:
|
|
135
163
|
documentation_uri: https://github.com/cucumber/compatibility-kit/blob/main/CONTRIBUTING.md
|
136
164
|
mailing_list_uri: https://groups.google.com/forum/#!forum/cukes
|
137
165
|
source_code_uri: https://github.com/cucumber/compatibility-kit/blob/main/ruby
|
138
|
-
post_install_message:
|
139
166
|
rdoc_options:
|
140
167
|
- "--charset=UTF-8"
|
141
168
|
require_paths:
|
@@ -144,15 +171,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
144
171
|
requirements:
|
145
172
|
- - ">="
|
146
173
|
- !ruby/object:Gem::Version
|
147
|
-
version: '3.
|
174
|
+
version: '3.1'
|
148
175
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
149
176
|
requirements:
|
150
177
|
- - ">="
|
151
178
|
- !ruby/object:Gem::Version
|
152
179
|
version: 3.2.8
|
153
180
|
requirements: []
|
154
|
-
rubygems_version: 3.
|
155
|
-
signing_key:
|
181
|
+
rubygems_version: 3.6.9
|
156
182
|
specification_version: 4
|
157
|
-
summary: cucumber-compatibility-kit-
|
183
|
+
summary: cucumber-compatibility-kit-22.0.0
|
158
184
|
test_files: []
|