From a85446346980109875195f517e4790a2cc08ff44 Mon Sep 17 00:00:00 2001 From: "M.P. Korstanje" Date: Thu, 20 Nov 2025 14:02:05 +0100 Subject: [PATCH 1/6] Test interpolated data tables and doc string arguments --- .../jsonformatter/JsonReportWriter.java | 32 ++++++++----- .../pickle-arguments-interpolated.ndjson | 32 +++++++++++++ ...kle-arguments-interpolated.ndjson.jvm.json | 1 + .../pickle-arguments-interpolated.ndjson | 32 +++++++++++++ ...kle-arguments-interpolated.ndjson.jvm.json | 1 + .../pickle-arguments-interpolated.ndjson | 47 +++++++++++++++++++ ...kle-arguments-interpolated.ndjson.jvm.json | 1 + .../pickle-arguments-interpolated.feature | 20 ++++++++ 8 files changed, 154 insertions(+), 12 deletions(-) create mode 100644 testdata/cucumber-jvm/7.26.0-java/testdata/pickle-arguments-interpolated.ndjson create mode 100644 testdata/cucumber-jvm/7.26.0-java/testdata/pickle-arguments-interpolated.ndjson.jvm.json create mode 100644 testdata/cucumber-jvm/7.26.0-java8/testdata/pickle-arguments-interpolated.ndjson create mode 100644 testdata/cucumber-jvm/7.26.0-java8/testdata/pickle-arguments-interpolated.ndjson.jvm.json create mode 100644 testdata/cucumber-jvm/7.26.0-scala/testdata/pickle-arguments-interpolated.ndjson create mode 100644 testdata/cucumber-jvm/7.26.0-scala/testdata/pickle-arguments-interpolated.ndjson.jvm.json create mode 100644 testdata/features/pickle-arguments-interpolated.feature diff --git a/java/src/main/java/io/cucumber/jsonformatter/JsonReportWriter.java b/java/src/main/java/io/cucumber/jsonformatter/JsonReportWriter.java index 2303939..af8ea78 100644 --- a/java/src/main/java/io/cucumber/jsonformatter/JsonReportWriter.java +++ b/java/src/main/java/io/cucumber/jsonformatter/JsonReportWriter.java @@ -19,7 +19,6 @@ import io.cucumber.messages.types.Attachment; import io.cucumber.messages.types.AttachmentContentEncoding; import io.cucumber.messages.types.Background; -import io.cucumber.messages.types.DataTable; import io.cucumber.messages.types.DocString; import io.cucumber.messages.types.Exception; import io.cucumber.messages.types.Feature; @@ -29,7 +28,11 @@ import io.cucumber.messages.types.HookType; import io.cucumber.messages.types.Location; import io.cucumber.messages.types.Pickle; +import io.cucumber.messages.types.PickleDocString; import io.cucumber.messages.types.PickleStep; +import io.cucumber.messages.types.PickleStepArgument; +import io.cucumber.messages.types.PickleTable; +import io.cucumber.messages.types.PickleTableCell; import io.cucumber.messages.types.PickleTag; import io.cucumber.messages.types.Rule; import io.cucumber.messages.types.RuleChild; @@ -39,7 +42,6 @@ import io.cucumber.messages.types.StepDefinition; import io.cucumber.messages.types.StepMatchArgument; import io.cucumber.messages.types.StepMatchArgumentsList; -import io.cucumber.messages.types.TableCell; import io.cucumber.messages.types.Tag; import io.cucumber.messages.types.TestCaseStarted; import io.cucumber.messages.types.TestStep; @@ -418,8 +420,8 @@ private Optional createTestStep(JvmElementData data, TestStepFinished t createJvmMatch(testStep), pickleStep.getText(), createJvmResult(testStepFinished.getTestStepResult()), - createJvmDocString(step), - createJvmDataTableRows(step), + createJvmDocString(pickleStep, step), + createJvmDataTableRows(pickleStep), createHookSteps(beforeStepHooks), createHookSteps(afterStepHooks), createEmbeddings(attachments), @@ -453,25 +455,31 @@ private JvmArgument createJvmArgument(StepMatchArgument argument) { group.getStart().orElse(null)); } - private List createJvmDataTableRows(Step step) { - return step.getDataTable().map(this::createJvmDataTableRows).orElse(null); + private List createJvmDataTableRows(PickleStep pickleStep) { + return pickleStep.getArgument().flatMap(PickleStepArgument::getDataTable).map(this::createJvmDataTableRows).orElse(null); } - private List createJvmDataTableRows(DataTable argument) { + private List createJvmDataTableRows(PickleTable argument) { return argument.getRows().stream() .map(row -> new JvmDataTableRow(row.getCells().stream() - .map(TableCell::getValue) + .map(PickleTableCell::getValue) .collect(toList()))) .collect(toList()); } - private JvmDocString createJvmDocString(Step step) { - return step.getDocString().map(this::createJvmDocString).orElse(null); + private JvmDocString createJvmDocString(PickleStep pickleStep, Step step) { + return pickleStep.getArgument(). + flatMap(PickleStepArgument::getDocString) + .map(docString -> createJvmDocString(docString, step)).orElse(null); } - private JvmDocString createJvmDocString(DocString docString) { + private JvmDocString createJvmDocString(PickleDocString docString, Step step) { return new JvmDocString( - docString.getLocation().getLine(), + step.getDocString() + .map(DocString::getLocation) + .map(Location::getLine) + // Can't happen. + .orElseGet(() -> step.getLocation().getLine()), docString.getContent(), docString.getMediaType().orElse(null)); } diff --git a/testdata/cucumber-jvm/7.26.0-java/testdata/pickle-arguments-interpolated.ndjson b/testdata/cucumber-jvm/7.26.0-java/testdata/pickle-arguments-interpolated.ndjson new file mode 100644 index 0000000..cf81147 --- /dev/null +++ b/testdata/cucumber-jvm/7.26.0-java/testdata/pickle-arguments-interpolated.ndjson @@ -0,0 +1,32 @@ +{"meta":{"protocolVersion":"28.0.0","implementation":{"name":"cucumber-jvm","version":"7.26.0"},"runtime":{"name":"OpenJDK 64-Bit Server VM","version":"21.0.4+7-LTS"},"os":{"name":"Linux"},"cpu":{"name":"amd64"}}} +{"testRunStarted":{"timestamp":{"seconds":1763643504,"nanos":81718890}}} +{"source":{"uri":"file:///home/mpkorstanje/Projects/cucumber/json-formatter/testdata/cucumber-jvm/7.26.0-java/../../features/pickle-arguments-interpolated.feature","data":"Feature: pickle-arguments-interpolated\n\n Scenario Outline: docstring\n Given this step accepts an docstring\n \"\"\"application/json\n { \"key\": \"\" }\n \"\"\"\n\n Examples:\n | key |\n | value |\n\n Scenario Outline: datatable\n Given this step accepts an datatable\n | key |\n | |\n\n Examples:\n | key |\n | value |","mediaType":"text/x.cucumber.gherkin+plain"}} +{"gherkinDocument":{"uri":"file:///home/mpkorstanje/Projects/cucumber/json-formatter/testdata/cucumber-jvm/7.26.0-java/../../features/pickle-arguments-interpolated.feature","feature":{"location":{"line":1,"column":1},"tags":[],"language":"en","keyword":"Feature","name":"pickle-arguments-interpolated","description":"","children":[{"scenario":{"location":{"line":3,"column":3},"tags":[],"keyword":"Scenario Outline","name":"docstring","description":"","steps":[{"location":{"line":4,"column":5},"keyword":"Given ","keywordType":"Context","text":"this step accepts an docstring","docString":{"location":{"line":5,"column":7},"mediaType":"application/json","content":"{ \"key\": \"\" }","delimiter":"\"\"\""},"id":"88389ba9-57d0-467d-a5a0-0f0481e83a44"}],"examples":[{"location":{"line":9,"column":5},"tags":[],"keyword":"Examples","name":"","description":"","tableHeader":{"location":{"line":10,"column":7},"cells":[{"location":{"line":10,"column":9},"value":"key"}],"id":"6ec80553-ef51-4eaa-8f38-8b946d38f185"},"tableBody":[{"location":{"line":11,"column":7},"cells":[{"location":{"line":11,"column":9},"value":"value"}],"id":"7043318e-9826-4910-a468-1eaaab316ac3"}],"id":"3c1fedf4-a017-44fd-94eb-c7d5e67b08eb"}],"id":"9d4661a7-51de-4281-9c94-ebb6a73a4ccb"}},{"scenario":{"location":{"line":13,"column":3},"tags":[],"keyword":"Scenario Outline","name":"datatable","description":"","steps":[{"location":{"line":14,"column":5},"keyword":"Given ","keywordType":"Context","text":"this step accepts an datatable","dataTable":{"location":{"line":15,"column":7},"rows":[{"location":{"line":15,"column":7},"cells":[{"location":{"line":15,"column":9},"value":"key"}],"id":"b4a19f44-0da8-48dd-9af1-54d0a5f8f721"},{"location":{"line":16,"column":7},"cells":[{"location":{"line":16,"column":9},"value":""}],"id":"1a605085-9e9d-44db-8ffd-f723b536f27f"}]},"id":"abf51b7e-8d9f-454f-942c-097feff73ade"}],"examples":[{"location":{"line":18,"column":5},"tags":[],"keyword":"Examples","name":"","description":"","tableHeader":{"location":{"line":19,"column":7},"cells":[{"location":{"line":19,"column":9},"value":"key"}],"id":"06d0aa88-994f-4ae4-b662-7013dec1ab63"},"tableBody":[{"location":{"line":20,"column":7},"cells":[{"location":{"line":20,"column":9},"value":"value"}],"id":"2d7817f7-0439-4230-a589-189eb0cce3de"}],"id":"f5d4adf1-988a-4a90-a3ec-6b42cf4712f1"}],"id":"f8918518-2ada-4414-b5ea-156036f106cb"}}]},"comments":[]}} +{"pickle":{"id":"94f6e87f-cab9-4681-b48e-9a02bbec0891","uri":"file:///home/mpkorstanje/Projects/cucumber/json-formatter/testdata/cucumber-jvm/7.26.0-java/../../features/pickle-arguments-interpolated.feature","name":"docstring","language":"en","steps":[{"argument":{"docString":{"mediaType":"application/json","content":"{ \"key\": \"\" }"}},"astNodeIds":["88389ba9-57d0-467d-a5a0-0f0481e83a44","7043318e-9826-4910-a468-1eaaab316ac3"],"id":"12557472-18fb-40ce-a5c5-0638b6bc1754","type":"Context","text":"this step accepts an docstring"}],"tags":[],"astNodeIds":["9d4661a7-51de-4281-9c94-ebb6a73a4ccb","7043318e-9826-4910-a468-1eaaab316ac3"]}} +{"pickle":{"id":"06c7d1a2-7e2a-4a0b-8edc-efc2e8d4d07c","uri":"file:///home/mpkorstanje/Projects/cucumber/json-formatter/testdata/cucumber-jvm/7.26.0-java/../../features/pickle-arguments-interpolated.feature","name":"datatable","language":"en","steps":[{"argument":{"dataTable":{"rows":[{"cells":[{"value":"key"}]},{"cells":[{"value":""}]}]}},"astNodeIds":["abf51b7e-8d9f-454f-942c-097feff73ade","2d7817f7-0439-4230-a589-189eb0cce3de"],"id":"71812c02-deb4-4337-bc34-fe5a3df49019","type":"Context","text":"this step accepts an datatable"}],"tags":[],"astNodeIds":["f8918518-2ada-4414-b5ea-156036f106cb","2d7817f7-0439-4230-a589-189eb0cce3de"]}} +{"hook":{"id":"a2a5fcc8-3c78-4170-85c9-4862a7c60a5b","sourceReference":{"javaMethod":{"className":"io.cucumber.jsonformatter.StepDefinitions","methodName":"tagged_passing_before_attachments","methodParameterTypes":["io.cucumber.java.Scenario"]}},"tagExpression":"@attachments","type":"BEFORE_TEST_CASE"}} +{"hook":{"id":"9d0d2e50-0c81-4da9-9d5f-a6eceec04a20","sourceReference":{"javaMethod":{"className":"io.cucumber.jsonformatter.StepDefinitions","methodName":"tagged_failing_before_hook","methodParameterTypes":[]}},"tagExpression":"@failing_before","type":"BEFORE_TEST_CASE"}} +{"hook":{"id":"312c2c75-27d3-43b4-91e0-7141834b1861","sourceReference":{"javaMethod":{"className":"io.cucumber.jsonformatter.StepDefinitions","methodName":"tagged_failing_before_step_hook","methodParameterTypes":[]}},"tagExpression":"@failing_before_step","type":"BEFORE_TEST_STEP"}} +{"stepDefinition":{"id":"ce73b06f-43a5-49f2-bf19-989a54fae14f","pattern":{"source":"^.*pass.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaMethod":{"className":"io.cucumber.jsonformatter.StepDefinitions","methodName":"passing_step","methodParameterTypes":[]}}}} +{"stepDefinition":{"id":"bf2fdac7-3477-4f3a-9940-b36aecbff415","pattern":{"source":"^.*docstring.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaMethod":{"className":"io.cucumber.jsonformatter.StepDefinitions","methodName":"passing_step","methodParameterTypes":["io.cucumber.docstring.DocString"]}}}} +{"stepDefinition":{"id":"7b2d04b0-649c-43a7-98a3-8e4ab1db0bb9","pattern":{"source":"^.*datatable.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaMethod":{"className":"io.cucumber.jsonformatter.StepDefinitions","methodName":"passing_step","methodParameterTypes":["io.cucumber.datatable.DataTable"]}}}} +{"stepDefinition":{"id":"cf90a9fe-9659-4756-84f5-33a8f84ce8f0","pattern":{"source":"^.*pending.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaMethod":{"className":"io.cucumber.jsonformatter.StepDefinitions","methodName":"pending_step","methodParameterTypes":[]}}}} +{"stepDefinition":{"id":"d9bc896e-be25-4436-b94b-d009383e74b0","pattern":{"source":"^.*fail.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaMethod":{"className":"io.cucumber.jsonformatter.StepDefinitions","methodName":"failing_step","methodParameterTypes":[]}}}} +{"stepDefinition":{"id":"c141fc0e-f643-4163-b1db-7c1caefee07c","pattern":{"source":"^.*decaying.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaMethod":{"className":"io.cucumber.jsonformatter.StepDefinitions","methodName":"decaying_step","methodParameterTypes":[]}}}} +{"stepDefinition":{"id":"c2ec8fc0-892c-416a-abba-671f0c004840","pattern":{"source":"^I have (\\d+) cukes(?: in my (.*))?$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaMethod":{"className":"io.cucumber.jsonformatter.StepDefinitions","methodName":"cukes_in_something","methodParameterTypes":["int","java.lang.String"]}}}} +{"stepDefinition":{"id":"317b01ae-fa75-4783-aafe-05505bc94cb8","pattern":{"source":"^.*attach.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaMethod":{"className":"io.cucumber.jsonformatter.StepDefinitions","methodName":"attaching_step","methodParameterTypes":[]}}}} +{"stepDefinition":{"id":"a8b6ca92-8eea-4be2-8763-e45a84826482","pattern":{"source":"^.*ambiguous.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaMethod":{"className":"io.cucumber.jsonformatter.StepDefinitions","methodName":"ambiguous_step_a","methodParameterTypes":[]}}}} +{"stepDefinition":{"id":"7a5808ad-b484-45d9-bde9-0e4abf8680ca","pattern":{"source":"^.*ambiguous step.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaMethod":{"className":"io.cucumber.jsonformatter.StepDefinitions","methodName":"ambiguous_step_b","methodParameterTypes":[]}}}} +{"hook":{"id":"aebaa4ad-8502-4b42-b51e-7c3976d729cd","sourceReference":{"javaMethod":{"className":"io.cucumber.jsonformatter.StepDefinitions","methodName":"tagged_failing_after_step_hook","methodParameterTypes":[]}},"tagExpression":"@failing_after_step","type":"AFTER_TEST_STEP"}} +{"hook":{"id":"2173f5ef-3e64-422e-8cdf-ec73a2ba97c4","sourceReference":{"javaMethod":{"className":"io.cucumber.jsonformatter.StepDefinitions","methodName":"tagged_failing_after_hook","methodParameterTypes":[]}},"tagExpression":"@failing_after","type":"AFTER_TEST_CASE"}} +{"testCase":{"id":"a6746b65-211e-41eb-845f-92b985354964","pickleId":"94f6e87f-cab9-4681-b48e-9a02bbec0891","testSteps":[{"id":"54dac507-7b7b-4f2a-8bdc-134c245661ca","pickleStepId":"12557472-18fb-40ce-a5c5-0638b6bc1754","stepDefinitionIds":["bf2fdac7-3477-4f3a-9940-b36aecbff415"],"stepMatchArgumentsLists":[{"stepMatchArguments":[]}]}]}} +{"testCaseStarted":{"attempt":0,"id":"974e12b2-18fe-451f-90bd-9630380a7c53","testCaseId":"a6746b65-211e-41eb-845f-92b985354964","workerId":"io.cucumber.core.cli.Main.main()","timestamp":{"seconds":1763643504,"nanos":146635008}}} +{"testStepStarted":{"testCaseStartedId":"974e12b2-18fe-451f-90bd-9630380a7c53","testStepId":"54dac507-7b7b-4f2a-8bdc-134c245661ca","timestamp":{"seconds":1763643504,"nanos":154513263}}} +{"testStepFinished":{"testCaseStartedId":"974e12b2-18fe-451f-90bd-9630380a7c53","testStepId":"54dac507-7b7b-4f2a-8bdc-134c245661ca","testStepResult":{"duration":{"seconds":0,"nanos":653197},"status":"PASSED"},"timestamp":{"seconds":1763643504,"nanos":155166460}}} +{"testCaseFinished":{"testCaseStartedId":"974e12b2-18fe-451f-90bd-9630380a7c53","timestamp":{"seconds":1763643504,"nanos":158617147},"willBeRetried":false}} +{"testCase":{"id":"f7ed4c65-a224-4af3-9f18-f1762d29b5be","pickleId":"06c7d1a2-7e2a-4a0b-8edc-efc2e8d4d07c","testSteps":[{"id":"c1d3016d-d247-4477-b3cc-33f61a8b6ef2","pickleStepId":"71812c02-deb4-4337-bc34-fe5a3df49019","stepDefinitionIds":["7b2d04b0-649c-43a7-98a3-8e4ab1db0bb9"],"stepMatchArgumentsLists":[{"stepMatchArguments":[]}]}]}} +{"testCaseStarted":{"attempt":0,"id":"697f3add-1909-4b54-ac10-9c3a4f5aeddd","testCaseId":"f7ed4c65-a224-4af3-9f18-f1762d29b5be","workerId":"io.cucumber.core.cli.Main.main()","timestamp":{"seconds":1763643504,"nanos":160272233}}} +{"testStepStarted":{"testCaseStartedId":"697f3add-1909-4b54-ac10-9c3a4f5aeddd","testStepId":"c1d3016d-d247-4477-b3cc-33f61a8b6ef2","timestamp":{"seconds":1763643504,"nanos":160522366}}} +{"testStepFinished":{"testCaseStartedId":"697f3add-1909-4b54-ac10-9c3a4f5aeddd","testStepId":"c1d3016d-d247-4477-b3cc-33f61a8b6ef2","testStepResult":{"duration":{"seconds":0,"nanos":441577},"status":"PASSED"},"timestamp":{"seconds":1763643504,"nanos":160963943}}} +{"testCaseFinished":{"testCaseStartedId":"697f3add-1909-4b54-ac10-9c3a4f5aeddd","timestamp":{"seconds":1763643504,"nanos":162024512},"willBeRetried":false}} +{"testRunFinished":{"success":true,"timestamp":{"seconds":1763643504,"nanos":162429119}}} diff --git a/testdata/cucumber-jvm/7.26.0-java/testdata/pickle-arguments-interpolated.ndjson.jvm.json b/testdata/cucumber-jvm/7.26.0-java/testdata/pickle-arguments-interpolated.ndjson.jvm.json new file mode 100644 index 0000000..5fae477 --- /dev/null +++ b/testdata/cucumber-jvm/7.26.0-java/testdata/pickle-arguments-interpolated.ndjson.jvm.json @@ -0,0 +1 @@ +[{"line":1,"elements":[{"start_timestamp":"2025-11-20T12:58:24.146Z","line":11,"name":"docstring","description":"","id":"pickle-arguments-interpolated;docstring;;2","type":"scenario","keyword":"Scenario Outline","steps":[{"result":{"duration":653197,"status":"passed"},"line":4,"name":"this step accepts an docstring","match":{"location":"io.cucumber.jsonformatter.StepDefinitions.passing_step(io.cucumber.docstring.DocString)"},"keyword":"Given ","doc_string":{"content_type":"application/json","line":5,"value":"{ \"key\": \"\" }"}}]},{"start_timestamp":"2025-11-20T12:58:24.160Z","line":20,"name":"datatable","description":"","id":"pickle-arguments-interpolated;datatable;;2","type":"scenario","keyword":"Scenario Outline","steps":[{"result":{"duration":441577,"status":"passed"},"line":14,"name":"this step accepts an datatable","match":{"location":"io.cucumber.jsonformatter.StepDefinitions.passing_step(io.cucumber.datatable.DataTable)"},"rows":[{"cells":["key"]},{"cells":[""]}],"keyword":"Given "}]}],"name":"pickle-arguments-interpolated","description":"","id":"pickle-arguments-interpolated","keyword":"Feature","uri":"file:///home/mpkorstanje/Projects/cucumber/json-formatter/testdata/cucumber-jvm/7.26.0-java/../../features/pickle-arguments-interpolated.feature","tags":[]}] \ No newline at end of file diff --git a/testdata/cucumber-jvm/7.26.0-java8/testdata/pickle-arguments-interpolated.ndjson b/testdata/cucumber-jvm/7.26.0-java8/testdata/pickle-arguments-interpolated.ndjson new file mode 100644 index 0000000..b58537f --- /dev/null +++ b/testdata/cucumber-jvm/7.26.0-java8/testdata/pickle-arguments-interpolated.ndjson @@ -0,0 +1,32 @@ +{"meta":{"protocolVersion":"28.0.0","implementation":{"name":"cucumber-jvm","version":"7.26.0"},"runtime":{"name":"OpenJDK 64-Bit Server VM","version":"21.0.4+7-LTS"},"os":{"name":"Linux"},"cpu":{"name":"amd64"}}} +{"testRunStarted":{"timestamp":{"seconds":1763643538,"nanos":400223911}}} +{"source":{"uri":"file:///home/mpkorstanje/Projects/cucumber/json-formatter/testdata/cucumber-jvm/7.26.0-java8/../../features/pickle-arguments-interpolated.feature","data":"Feature: pickle-arguments-interpolated\n\n Scenario Outline: docstring\n Given this step accepts an docstring\n \"\"\"application/json\n { \"key\": \"\" }\n \"\"\"\n\n Examples:\n | key |\n | value |\n\n Scenario Outline: datatable\n Given this step accepts an datatable\n | key |\n | |\n\n Examples:\n | key |\n | value |","mediaType":"text/x.cucumber.gherkin+plain"}} +{"gherkinDocument":{"uri":"file:///home/mpkorstanje/Projects/cucumber/json-formatter/testdata/cucumber-jvm/7.26.0-java8/../../features/pickle-arguments-interpolated.feature","feature":{"location":{"line":1,"column":1},"tags":[],"language":"en","keyword":"Feature","name":"pickle-arguments-interpolated","description":"","children":[{"scenario":{"location":{"line":3,"column":3},"tags":[],"keyword":"Scenario Outline","name":"docstring","description":"","steps":[{"location":{"line":4,"column":5},"keyword":"Given ","keywordType":"Context","text":"this step accepts an docstring","docString":{"location":{"line":5,"column":7},"mediaType":"application/json","content":"{ \"key\": \"\" }","delimiter":"\"\"\""},"id":"c196f3d7-8ae7-4c0c-b13b-fa37f3ef5059"}],"examples":[{"location":{"line":9,"column":5},"tags":[],"keyword":"Examples","name":"","description":"","tableHeader":{"location":{"line":10,"column":7},"cells":[{"location":{"line":10,"column":9},"value":"key"}],"id":"ff15a559-c85d-43c5-a16b-bf1bf595e16a"},"tableBody":[{"location":{"line":11,"column":7},"cells":[{"location":{"line":11,"column":9},"value":"value"}],"id":"84a9bb63-3ae1-4497-a0a8-fe35792c45ee"}],"id":"60c3bb22-d8a9-42dd-947d-64530b908faf"}],"id":"93a96504-d656-4bae-8ce4-1509b779e9ce"}},{"scenario":{"location":{"line":13,"column":3},"tags":[],"keyword":"Scenario Outline","name":"datatable","description":"","steps":[{"location":{"line":14,"column":5},"keyword":"Given ","keywordType":"Context","text":"this step accepts an datatable","dataTable":{"location":{"line":15,"column":7},"rows":[{"location":{"line":15,"column":7},"cells":[{"location":{"line":15,"column":9},"value":"key"}],"id":"d4e4ef0a-5d78-4c1b-9a3d-ef6c19080e6e"},{"location":{"line":16,"column":7},"cells":[{"location":{"line":16,"column":9},"value":""}],"id":"f3325e51-692c-4cd8-850c-5b9532ab2c6e"}]},"id":"9ec6b6b3-d6be-4a05-ba19-e50a1bc51c1b"}],"examples":[{"location":{"line":18,"column":5},"tags":[],"keyword":"Examples","name":"","description":"","tableHeader":{"location":{"line":19,"column":7},"cells":[{"location":{"line":19,"column":9},"value":"key"}],"id":"0c9ac16f-cdc9-407c-aeb0-862a9c0fa8cf"},"tableBody":[{"location":{"line":20,"column":7},"cells":[{"location":{"line":20,"column":9},"value":"value"}],"id":"9eece2a5-2ec8-4524-b19a-801e946262f0"}],"id":"c0444825-f979-436d-a0c1-9e80212cbd84"}],"id":"77786b3a-d1de-422e-bda6-76cce95359b5"}}]},"comments":[]}} +{"pickle":{"id":"e778848e-3662-4929-81ab-e7e0da3e1fa9","uri":"file:///home/mpkorstanje/Projects/cucumber/json-formatter/testdata/cucumber-jvm/7.26.0-java8/../../features/pickle-arguments-interpolated.feature","name":"docstring","language":"en","steps":[{"argument":{"docString":{"mediaType":"application/json","content":"{ \"key\": \"\" }"}},"astNodeIds":["c196f3d7-8ae7-4c0c-b13b-fa37f3ef5059","84a9bb63-3ae1-4497-a0a8-fe35792c45ee"],"id":"d60f7a9f-a549-44a2-9585-3f2c9e3e2b3a","type":"Context","text":"this step accepts an docstring"}],"tags":[],"astNodeIds":["93a96504-d656-4bae-8ce4-1509b779e9ce","84a9bb63-3ae1-4497-a0a8-fe35792c45ee"]}} +{"pickle":{"id":"a9797efc-2d2f-46c0-b735-86077adbf40b","uri":"file:///home/mpkorstanje/Projects/cucumber/json-formatter/testdata/cucumber-jvm/7.26.0-java8/../../features/pickle-arguments-interpolated.feature","name":"datatable","language":"en","steps":[{"argument":{"dataTable":{"rows":[{"cells":[{"value":"key"}]},{"cells":[{"value":""}]}]}},"astNodeIds":["9ec6b6b3-d6be-4a05-ba19-e50a1bc51c1b","9eece2a5-2ec8-4524-b19a-801e946262f0"],"id":"06910b00-586a-4455-8b50-45c1e2aada9f","type":"Context","text":"this step accepts an datatable"}],"tags":[],"astNodeIds":["77786b3a-d1de-422e-bda6-76cce95359b5","9eece2a5-2ec8-4524-b19a-801e946262f0"]}} +{"hook":{"id":"bc131dbe-6a85-4ed6-96a6-1a144c040976","sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.java","methodName":""},"location":{"line":17}},"tagExpression":"@attachments","type":"BEFORE_TEST_CASE"}} +{"hook":{"id":"ca81fb6d-161f-4c9f-8a52-a800843b5cdf","sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.java","methodName":""},"location":{"line":21}},"tagExpression":"@failing_before","type":"BEFORE_TEST_CASE"}} +{"hook":{"id":"a4fcdd02-6b75-40a5-8967-df7c25380eba","sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.java","methodName":""},"location":{"line":29}},"tagExpression":"@failing_before_step","type":"BEFORE_TEST_CASE"}} +{"stepDefinition":{"id":"0a9c1e72-0fbe-44ae-8ec2-44497fc37aea","pattern":{"source":"^.*pass.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.java","methodName":""},"location":{"line":38}}}} +{"stepDefinition":{"id":"1d71e881-2903-4ff5-b6a7-55b0cf17ded6","pattern":{"source":"^.*docstring.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.java","methodName":""},"location":{"line":42}}}} +{"stepDefinition":{"id":"2ef9acc2-53b8-4ad9-a5bf-f1ae2360938c","pattern":{"source":"^.*datatable.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.java","methodName":""},"location":{"line":46}}}} +{"stepDefinition":{"id":"d911ddde-7d21-4bc8-9604-39366a5a32a3","pattern":{"source":"^.*pending.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.java","methodName":""},"location":{"line":50}}}} +{"stepDefinition":{"id":"cf1697f6-ca28-4d69-b541-aa33b395e805","pattern":{"source":"^.*fail.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.java","methodName":""},"location":{"line":54}}}} +{"stepDefinition":{"id":"39209d58-d4a2-40b5-b26d-f58968b2881d","pattern":{"source":"^.*decaying.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.java","methodName":""},"location":{"line":58}}}} +{"stepDefinition":{"id":"e9b78ef5-c3fa-4470-befe-fb44cdffff02","pattern":{"source":"^I have (\\d+) cukes(?: in my (.*))?$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.java","methodName":""},"location":{"line":64}}}} +{"stepDefinition":{"id":"f9706498-87c9-42ef-b67d-e153a5749b01","pattern":{"source":"^.*attach.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.java","methodName":""},"location":{"line":68}}}} +{"stepDefinition":{"id":"0234c2fc-063c-4d1c-a38a-e5f45bd80719","pattern":{"source":"^.*ambiguous.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.java","methodName":""},"location":{"line":74}}}} +{"stepDefinition":{"id":"1deea16c-ed64-4809-a025-6f1d58045be9","pattern":{"source":"^.*ambiguous step.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.java","methodName":""},"location":{"line":78}}}} +{"hook":{"id":"3964de23-98aa-4052-b840-54fab9984b16","sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.java","methodName":""},"location":{"line":25}},"tagExpression":"@failing_after","type":"AFTER_TEST_CASE"}} +{"hook":{"id":"b5a37321-3789-46c5-8618-0d4609ff95b5","sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.java","methodName":""},"location":{"line":33}},"tagExpression":"@failing_after_step","type":"AFTER_TEST_CASE"}} +{"testCase":{"id":"7f854094-ca5e-42eb-b9e2-21e646d4f759","pickleId":"e778848e-3662-4929-81ab-e7e0da3e1fa9","testSteps":[{"id":"4edc5068-22c5-4535-9d56-c936c3986da6","pickleStepId":"d60f7a9f-a549-44a2-9585-3f2c9e3e2b3a","stepDefinitionIds":["1d71e881-2903-4ff5-b6a7-55b0cf17ded6"],"stepMatchArgumentsLists":[{"stepMatchArguments":[]}]}]}} +{"testCaseStarted":{"attempt":0,"id":"74e55319-11c3-439a-857c-359863604f4c","testCaseId":"7f854094-ca5e-42eb-b9e2-21e646d4f759","workerId":"io.cucumber.core.cli.Main.main()","timestamp":{"seconds":1763643538,"nanos":462430366}}} +{"testStepStarted":{"testCaseStartedId":"74e55319-11c3-439a-857c-359863604f4c","testStepId":"4edc5068-22c5-4535-9d56-c936c3986da6","timestamp":{"seconds":1763643538,"nanos":469642358}}} +{"testStepFinished":{"testCaseStartedId":"74e55319-11c3-439a-857c-359863604f4c","testStepId":"4edc5068-22c5-4535-9d56-c936c3986da6","testStepResult":{"duration":{"seconds":0,"nanos":688093},"status":"PASSED"},"timestamp":{"seconds":1763643538,"nanos":470330451}}} +{"testCaseFinished":{"testCaseStartedId":"74e55319-11c3-439a-857c-359863604f4c","timestamp":{"seconds":1763643538,"nanos":473909961},"willBeRetried":false}} +{"testCase":{"id":"0c67a8f5-a807-4c52-8387-44abad32cc50","pickleId":"a9797efc-2d2f-46c0-b735-86077adbf40b","testSteps":[{"id":"30776e73-e9fd-494a-a85a-48e6e13de53c","pickleStepId":"06910b00-586a-4455-8b50-45c1e2aada9f","stepDefinitionIds":["2ef9acc2-53b8-4ad9-a5bf-f1ae2360938c"],"stepMatchArgumentsLists":[{"stepMatchArguments":[]}]}]}} +{"testCaseStarted":{"attempt":0,"id":"142e2532-4dbf-4dc2-a94d-3c001d45c126","testCaseId":"0c67a8f5-a807-4c52-8387-44abad32cc50","workerId":"io.cucumber.core.cli.Main.main()","timestamp":{"seconds":1763643538,"nanos":475852902}}} +{"testStepStarted":{"testCaseStartedId":"142e2532-4dbf-4dc2-a94d-3c001d45c126","testStepId":"30776e73-e9fd-494a-a85a-48e6e13de53c","timestamp":{"seconds":1763643538,"nanos":476110099}}} +{"testStepFinished":{"testCaseStartedId":"142e2532-4dbf-4dc2-a94d-3c001d45c126","testStepId":"30776e73-e9fd-494a-a85a-48e6e13de53c","testStepResult":{"duration":{"seconds":0,"nanos":396802},"status":"PASSED"},"timestamp":{"seconds":1763643538,"nanos":476506901}}} +{"testCaseFinished":{"testCaseStartedId":"142e2532-4dbf-4dc2-a94d-3c001d45c126","timestamp":{"seconds":1763643538,"nanos":477578561},"willBeRetried":false}} +{"testRunFinished":{"success":true,"timestamp":{"seconds":1763643538,"nanos":477962778}}} diff --git a/testdata/cucumber-jvm/7.26.0-java8/testdata/pickle-arguments-interpolated.ndjson.jvm.json b/testdata/cucumber-jvm/7.26.0-java8/testdata/pickle-arguments-interpolated.ndjson.jvm.json new file mode 100644 index 0000000..09f5e99 --- /dev/null +++ b/testdata/cucumber-jvm/7.26.0-java8/testdata/pickle-arguments-interpolated.ndjson.jvm.json @@ -0,0 +1 @@ +[{"line":1,"elements":[{"start_timestamp":"2025-11-20T12:58:58.462Z","line":11,"name":"docstring","description":"","id":"pickle-arguments-interpolated;docstring;;2","type":"scenario","keyword":"Scenario Outline","steps":[{"result":{"duration":688093,"status":"passed"},"line":4,"name":"this step accepts an docstring","match":{"location":"io.cucumber.jsonformatter.StepDefinitions.(StepDefinitions.java:42)"},"keyword":"Given ","doc_string":{"content_type":"application/json","line":5,"value":"{ \"key\": \"\" }"}}]},{"start_timestamp":"2025-11-20T12:58:58.475Z","line":20,"name":"datatable","description":"","id":"pickle-arguments-interpolated;datatable;;2","type":"scenario","keyword":"Scenario Outline","steps":[{"result":{"duration":396802,"status":"passed"},"line":14,"name":"this step accepts an datatable","match":{"location":"io.cucumber.jsonformatter.StepDefinitions.(StepDefinitions.java:46)"},"rows":[{"cells":["key"]},{"cells":[""]}],"keyword":"Given "}]}],"name":"pickle-arguments-interpolated","description":"","id":"pickle-arguments-interpolated","keyword":"Feature","uri":"file:///home/mpkorstanje/Projects/cucumber/json-formatter/testdata/cucumber-jvm/7.26.0-java8/../../features/pickle-arguments-interpolated.feature","tags":[]}] \ No newline at end of file diff --git a/testdata/cucumber-jvm/7.26.0-scala/testdata/pickle-arguments-interpolated.ndjson b/testdata/cucumber-jvm/7.26.0-scala/testdata/pickle-arguments-interpolated.ndjson new file mode 100644 index 0000000..b8032e9 --- /dev/null +++ b/testdata/cucumber-jvm/7.26.0-scala/testdata/pickle-arguments-interpolated.ndjson @@ -0,0 +1,47 @@ +{"meta":{"protocolVersion":"28.0.0","implementation":{"name":"cucumber-jvm","version":"7.26.0"},"runtime":{"name":"OpenJDK 64-Bit Server VM","version":"21.0.4+7-LTS"},"os":{"name":"Linux"},"cpu":{"name":"amd64"}}} +{"testRunStarted":{"timestamp":{"seconds":1763643535,"nanos":994243052}}} +{"source":{"uri":"file:///home/mpkorstanje/Projects/cucumber/json-formatter/testdata/cucumber-jvm/7.26.0-scala/../../features/pickle-arguments-interpolated.feature","data":"Feature: pickle-arguments-interpolated\n\n Scenario Outline: docstring\n Given this step accepts an docstring\n \"\"\"application/json\n { \"key\": \"\" }\n \"\"\"\n\n Examples:\n | key |\n | value |\n\n Scenario Outline: datatable\n Given this step accepts an datatable\n | key |\n | |\n\n Examples:\n | key |\n | value |","mediaType":"text/x.cucumber.gherkin+plain"}} +{"gherkinDocument":{"uri":"file:///home/mpkorstanje/Projects/cucumber/json-formatter/testdata/cucumber-jvm/7.26.0-scala/../../features/pickle-arguments-interpolated.feature","feature":{"location":{"line":1,"column":1},"tags":[],"language":"en","keyword":"Feature","name":"pickle-arguments-interpolated","description":"","children":[{"scenario":{"location":{"line":3,"column":3},"tags":[],"keyword":"Scenario Outline","name":"docstring","description":"","steps":[{"location":{"line":4,"column":5},"keyword":"Given ","keywordType":"Context","text":"this step accepts an docstring","docString":{"location":{"line":5,"column":7},"mediaType":"application/json","content":"{ \"key\": \"\" }","delimiter":"\"\"\""},"id":"61a6c26a-8cf5-4918-ac31-bb51f005a5bf"}],"examples":[{"location":{"line":9,"column":5},"tags":[],"keyword":"Examples","name":"","description":"","tableHeader":{"location":{"line":10,"column":7},"cells":[{"location":{"line":10,"column":9},"value":"key"}],"id":"c4b6ac6f-4832-4415-b059-bf59fc599bb8"},"tableBody":[{"location":{"line":11,"column":7},"cells":[{"location":{"line":11,"column":9},"value":"value"}],"id":"82813948-d7de-49b4-a4a1-02dac100b031"}],"id":"3b02a5b8-e24e-417f-9f7f-f63e948966d0"}],"id":"ddcc046b-356a-4f0c-ab6c-109c60a6543d"}},{"scenario":{"location":{"line":13,"column":3},"tags":[],"keyword":"Scenario Outline","name":"datatable","description":"","steps":[{"location":{"line":14,"column":5},"keyword":"Given ","keywordType":"Context","text":"this step accepts an datatable","dataTable":{"location":{"line":15,"column":7},"rows":[{"location":{"line":15,"column":7},"cells":[{"location":{"line":15,"column":9},"value":"key"}],"id":"9e3f4961-2757-438e-98e6-1c14e7997ef1"},{"location":{"line":16,"column":7},"cells":[{"location":{"line":16,"column":9},"value":""}],"id":"e128dcc9-1a74-450b-b1dc-5d6e4f686aa4"}]},"id":"a9d4a493-d565-46b4-9ec4-f7db2e969de0"}],"examples":[{"location":{"line":18,"column":5},"tags":[],"keyword":"Examples","name":"","description":"","tableHeader":{"location":{"line":19,"column":7},"cells":[{"location":{"line":19,"column":9},"value":"key"}],"id":"5682653e-e79b-49b1-a0c9-e5f735150bbd"},"tableBody":[{"location":{"line":20,"column":7},"cells":[{"location":{"line":20,"column":9},"value":"value"}],"id":"9bfb8844-6154-49fd-95de-e62c5b9d0177"}],"id":"f3bee80d-228c-4f2a-83f8-2cd2c6569947"}],"id":"37db1b77-4827-4cbf-9ce8-71c2f5598b9e"}}]},"comments":[]}} +{"pickle":{"id":"fc36c51f-2752-421b-a735-3bde2fd13a83","uri":"file:///home/mpkorstanje/Projects/cucumber/json-formatter/testdata/cucumber-jvm/7.26.0-scala/../../features/pickle-arguments-interpolated.feature","name":"docstring","language":"en","steps":[{"argument":{"docString":{"mediaType":"application/json","content":"{ \"key\": \"\" }"}},"astNodeIds":["61a6c26a-8cf5-4918-ac31-bb51f005a5bf","82813948-d7de-49b4-a4a1-02dac100b031"],"id":"8b89ecfd-0092-4d5b-8a89-62d780d75f32","type":"Context","text":"this step accepts an docstring"}],"tags":[],"astNodeIds":["ddcc046b-356a-4f0c-ab6c-109c60a6543d","82813948-d7de-49b4-a4a1-02dac100b031"]}} +{"pickle":{"id":"bca92b45-6422-41c3-a75d-495405917253","uri":"file:///home/mpkorstanje/Projects/cucumber/json-formatter/testdata/cucumber-jvm/7.26.0-scala/../../features/pickle-arguments-interpolated.feature","name":"datatable","language":"en","steps":[{"argument":{"dataTable":{"rows":[{"cells":[{"value":"key"}]},{"cells":[{"value":""}]}]}},"astNodeIds":["a9d4a493-d565-46b4-9ec4-f7db2e969de0","9bfb8844-6154-49fd-95de-e62c5b9d0177"],"id":"50b2fb67-b5a2-4c6e-a224-a5c6aea473e7","type":"Context","text":"this step accepts an datatable"}],"tags":[],"astNodeIds":["37db1b77-4827-4cbf-9ce8-71c2f5598b9e","9bfb8844-6154-49fd-95de-e62c5b9d0177"]}} +{"hook":{"id":"f3243fa7-9310-4b3d-bb70-0cbc22d233f9","sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.scala","methodName":""},"location":{"line":15}},"tagExpression":"@attachments","type":"BEFORE_TEST_CASE"}} +{"hook":{"id":"e5ddfb8c-31b8-4458-908a-d48ba85d2f9c","sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.scala","methodName":""},"location":{"line":19}},"tagExpression":"@failing_before","type":"BEFORE_TEST_CASE"}} +{"hook":{"id":"4a7c63fd-bc75-4dfb-8382-c74405e9dbeb","sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.scala","methodName":""},"location":{"line":27}},"tagExpression":"@failing_before_step","type":"BEFORE_TEST_STEP"}} +{"stepDefinition":{"id":"45aec967-36f6-40e6-ada5-da257b0a812b","pattern":{"source":"^.*pass.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.scala","methodName":""},"location":{"line":35}}}} +{"stepDefinition":{"id":"a764a012-3a2e-48cc-ade1-6f40f3d2a01a","pattern":{"source":"^.*docstring.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.scala","methodName":""},"location":{"line":39}}}} +{"stepDefinition":{"id":"d97a757e-836f-493c-b9c8-1bfb761c76ab","pattern":{"source":"^.*datatable.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.scala","methodName":""},"location":{"line":43}}}} +{"stepDefinition":{"id":"3908ba29-cff0-47f4-b0f7-d896be4263eb","pattern":{"source":"^.*pending.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.scala","methodName":""},"location":{"line":47}}}} +{"stepDefinition":{"id":"47c9ece2-f10b-4909-932c-f09a63fd9054","pattern":{"source":"^.*fail.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.scala","methodName":""},"location":{"line":51}}}} +{"stepDefinition":{"id":"52758048-2aed-4df0-9c85-0c637830394c","pattern":{"source":"^.*decaying.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.scala","methodName":""},"location":{"line":55}}}} +{"stepDefinition":{"id":"4efb40ad-9509-4e72-b28d-ecfb50858515","pattern":{"source":"^I have (\\d+) cukes(?: in my (.*))?$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.scala","methodName":""},"location":{"line":61}}}} +{"stepDefinition":{"id":"d76a553c-061d-49a3-aee8-fff567974218","pattern":{"source":"^.*attach.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.scala","methodName":""},"location":{"line":65}}}} +{"stepDefinition":{"id":"dcdb26c6-537e-46fc-b4dd-1a3bbb229da2","pattern":{"source":"^.*ambiguous.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.scala","methodName":""},"location":{"line":71}}}} +{"stepDefinition":{"id":"baedee58-4af4-4762-b402-f5769049626e","pattern":{"source":"^.*ambiguous step.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.scala","methodName":""},"location":{"line":75}}}} +{"hook":{"id":"960c0e06-8e61-4146-a746-10903874f40a","sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.scala","methodName":""},"location":{"line":31}},"tagExpression":"@failing_after_step","type":"AFTER_TEST_STEP"}} +{"hook":{"id":"99b623d1-c9ec-4250-93f2-51577b7927f1","sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.scala","methodName":""},"location":{"line":23}},"tagExpression":"@failing_after","type":"AFTER_TEST_CASE"}} +{"testCase":{"id":"36e29fd9-2191-443b-9474-60d92bf8b246","pickleId":"fc36c51f-2752-421b-a735-3bde2fd13a83","testSteps":[{"id":"5104337d-1719-41fa-ab23-c67f00cccdd8","pickleStepId":"8b89ecfd-0092-4d5b-8a89-62d780d75f32","stepDefinitionIds":["a764a012-3a2e-48cc-ade1-6f40f3d2a01a"],"stepMatchArgumentsLists":[{"stepMatchArguments":[]}]}]}} +{"testCaseStarted":{"attempt":0,"id":"0776731a-e517-49e9-84f5-615fbe540df9","testCaseId":"36e29fd9-2191-443b-9474-60d92bf8b246","workerId":"io.cucumber.core.cli.Main.main()","timestamp":{"seconds":1763643536,"nanos":145966656}}} +{"testStepStarted":{"testCaseStartedId":"0776731a-e517-49e9-84f5-615fbe540df9","testStepId":"5104337d-1719-41fa-ab23-c67f00cccdd8","timestamp":{"seconds":1763643536,"nanos":153412320}}} +{"testStepFinished":{"testCaseStartedId":"0776731a-e517-49e9-84f5-615fbe540df9","testStepId":"5104337d-1719-41fa-ab23-c67f00cccdd8","testStepResult":{"duration":{"seconds":0,"nanos":2088576},"status":"PASSED"},"timestamp":{"seconds":1763643536,"nanos":155500896}}} +{"testCaseFinished":{"testCaseStartedId":"0776731a-e517-49e9-84f5-615fbe540df9","timestamp":{"seconds":1763643536,"nanos":158659860},"willBeRetried":false}} +{"hook":{"id":"48de6b76-7dbc-473e-bfc8-cee91f9012b7","sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.scala","methodName":""},"location":{"line":15}},"tagExpression":"@attachments","type":"BEFORE_TEST_CASE"}} +{"hook":{"id":"a73ca9a5-2a43-4ce7-973d-a9249f3564ae","sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.scala","methodName":""},"location":{"line":19}},"tagExpression":"@failing_before","type":"BEFORE_TEST_CASE"}} +{"hook":{"id":"15622325-d104-4f78-984c-0da94894c031","sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.scala","methodName":""},"location":{"line":27}},"tagExpression":"@failing_before_step","type":"BEFORE_TEST_STEP"}} +{"stepDefinition":{"id":"cbc755c7-99cf-416d-9f9e-03acd08d5421","pattern":{"source":"^.*pass.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.scala","methodName":""},"location":{"line":35}}}} +{"stepDefinition":{"id":"9b8e1fd1-e8d5-48a4-86aa-147a7168c222","pattern":{"source":"^.*docstring.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.scala","methodName":""},"location":{"line":39}}}} +{"stepDefinition":{"id":"9a3cd1a6-0e02-4c53-ac26-3a50d57ee8c5","pattern":{"source":"^.*datatable.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.scala","methodName":""},"location":{"line":43}}}} +{"stepDefinition":{"id":"65e48dae-894c-42df-ad30-df2449613c91","pattern":{"source":"^.*pending.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.scala","methodName":""},"location":{"line":47}}}} +{"stepDefinition":{"id":"7fca18e5-3413-4ca5-99e3-666ad0055212","pattern":{"source":"^.*fail.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.scala","methodName":""},"location":{"line":51}}}} +{"stepDefinition":{"id":"81ca3413-203b-4aab-9549-61931c539157","pattern":{"source":"^.*decaying.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.scala","methodName":""},"location":{"line":55}}}} +{"stepDefinition":{"id":"02dbc528-3af8-43c8-8028-fbb6d6a133a2","pattern":{"source":"^I have (\\d+) cukes(?: in my (.*))?$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.scala","methodName":""},"location":{"line":61}}}} +{"stepDefinition":{"id":"b0d85102-b144-400c-89a8-fedc6b58992f","pattern":{"source":"^.*attach.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.scala","methodName":""},"location":{"line":65}}}} +{"stepDefinition":{"id":"5a7fc63f-5ede-4afb-93ea-c2989c73dbd3","pattern":{"source":"^.*ambiguous.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.scala","methodName":""},"location":{"line":71}}}} +{"stepDefinition":{"id":"3dfb1c9c-e2ef-4465-88ab-b1960dba40bc","pattern":{"source":"^.*ambiguous step.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.scala","methodName":""},"location":{"line":75}}}} +{"hook":{"id":"027b2cbb-7f97-406d-b221-00c45503c40e","sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.scala","methodName":""},"location":{"line":31}},"tagExpression":"@failing_after_step","type":"AFTER_TEST_STEP"}} +{"hook":{"id":"ef4bf444-6189-4bec-b39c-e071a8101a49","sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.scala","methodName":""},"location":{"line":23}},"tagExpression":"@failing_after","type":"AFTER_TEST_CASE"}} +{"testCase":{"id":"e67fbcf2-2e84-4443-a31a-04acb20f5441","pickleId":"bca92b45-6422-41c3-a75d-495405917253","testSteps":[{"id":"37c855a6-ec51-4bbd-9463-02f26cbe5fbf","pickleStepId":"50b2fb67-b5a2-4c6e-a224-a5c6aea473e7","stepDefinitionIds":["9a3cd1a6-0e02-4c53-ac26-3a50d57ee8c5"],"stepMatchArgumentsLists":[{"stepMatchArguments":[]}]}]}} +{"testCaseStarted":{"attempt":0,"id":"96a7d550-8d4a-4493-a092-864a3f2d88f1","testCaseId":"e67fbcf2-2e84-4443-a31a-04acb20f5441","workerId":"io.cucumber.core.cli.Main.main()","timestamp":{"seconds":1763643536,"nanos":164137206}}} +{"testStepStarted":{"testCaseStartedId":"96a7d550-8d4a-4493-a092-864a3f2d88f1","testStepId":"37c855a6-ec51-4bbd-9463-02f26cbe5fbf","timestamp":{"seconds":1763643536,"nanos":164431884}}} +{"testStepFinished":{"testCaseStartedId":"96a7d550-8d4a-4493-a092-864a3f2d88f1","testStepId":"37c855a6-ec51-4bbd-9463-02f26cbe5fbf","testStepResult":{"duration":{"seconds":0,"nanos":443701},"status":"PASSED"},"timestamp":{"seconds":1763643536,"nanos":164875585}}} +{"testCaseFinished":{"testCaseStartedId":"96a7d550-8d4a-4493-a092-864a3f2d88f1","timestamp":{"seconds":1763643536,"nanos":165891739},"willBeRetried":false}} +{"testRunFinished":{"success":true,"timestamp":{"seconds":1763643536,"nanos":166302377}}} diff --git a/testdata/cucumber-jvm/7.26.0-scala/testdata/pickle-arguments-interpolated.ndjson.jvm.json b/testdata/cucumber-jvm/7.26.0-scala/testdata/pickle-arguments-interpolated.ndjson.jvm.json new file mode 100644 index 0000000..0ef30ab --- /dev/null +++ b/testdata/cucumber-jvm/7.26.0-scala/testdata/pickle-arguments-interpolated.ndjson.jvm.json @@ -0,0 +1 @@ +[{"line":1,"elements":[{"start_timestamp":"2025-11-20T12:58:56.145Z","line":11,"name":"docstring","description":"","id":"pickle-arguments-interpolated;docstring;;2","type":"scenario","keyword":"Scenario Outline","steps":[{"result":{"duration":2088576,"status":"passed"},"line":4,"name":"this step accepts an docstring","match":{"location":"io.cucumber.jsonformatter.StepDefinitions.(StepDefinitions.scala:39)"},"keyword":"Given ","doc_string":{"content_type":"application/json","line":5,"value":"{ \"key\": \"\" }"}}]},{"start_timestamp":"2025-11-20T12:58:56.164Z","line":20,"name":"datatable","description":"","id":"pickle-arguments-interpolated;datatable;;2","type":"scenario","keyword":"Scenario Outline","steps":[{"result":{"duration":443701,"status":"passed"},"line":14,"name":"this step accepts an datatable","match":{"location":"io.cucumber.jsonformatter.StepDefinitions.(StepDefinitions.scala:43)"},"rows":[{"cells":["key"]},{"cells":[""]}],"keyword":"Given "}]}],"name":"pickle-arguments-interpolated","description":"","id":"pickle-arguments-interpolated","keyword":"Feature","uri":"file:///home/mpkorstanje/Projects/cucumber/json-formatter/testdata/cucumber-jvm/7.26.0-scala/../../features/pickle-arguments-interpolated.feature","tags":[]}] \ No newline at end of file diff --git a/testdata/features/pickle-arguments-interpolated.feature b/testdata/features/pickle-arguments-interpolated.feature new file mode 100644 index 0000000..cb06210 --- /dev/null +++ b/testdata/features/pickle-arguments-interpolated.feature @@ -0,0 +1,20 @@ +Feature: pickle-arguments-interpolated + + Scenario Outline: docstring + Given this step accepts an docstring + """application/json + { "key": "" } + """ + + Examples: + | key | + | value | + + Scenario Outline: datatable + Given this step accepts an datatable + | key | + | | + + Examples: + | key | + | value | \ No newline at end of file From 07db862a2084d7949637acd3020ddb6f9234b11d Mon Sep 17 00:00:00 2001 From: "M.P. Korstanje" Date: Thu, 20 Nov 2025 14:12:37 +0100 Subject: [PATCH 2/6] Fix interpolation --- .../pickle-arguments-interpolated.ndjson | 62 ++++++------- ...kle-arguments-interpolated.ndjson.jvm.json | 2 +- .../pickle-arguments-interpolated.ndjson | 62 ++++++------- ...kle-arguments-interpolated.ndjson.jvm.json | 2 +- .../pickle-arguments-interpolated.ndjson | 92 +++++++++---------- ...kle-arguments-interpolated.ndjson.jvm.json | 2 +- .../pickle-arguments-interpolated.feature | 14 +-- 7 files changed, 118 insertions(+), 118 deletions(-) diff --git a/testdata/cucumber-jvm/7.26.0-java/testdata/pickle-arguments-interpolated.ndjson b/testdata/cucumber-jvm/7.26.0-java/testdata/pickle-arguments-interpolated.ndjson index cf81147..04cb71c 100644 --- a/testdata/cucumber-jvm/7.26.0-java/testdata/pickle-arguments-interpolated.ndjson +++ b/testdata/cucumber-jvm/7.26.0-java/testdata/pickle-arguments-interpolated.ndjson @@ -1,32 +1,32 @@ {"meta":{"protocolVersion":"28.0.0","implementation":{"name":"cucumber-jvm","version":"7.26.0"},"runtime":{"name":"OpenJDK 64-Bit Server VM","version":"21.0.4+7-LTS"},"os":{"name":"Linux"},"cpu":{"name":"amd64"}}} -{"testRunStarted":{"timestamp":{"seconds":1763643504,"nanos":81718890}}} -{"source":{"uri":"file:///home/mpkorstanje/Projects/cucumber/json-formatter/testdata/cucumber-jvm/7.26.0-java/../../features/pickle-arguments-interpolated.feature","data":"Feature: pickle-arguments-interpolated\n\n Scenario Outline: docstring\n Given this step accepts an docstring\n \"\"\"application/json\n { \"key\": \"\" }\n \"\"\"\n\n Examples:\n | key |\n | value |\n\n Scenario Outline: datatable\n Given this step accepts an datatable\n | key |\n | |\n\n Examples:\n | key |\n | value |","mediaType":"text/x.cucumber.gherkin+plain"}} -{"gherkinDocument":{"uri":"file:///home/mpkorstanje/Projects/cucumber/json-formatter/testdata/cucumber-jvm/7.26.0-java/../../features/pickle-arguments-interpolated.feature","feature":{"location":{"line":1,"column":1},"tags":[],"language":"en","keyword":"Feature","name":"pickle-arguments-interpolated","description":"","children":[{"scenario":{"location":{"line":3,"column":3},"tags":[],"keyword":"Scenario Outline","name":"docstring","description":"","steps":[{"location":{"line":4,"column":5},"keyword":"Given ","keywordType":"Context","text":"this step accepts an docstring","docString":{"location":{"line":5,"column":7},"mediaType":"application/json","content":"{ \"key\": \"\" }","delimiter":"\"\"\""},"id":"88389ba9-57d0-467d-a5a0-0f0481e83a44"}],"examples":[{"location":{"line":9,"column":5},"tags":[],"keyword":"Examples","name":"","description":"","tableHeader":{"location":{"line":10,"column":7},"cells":[{"location":{"line":10,"column":9},"value":"key"}],"id":"6ec80553-ef51-4eaa-8f38-8b946d38f185"},"tableBody":[{"location":{"line":11,"column":7},"cells":[{"location":{"line":11,"column":9},"value":"value"}],"id":"7043318e-9826-4910-a468-1eaaab316ac3"}],"id":"3c1fedf4-a017-44fd-94eb-c7d5e67b08eb"}],"id":"9d4661a7-51de-4281-9c94-ebb6a73a4ccb"}},{"scenario":{"location":{"line":13,"column":3},"tags":[],"keyword":"Scenario Outline","name":"datatable","description":"","steps":[{"location":{"line":14,"column":5},"keyword":"Given ","keywordType":"Context","text":"this step accepts an datatable","dataTable":{"location":{"line":15,"column":7},"rows":[{"location":{"line":15,"column":7},"cells":[{"location":{"line":15,"column":9},"value":"key"}],"id":"b4a19f44-0da8-48dd-9af1-54d0a5f8f721"},{"location":{"line":16,"column":7},"cells":[{"location":{"line":16,"column":9},"value":""}],"id":"1a605085-9e9d-44db-8ffd-f723b536f27f"}]},"id":"abf51b7e-8d9f-454f-942c-097feff73ade"}],"examples":[{"location":{"line":18,"column":5},"tags":[],"keyword":"Examples","name":"","description":"","tableHeader":{"location":{"line":19,"column":7},"cells":[{"location":{"line":19,"column":9},"value":"key"}],"id":"06d0aa88-994f-4ae4-b662-7013dec1ab63"},"tableBody":[{"location":{"line":20,"column":7},"cells":[{"location":{"line":20,"column":9},"value":"value"}],"id":"2d7817f7-0439-4230-a589-189eb0cce3de"}],"id":"f5d4adf1-988a-4a90-a3ec-6b42cf4712f1"}],"id":"f8918518-2ada-4414-b5ea-156036f106cb"}}]},"comments":[]}} -{"pickle":{"id":"94f6e87f-cab9-4681-b48e-9a02bbec0891","uri":"file:///home/mpkorstanje/Projects/cucumber/json-formatter/testdata/cucumber-jvm/7.26.0-java/../../features/pickle-arguments-interpolated.feature","name":"docstring","language":"en","steps":[{"argument":{"docString":{"mediaType":"application/json","content":"{ \"key\": \"\" }"}},"astNodeIds":["88389ba9-57d0-467d-a5a0-0f0481e83a44","7043318e-9826-4910-a468-1eaaab316ac3"],"id":"12557472-18fb-40ce-a5c5-0638b6bc1754","type":"Context","text":"this step accepts an docstring"}],"tags":[],"astNodeIds":["9d4661a7-51de-4281-9c94-ebb6a73a4ccb","7043318e-9826-4910-a468-1eaaab316ac3"]}} -{"pickle":{"id":"06c7d1a2-7e2a-4a0b-8edc-efc2e8d4d07c","uri":"file:///home/mpkorstanje/Projects/cucumber/json-formatter/testdata/cucumber-jvm/7.26.0-java/../../features/pickle-arguments-interpolated.feature","name":"datatable","language":"en","steps":[{"argument":{"dataTable":{"rows":[{"cells":[{"value":"key"}]},{"cells":[{"value":""}]}]}},"astNodeIds":["abf51b7e-8d9f-454f-942c-097feff73ade","2d7817f7-0439-4230-a589-189eb0cce3de"],"id":"71812c02-deb4-4337-bc34-fe5a3df49019","type":"Context","text":"this step accepts an datatable"}],"tags":[],"astNodeIds":["f8918518-2ada-4414-b5ea-156036f106cb","2d7817f7-0439-4230-a589-189eb0cce3de"]}} -{"hook":{"id":"a2a5fcc8-3c78-4170-85c9-4862a7c60a5b","sourceReference":{"javaMethod":{"className":"io.cucumber.jsonformatter.StepDefinitions","methodName":"tagged_passing_before_attachments","methodParameterTypes":["io.cucumber.java.Scenario"]}},"tagExpression":"@attachments","type":"BEFORE_TEST_CASE"}} -{"hook":{"id":"9d0d2e50-0c81-4da9-9d5f-a6eceec04a20","sourceReference":{"javaMethod":{"className":"io.cucumber.jsonformatter.StepDefinitions","methodName":"tagged_failing_before_hook","methodParameterTypes":[]}},"tagExpression":"@failing_before","type":"BEFORE_TEST_CASE"}} -{"hook":{"id":"312c2c75-27d3-43b4-91e0-7141834b1861","sourceReference":{"javaMethod":{"className":"io.cucumber.jsonformatter.StepDefinitions","methodName":"tagged_failing_before_step_hook","methodParameterTypes":[]}},"tagExpression":"@failing_before_step","type":"BEFORE_TEST_STEP"}} -{"stepDefinition":{"id":"ce73b06f-43a5-49f2-bf19-989a54fae14f","pattern":{"source":"^.*pass.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaMethod":{"className":"io.cucumber.jsonformatter.StepDefinitions","methodName":"passing_step","methodParameterTypes":[]}}}} -{"stepDefinition":{"id":"bf2fdac7-3477-4f3a-9940-b36aecbff415","pattern":{"source":"^.*docstring.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaMethod":{"className":"io.cucumber.jsonformatter.StepDefinitions","methodName":"passing_step","methodParameterTypes":["io.cucumber.docstring.DocString"]}}}} -{"stepDefinition":{"id":"7b2d04b0-649c-43a7-98a3-8e4ab1db0bb9","pattern":{"source":"^.*datatable.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaMethod":{"className":"io.cucumber.jsonformatter.StepDefinitions","methodName":"passing_step","methodParameterTypes":["io.cucumber.datatable.DataTable"]}}}} -{"stepDefinition":{"id":"cf90a9fe-9659-4756-84f5-33a8f84ce8f0","pattern":{"source":"^.*pending.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaMethod":{"className":"io.cucumber.jsonformatter.StepDefinitions","methodName":"pending_step","methodParameterTypes":[]}}}} -{"stepDefinition":{"id":"d9bc896e-be25-4436-b94b-d009383e74b0","pattern":{"source":"^.*fail.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaMethod":{"className":"io.cucumber.jsonformatter.StepDefinitions","methodName":"failing_step","methodParameterTypes":[]}}}} -{"stepDefinition":{"id":"c141fc0e-f643-4163-b1db-7c1caefee07c","pattern":{"source":"^.*decaying.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaMethod":{"className":"io.cucumber.jsonformatter.StepDefinitions","methodName":"decaying_step","methodParameterTypes":[]}}}} -{"stepDefinition":{"id":"c2ec8fc0-892c-416a-abba-671f0c004840","pattern":{"source":"^I have (\\d+) cukes(?: in my (.*))?$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaMethod":{"className":"io.cucumber.jsonformatter.StepDefinitions","methodName":"cukes_in_something","methodParameterTypes":["int","java.lang.String"]}}}} -{"stepDefinition":{"id":"317b01ae-fa75-4783-aafe-05505bc94cb8","pattern":{"source":"^.*attach.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaMethod":{"className":"io.cucumber.jsonformatter.StepDefinitions","methodName":"attaching_step","methodParameterTypes":[]}}}} -{"stepDefinition":{"id":"a8b6ca92-8eea-4be2-8763-e45a84826482","pattern":{"source":"^.*ambiguous.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaMethod":{"className":"io.cucumber.jsonformatter.StepDefinitions","methodName":"ambiguous_step_a","methodParameterTypes":[]}}}} -{"stepDefinition":{"id":"7a5808ad-b484-45d9-bde9-0e4abf8680ca","pattern":{"source":"^.*ambiguous step.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaMethod":{"className":"io.cucumber.jsonformatter.StepDefinitions","methodName":"ambiguous_step_b","methodParameterTypes":[]}}}} -{"hook":{"id":"aebaa4ad-8502-4b42-b51e-7c3976d729cd","sourceReference":{"javaMethod":{"className":"io.cucumber.jsonformatter.StepDefinitions","methodName":"tagged_failing_after_step_hook","methodParameterTypes":[]}},"tagExpression":"@failing_after_step","type":"AFTER_TEST_STEP"}} -{"hook":{"id":"2173f5ef-3e64-422e-8cdf-ec73a2ba97c4","sourceReference":{"javaMethod":{"className":"io.cucumber.jsonformatter.StepDefinitions","methodName":"tagged_failing_after_hook","methodParameterTypes":[]}},"tagExpression":"@failing_after","type":"AFTER_TEST_CASE"}} -{"testCase":{"id":"a6746b65-211e-41eb-845f-92b985354964","pickleId":"94f6e87f-cab9-4681-b48e-9a02bbec0891","testSteps":[{"id":"54dac507-7b7b-4f2a-8bdc-134c245661ca","pickleStepId":"12557472-18fb-40ce-a5c5-0638b6bc1754","stepDefinitionIds":["bf2fdac7-3477-4f3a-9940-b36aecbff415"],"stepMatchArgumentsLists":[{"stepMatchArguments":[]}]}]}} -{"testCaseStarted":{"attempt":0,"id":"974e12b2-18fe-451f-90bd-9630380a7c53","testCaseId":"a6746b65-211e-41eb-845f-92b985354964","workerId":"io.cucumber.core.cli.Main.main()","timestamp":{"seconds":1763643504,"nanos":146635008}}} -{"testStepStarted":{"testCaseStartedId":"974e12b2-18fe-451f-90bd-9630380a7c53","testStepId":"54dac507-7b7b-4f2a-8bdc-134c245661ca","timestamp":{"seconds":1763643504,"nanos":154513263}}} -{"testStepFinished":{"testCaseStartedId":"974e12b2-18fe-451f-90bd-9630380a7c53","testStepId":"54dac507-7b7b-4f2a-8bdc-134c245661ca","testStepResult":{"duration":{"seconds":0,"nanos":653197},"status":"PASSED"},"timestamp":{"seconds":1763643504,"nanos":155166460}}} -{"testCaseFinished":{"testCaseStartedId":"974e12b2-18fe-451f-90bd-9630380a7c53","timestamp":{"seconds":1763643504,"nanos":158617147},"willBeRetried":false}} -{"testCase":{"id":"f7ed4c65-a224-4af3-9f18-f1762d29b5be","pickleId":"06c7d1a2-7e2a-4a0b-8edc-efc2e8d4d07c","testSteps":[{"id":"c1d3016d-d247-4477-b3cc-33f61a8b6ef2","pickleStepId":"71812c02-deb4-4337-bc34-fe5a3df49019","stepDefinitionIds":["7b2d04b0-649c-43a7-98a3-8e4ab1db0bb9"],"stepMatchArgumentsLists":[{"stepMatchArguments":[]}]}]}} -{"testCaseStarted":{"attempt":0,"id":"697f3add-1909-4b54-ac10-9c3a4f5aeddd","testCaseId":"f7ed4c65-a224-4af3-9f18-f1762d29b5be","workerId":"io.cucumber.core.cli.Main.main()","timestamp":{"seconds":1763643504,"nanos":160272233}}} -{"testStepStarted":{"testCaseStartedId":"697f3add-1909-4b54-ac10-9c3a4f5aeddd","testStepId":"c1d3016d-d247-4477-b3cc-33f61a8b6ef2","timestamp":{"seconds":1763643504,"nanos":160522366}}} -{"testStepFinished":{"testCaseStartedId":"697f3add-1909-4b54-ac10-9c3a4f5aeddd","testStepId":"c1d3016d-d247-4477-b3cc-33f61a8b6ef2","testStepResult":{"duration":{"seconds":0,"nanos":441577},"status":"PASSED"},"timestamp":{"seconds":1763643504,"nanos":160963943}}} -{"testCaseFinished":{"testCaseStartedId":"697f3add-1909-4b54-ac10-9c3a4f5aeddd","timestamp":{"seconds":1763643504,"nanos":162024512},"willBeRetried":false}} -{"testRunFinished":{"success":true,"timestamp":{"seconds":1763643504,"nanos":162429119}}} +{"testRunStarted":{"timestamp":{"seconds":1763644288,"nanos":306383552}}} +{"source":{"uri":"file:///home/mpkorstanje/Projects/cucumber/json-formatter/testdata/cucumber-jvm/7.26.0-java/../../features/pickle-arguments-interpolated.feature","data":"Feature: pickle-arguments-interpolated\n\n Scenario Outline: docstring\n Given this step accepts a docstring\n \"\"\"application/json\n { \"hello\": \"\" }\n \"\"\"\n\n Examples:\n | key |\n | word |\n\n Scenario Outline: datatable\n Given this step accepts a datatable\n | hello |\n | |\n\n Examples:\n | key |\n | world |","mediaType":"text/x.cucumber.gherkin+plain"}} +{"gherkinDocument":{"uri":"file:///home/mpkorstanje/Projects/cucumber/json-formatter/testdata/cucumber-jvm/7.26.0-java/../../features/pickle-arguments-interpolated.feature","feature":{"location":{"line":1,"column":1},"tags":[],"language":"en","keyword":"Feature","name":"pickle-arguments-interpolated","description":"","children":[{"scenario":{"location":{"line":3,"column":3},"tags":[],"keyword":"Scenario Outline","name":"docstring","description":"","steps":[{"location":{"line":4,"column":5},"keyword":"Given ","keywordType":"Context","text":"this step accepts a docstring","docString":{"location":{"line":5,"column":7},"mediaType":"application/json","content":"{ \"hello\": \"\" }","delimiter":"\"\"\""},"id":"124f5e2f-8fb9-4ada-a965-7963f8ff132a"}],"examples":[{"location":{"line":9,"column":5},"tags":[],"keyword":"Examples","name":"","description":"","tableHeader":{"location":{"line":10,"column":7},"cells":[{"location":{"line":10,"column":9},"value":"key"}],"id":"b8b55b27-ad32-46b6-b85d-a79a97927b62"},"tableBody":[{"location":{"line":11,"column":7},"cells":[{"location":{"line":11,"column":9},"value":"word"}],"id":"d746b808-e301-43fc-9de0-c68219e17537"}],"id":"8224ae3a-685f-4095-b4f0-a954cce6eaac"}],"id":"fad2f834-c2d0-46ec-8d60-2a69144e3bee"}},{"scenario":{"location":{"line":13,"column":3},"tags":[],"keyword":"Scenario Outline","name":"datatable","description":"","steps":[{"location":{"line":14,"column":5},"keyword":"Given ","keywordType":"Context","text":"this step accepts a datatable","dataTable":{"location":{"line":15,"column":7},"rows":[{"location":{"line":15,"column":7},"cells":[{"location":{"line":15,"column":9},"value":"hello"}],"id":"5f7bff4e-f35a-4eb1-9bed-e9b9e7621d55"},{"location":{"line":16,"column":7},"cells":[{"location":{"line":16,"column":9},"value":""}],"id":"81cfba97-a5f4-4d48-ae61-ec3f488e6ff8"}]},"id":"220adae6-2fe3-4d53-ab2f-81365c3d426e"}],"examples":[{"location":{"line":18,"column":5},"tags":[],"keyword":"Examples","name":"","description":"","tableHeader":{"location":{"line":19,"column":7},"cells":[{"location":{"line":19,"column":9},"value":"key"}],"id":"a4552dc8-1a2a-4dda-8e4c-2c11a9ab6ec6"},"tableBody":[{"location":{"line":20,"column":7},"cells":[{"location":{"line":20,"column":9},"value":"world"}],"id":"0d04ceb8-0465-4a61-a526-c5ceaaac233d"}],"id":"1aa3b71b-4e91-434c-ba36-156ad5af7498"}],"id":"0e801b20-ab0a-4bd8-8c68-5fba5d72e069"}}]},"comments":[]}} +{"pickle":{"id":"692b7307-db1f-4f51-8d4b-976024d92b9c","uri":"file:///home/mpkorstanje/Projects/cucumber/json-formatter/testdata/cucumber-jvm/7.26.0-java/../../features/pickle-arguments-interpolated.feature","name":"docstring","language":"en","steps":[{"argument":{"docString":{"mediaType":"application/json","content":"{ \"hello\": \"word\" }"}},"astNodeIds":["124f5e2f-8fb9-4ada-a965-7963f8ff132a","d746b808-e301-43fc-9de0-c68219e17537"],"id":"7034b14d-2a77-4a42-a44c-44dd238df755","type":"Context","text":"this step accepts a docstring"}],"tags":[],"astNodeIds":["fad2f834-c2d0-46ec-8d60-2a69144e3bee","d746b808-e301-43fc-9de0-c68219e17537"]}} +{"pickle":{"id":"d4e73c0e-dcbf-4753-9caa-b0f8a1ee4c84","uri":"file:///home/mpkorstanje/Projects/cucumber/json-formatter/testdata/cucumber-jvm/7.26.0-java/../../features/pickle-arguments-interpolated.feature","name":"datatable","language":"en","steps":[{"argument":{"dataTable":{"rows":[{"cells":[{"value":"hello"}]},{"cells":[{"value":"world"}]}]}},"astNodeIds":["220adae6-2fe3-4d53-ab2f-81365c3d426e","0d04ceb8-0465-4a61-a526-c5ceaaac233d"],"id":"9d52f691-dc13-4865-969e-ccb432540f09","type":"Context","text":"this step accepts a datatable"}],"tags":[],"astNodeIds":["0e801b20-ab0a-4bd8-8c68-5fba5d72e069","0d04ceb8-0465-4a61-a526-c5ceaaac233d"]}} +{"hook":{"id":"5dfc64e0-e717-4cc9-a052-e3c429be4695","sourceReference":{"javaMethod":{"className":"io.cucumber.jsonformatter.StepDefinitions","methodName":"tagged_passing_before_attachments","methodParameterTypes":["io.cucumber.java.Scenario"]}},"tagExpression":"@attachments","type":"BEFORE_TEST_CASE"}} +{"hook":{"id":"2b4bf5a5-2660-4bc5-a638-51242d22a711","sourceReference":{"javaMethod":{"className":"io.cucumber.jsonformatter.StepDefinitions","methodName":"tagged_failing_before_hook","methodParameterTypes":[]}},"tagExpression":"@failing_before","type":"BEFORE_TEST_CASE"}} +{"hook":{"id":"98efd286-d79f-47fe-9f50-b7cdc2309377","sourceReference":{"javaMethod":{"className":"io.cucumber.jsonformatter.StepDefinitions","methodName":"tagged_failing_before_step_hook","methodParameterTypes":[]}},"tagExpression":"@failing_before_step","type":"BEFORE_TEST_STEP"}} +{"stepDefinition":{"id":"201bab70-4dff-4aaa-8cc5-fe1b011aa2f7","pattern":{"source":"^.*pass.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaMethod":{"className":"io.cucumber.jsonformatter.StepDefinitions","methodName":"passing_step","methodParameterTypes":[]}}}} +{"stepDefinition":{"id":"aea5dd0c-12bd-45ec-a2cf-58dd2987c045","pattern":{"source":"^.*docstring.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaMethod":{"className":"io.cucumber.jsonformatter.StepDefinitions","methodName":"passing_step","methodParameterTypes":["io.cucumber.docstring.DocString"]}}}} +{"stepDefinition":{"id":"36de3f50-b88c-4122-8f6f-70ce1621d7a0","pattern":{"source":"^.*datatable.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaMethod":{"className":"io.cucumber.jsonformatter.StepDefinitions","methodName":"passing_step","methodParameterTypes":["io.cucumber.datatable.DataTable"]}}}} +{"stepDefinition":{"id":"d7f5a650-a93f-4c20-941b-33b57f86540f","pattern":{"source":"^.*pending.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaMethod":{"className":"io.cucumber.jsonformatter.StepDefinitions","methodName":"pending_step","methodParameterTypes":[]}}}} +{"stepDefinition":{"id":"e87b95ea-e317-4263-8926-41246394a73d","pattern":{"source":"^.*fail.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaMethod":{"className":"io.cucumber.jsonformatter.StepDefinitions","methodName":"failing_step","methodParameterTypes":[]}}}} +{"stepDefinition":{"id":"77bffb18-ef09-46c7-8e05-6227de30f5ad","pattern":{"source":"^.*decaying.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaMethod":{"className":"io.cucumber.jsonformatter.StepDefinitions","methodName":"decaying_step","methodParameterTypes":[]}}}} +{"stepDefinition":{"id":"32a27a28-953c-48a4-8d73-de021221da15","pattern":{"source":"^I have (\\d+) cukes(?: in my (.*))?$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaMethod":{"className":"io.cucumber.jsonformatter.StepDefinitions","methodName":"cukes_in_something","methodParameterTypes":["int","java.lang.String"]}}}} +{"stepDefinition":{"id":"f7067c38-6bfc-416a-9f6a-d774ff1c3f3b","pattern":{"source":"^.*attach.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaMethod":{"className":"io.cucumber.jsonformatter.StepDefinitions","methodName":"attaching_step","methodParameterTypes":[]}}}} +{"stepDefinition":{"id":"8494c0dc-eee1-43ed-b6bd-7333918f7058","pattern":{"source":"^.*ambiguous.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaMethod":{"className":"io.cucumber.jsonformatter.StepDefinitions","methodName":"ambiguous_step_a","methodParameterTypes":[]}}}} +{"stepDefinition":{"id":"78170f05-f027-4427-b119-a77e6454502e","pattern":{"source":"^.*ambiguous step.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaMethod":{"className":"io.cucumber.jsonformatter.StepDefinitions","methodName":"ambiguous_step_b","methodParameterTypes":[]}}}} +{"hook":{"id":"ca9a5a29-b55f-47c9-951a-a96aa3c76792","sourceReference":{"javaMethod":{"className":"io.cucumber.jsonformatter.StepDefinitions","methodName":"tagged_failing_after_step_hook","methodParameterTypes":[]}},"tagExpression":"@failing_after_step","type":"AFTER_TEST_STEP"}} +{"hook":{"id":"cc8ca4b0-5d6e-49a1-adc5-0f867c374172","sourceReference":{"javaMethod":{"className":"io.cucumber.jsonformatter.StepDefinitions","methodName":"tagged_failing_after_hook","methodParameterTypes":[]}},"tagExpression":"@failing_after","type":"AFTER_TEST_CASE"}} +{"testCase":{"id":"95d13d47-d254-4823-84dd-9d0488ff1d9f","pickleId":"692b7307-db1f-4f51-8d4b-976024d92b9c","testSteps":[{"id":"8e1e78b3-2a9b-4b3f-944a-ed7ec93b4c56","pickleStepId":"7034b14d-2a77-4a42-a44c-44dd238df755","stepDefinitionIds":["aea5dd0c-12bd-45ec-a2cf-58dd2987c045"],"stepMatchArgumentsLists":[{"stepMatchArguments":[]}]}]}} +{"testCaseStarted":{"attempt":0,"id":"d5dc6024-843f-4cfe-a56c-7e1fe0c6d5a3","testCaseId":"95d13d47-d254-4823-84dd-9d0488ff1d9f","workerId":"io.cucumber.core.cli.Main.main()","timestamp":{"seconds":1763644288,"nanos":371334824}}} +{"testStepStarted":{"testCaseStartedId":"d5dc6024-843f-4cfe-a56c-7e1fe0c6d5a3","testStepId":"8e1e78b3-2a9b-4b3f-944a-ed7ec93b4c56","timestamp":{"seconds":1763644288,"nanos":379014456}}} +{"testStepFinished":{"testCaseStartedId":"d5dc6024-843f-4cfe-a56c-7e1fe0c6d5a3","testStepId":"8e1e78b3-2a9b-4b3f-944a-ed7ec93b4c56","testStepResult":{"duration":{"seconds":0,"nanos":596910},"status":"PASSED"},"timestamp":{"seconds":1763644288,"nanos":379611366}}} +{"testCaseFinished":{"testCaseStartedId":"d5dc6024-843f-4cfe-a56c-7e1fe0c6d5a3","timestamp":{"seconds":1763644288,"nanos":382824547},"willBeRetried":false}} +{"testCase":{"id":"2853662a-fac5-436a-b388-55cc28c966df","pickleId":"d4e73c0e-dcbf-4753-9caa-b0f8a1ee4c84","testSteps":[{"id":"925def37-3a8f-4a7f-b52b-2d7fddbe5bae","pickleStepId":"9d52f691-dc13-4865-969e-ccb432540f09","stepDefinitionIds":["36de3f50-b88c-4122-8f6f-70ce1621d7a0"],"stepMatchArgumentsLists":[{"stepMatchArguments":[]}]}]}} +{"testCaseStarted":{"attempt":0,"id":"ab43ac07-5cff-41e5-8b25-bc37c0438eee","testCaseId":"2853662a-fac5-436a-b388-55cc28c966df","workerId":"io.cucumber.core.cli.Main.main()","timestamp":{"seconds":1763644288,"nanos":384293346}}} +{"testStepStarted":{"testCaseStartedId":"ab43ac07-5cff-41e5-8b25-bc37c0438eee","testStepId":"925def37-3a8f-4a7f-b52b-2d7fddbe5bae","timestamp":{"seconds":1763644288,"nanos":384561183}}} +{"testStepFinished":{"testCaseStartedId":"ab43ac07-5cff-41e5-8b25-bc37c0438eee","testStepId":"925def37-3a8f-4a7f-b52b-2d7fddbe5bae","testStepResult":{"duration":{"seconds":0,"nanos":867732},"status":"PASSED"},"timestamp":{"seconds":1763644288,"nanos":385428915}}} +{"testCaseFinished":{"testCaseStartedId":"ab43ac07-5cff-41e5-8b25-bc37c0438eee","timestamp":{"seconds":1763644288,"nanos":386516513},"willBeRetried":false}} +{"testRunFinished":{"success":true,"timestamp":{"seconds":1763644288,"nanos":386880191}}} diff --git a/testdata/cucumber-jvm/7.26.0-java/testdata/pickle-arguments-interpolated.ndjson.jvm.json b/testdata/cucumber-jvm/7.26.0-java/testdata/pickle-arguments-interpolated.ndjson.jvm.json index 5fae477..d04ac4c 100644 --- a/testdata/cucumber-jvm/7.26.0-java/testdata/pickle-arguments-interpolated.ndjson.jvm.json +++ b/testdata/cucumber-jvm/7.26.0-java/testdata/pickle-arguments-interpolated.ndjson.jvm.json @@ -1 +1 @@ -[{"line":1,"elements":[{"start_timestamp":"2025-11-20T12:58:24.146Z","line":11,"name":"docstring","description":"","id":"pickle-arguments-interpolated;docstring;;2","type":"scenario","keyword":"Scenario Outline","steps":[{"result":{"duration":653197,"status":"passed"},"line":4,"name":"this step accepts an docstring","match":{"location":"io.cucumber.jsonformatter.StepDefinitions.passing_step(io.cucumber.docstring.DocString)"},"keyword":"Given ","doc_string":{"content_type":"application/json","line":5,"value":"{ \"key\": \"\" }"}}]},{"start_timestamp":"2025-11-20T12:58:24.160Z","line":20,"name":"datatable","description":"","id":"pickle-arguments-interpolated;datatable;;2","type":"scenario","keyword":"Scenario Outline","steps":[{"result":{"duration":441577,"status":"passed"},"line":14,"name":"this step accepts an datatable","match":{"location":"io.cucumber.jsonformatter.StepDefinitions.passing_step(io.cucumber.datatable.DataTable)"},"rows":[{"cells":["key"]},{"cells":[""]}],"keyword":"Given "}]}],"name":"pickle-arguments-interpolated","description":"","id":"pickle-arguments-interpolated","keyword":"Feature","uri":"file:///home/mpkorstanje/Projects/cucumber/json-formatter/testdata/cucumber-jvm/7.26.0-java/../../features/pickle-arguments-interpolated.feature","tags":[]}] \ No newline at end of file +[{"line":1,"elements":[{"start_timestamp":"2025-11-20T13:11:28.371Z","line":11,"name":"docstring","description":"","id":"pickle-arguments-interpolated;docstring;;2","type":"scenario","keyword":"Scenario Outline","steps":[{"result":{"duration":596910,"status":"passed"},"line":4,"name":"this step accepts a docstring","match":{"location":"io.cucumber.jsonformatter.StepDefinitions.passing_step(io.cucumber.docstring.DocString)"},"keyword":"Given ","doc_string":{"content_type":"application/json","line":5,"value":"{ \"hello\": \"word\" }"}}]},{"start_timestamp":"2025-11-20T13:11:28.384Z","line":20,"name":"datatable","description":"","id":"pickle-arguments-interpolated;datatable;;2","type":"scenario","keyword":"Scenario Outline","steps":[{"result":{"duration":867732,"status":"passed"},"line":14,"name":"this step accepts a datatable","match":{"location":"io.cucumber.jsonformatter.StepDefinitions.passing_step(io.cucumber.datatable.DataTable)"},"rows":[{"cells":["hello"]},{"cells":["world"]}],"keyword":"Given "}]}],"name":"pickle-arguments-interpolated","description":"","id":"pickle-arguments-interpolated","keyword":"Feature","uri":"file:///home/mpkorstanje/Projects/cucumber/json-formatter/testdata/cucumber-jvm/7.26.0-java/../../features/pickle-arguments-interpolated.feature","tags":[]}] \ No newline at end of file diff --git a/testdata/cucumber-jvm/7.26.0-java8/testdata/pickle-arguments-interpolated.ndjson b/testdata/cucumber-jvm/7.26.0-java8/testdata/pickle-arguments-interpolated.ndjson index b58537f..c628f6e 100644 --- a/testdata/cucumber-jvm/7.26.0-java8/testdata/pickle-arguments-interpolated.ndjson +++ b/testdata/cucumber-jvm/7.26.0-java8/testdata/pickle-arguments-interpolated.ndjson @@ -1,32 +1,32 @@ {"meta":{"protocolVersion":"28.0.0","implementation":{"name":"cucumber-jvm","version":"7.26.0"},"runtime":{"name":"OpenJDK 64-Bit Server VM","version":"21.0.4+7-LTS"},"os":{"name":"Linux"},"cpu":{"name":"amd64"}}} -{"testRunStarted":{"timestamp":{"seconds":1763643538,"nanos":400223911}}} -{"source":{"uri":"file:///home/mpkorstanje/Projects/cucumber/json-formatter/testdata/cucumber-jvm/7.26.0-java8/../../features/pickle-arguments-interpolated.feature","data":"Feature: pickle-arguments-interpolated\n\n Scenario Outline: docstring\n Given this step accepts an docstring\n \"\"\"application/json\n { \"key\": \"\" }\n \"\"\"\n\n Examples:\n | key |\n | value |\n\n Scenario Outline: datatable\n Given this step accepts an datatable\n | key |\n | |\n\n Examples:\n | key |\n | value |","mediaType":"text/x.cucumber.gherkin+plain"}} -{"gherkinDocument":{"uri":"file:///home/mpkorstanje/Projects/cucumber/json-formatter/testdata/cucumber-jvm/7.26.0-java8/../../features/pickle-arguments-interpolated.feature","feature":{"location":{"line":1,"column":1},"tags":[],"language":"en","keyword":"Feature","name":"pickle-arguments-interpolated","description":"","children":[{"scenario":{"location":{"line":3,"column":3},"tags":[],"keyword":"Scenario Outline","name":"docstring","description":"","steps":[{"location":{"line":4,"column":5},"keyword":"Given ","keywordType":"Context","text":"this step accepts an docstring","docString":{"location":{"line":5,"column":7},"mediaType":"application/json","content":"{ \"key\": \"\" }","delimiter":"\"\"\""},"id":"c196f3d7-8ae7-4c0c-b13b-fa37f3ef5059"}],"examples":[{"location":{"line":9,"column":5},"tags":[],"keyword":"Examples","name":"","description":"","tableHeader":{"location":{"line":10,"column":7},"cells":[{"location":{"line":10,"column":9},"value":"key"}],"id":"ff15a559-c85d-43c5-a16b-bf1bf595e16a"},"tableBody":[{"location":{"line":11,"column":7},"cells":[{"location":{"line":11,"column":9},"value":"value"}],"id":"84a9bb63-3ae1-4497-a0a8-fe35792c45ee"}],"id":"60c3bb22-d8a9-42dd-947d-64530b908faf"}],"id":"93a96504-d656-4bae-8ce4-1509b779e9ce"}},{"scenario":{"location":{"line":13,"column":3},"tags":[],"keyword":"Scenario Outline","name":"datatable","description":"","steps":[{"location":{"line":14,"column":5},"keyword":"Given ","keywordType":"Context","text":"this step accepts an datatable","dataTable":{"location":{"line":15,"column":7},"rows":[{"location":{"line":15,"column":7},"cells":[{"location":{"line":15,"column":9},"value":"key"}],"id":"d4e4ef0a-5d78-4c1b-9a3d-ef6c19080e6e"},{"location":{"line":16,"column":7},"cells":[{"location":{"line":16,"column":9},"value":""}],"id":"f3325e51-692c-4cd8-850c-5b9532ab2c6e"}]},"id":"9ec6b6b3-d6be-4a05-ba19-e50a1bc51c1b"}],"examples":[{"location":{"line":18,"column":5},"tags":[],"keyword":"Examples","name":"","description":"","tableHeader":{"location":{"line":19,"column":7},"cells":[{"location":{"line":19,"column":9},"value":"key"}],"id":"0c9ac16f-cdc9-407c-aeb0-862a9c0fa8cf"},"tableBody":[{"location":{"line":20,"column":7},"cells":[{"location":{"line":20,"column":9},"value":"value"}],"id":"9eece2a5-2ec8-4524-b19a-801e946262f0"}],"id":"c0444825-f979-436d-a0c1-9e80212cbd84"}],"id":"77786b3a-d1de-422e-bda6-76cce95359b5"}}]},"comments":[]}} -{"pickle":{"id":"e778848e-3662-4929-81ab-e7e0da3e1fa9","uri":"file:///home/mpkorstanje/Projects/cucumber/json-formatter/testdata/cucumber-jvm/7.26.0-java8/../../features/pickle-arguments-interpolated.feature","name":"docstring","language":"en","steps":[{"argument":{"docString":{"mediaType":"application/json","content":"{ \"key\": \"\" }"}},"astNodeIds":["c196f3d7-8ae7-4c0c-b13b-fa37f3ef5059","84a9bb63-3ae1-4497-a0a8-fe35792c45ee"],"id":"d60f7a9f-a549-44a2-9585-3f2c9e3e2b3a","type":"Context","text":"this step accepts an docstring"}],"tags":[],"astNodeIds":["93a96504-d656-4bae-8ce4-1509b779e9ce","84a9bb63-3ae1-4497-a0a8-fe35792c45ee"]}} -{"pickle":{"id":"a9797efc-2d2f-46c0-b735-86077adbf40b","uri":"file:///home/mpkorstanje/Projects/cucumber/json-formatter/testdata/cucumber-jvm/7.26.0-java8/../../features/pickle-arguments-interpolated.feature","name":"datatable","language":"en","steps":[{"argument":{"dataTable":{"rows":[{"cells":[{"value":"key"}]},{"cells":[{"value":""}]}]}},"astNodeIds":["9ec6b6b3-d6be-4a05-ba19-e50a1bc51c1b","9eece2a5-2ec8-4524-b19a-801e946262f0"],"id":"06910b00-586a-4455-8b50-45c1e2aada9f","type":"Context","text":"this step accepts an datatable"}],"tags":[],"astNodeIds":["77786b3a-d1de-422e-bda6-76cce95359b5","9eece2a5-2ec8-4524-b19a-801e946262f0"]}} -{"hook":{"id":"bc131dbe-6a85-4ed6-96a6-1a144c040976","sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.java","methodName":""},"location":{"line":17}},"tagExpression":"@attachments","type":"BEFORE_TEST_CASE"}} -{"hook":{"id":"ca81fb6d-161f-4c9f-8a52-a800843b5cdf","sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.java","methodName":""},"location":{"line":21}},"tagExpression":"@failing_before","type":"BEFORE_TEST_CASE"}} -{"hook":{"id":"a4fcdd02-6b75-40a5-8967-df7c25380eba","sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.java","methodName":""},"location":{"line":29}},"tagExpression":"@failing_before_step","type":"BEFORE_TEST_CASE"}} -{"stepDefinition":{"id":"0a9c1e72-0fbe-44ae-8ec2-44497fc37aea","pattern":{"source":"^.*pass.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.java","methodName":""},"location":{"line":38}}}} -{"stepDefinition":{"id":"1d71e881-2903-4ff5-b6a7-55b0cf17ded6","pattern":{"source":"^.*docstring.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.java","methodName":""},"location":{"line":42}}}} -{"stepDefinition":{"id":"2ef9acc2-53b8-4ad9-a5bf-f1ae2360938c","pattern":{"source":"^.*datatable.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.java","methodName":""},"location":{"line":46}}}} -{"stepDefinition":{"id":"d911ddde-7d21-4bc8-9604-39366a5a32a3","pattern":{"source":"^.*pending.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.java","methodName":""},"location":{"line":50}}}} -{"stepDefinition":{"id":"cf1697f6-ca28-4d69-b541-aa33b395e805","pattern":{"source":"^.*fail.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.java","methodName":""},"location":{"line":54}}}} -{"stepDefinition":{"id":"39209d58-d4a2-40b5-b26d-f58968b2881d","pattern":{"source":"^.*decaying.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.java","methodName":""},"location":{"line":58}}}} -{"stepDefinition":{"id":"e9b78ef5-c3fa-4470-befe-fb44cdffff02","pattern":{"source":"^I have (\\d+) cukes(?: in my (.*))?$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.java","methodName":""},"location":{"line":64}}}} -{"stepDefinition":{"id":"f9706498-87c9-42ef-b67d-e153a5749b01","pattern":{"source":"^.*attach.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.java","methodName":""},"location":{"line":68}}}} -{"stepDefinition":{"id":"0234c2fc-063c-4d1c-a38a-e5f45bd80719","pattern":{"source":"^.*ambiguous.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.java","methodName":""},"location":{"line":74}}}} -{"stepDefinition":{"id":"1deea16c-ed64-4809-a025-6f1d58045be9","pattern":{"source":"^.*ambiguous step.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.java","methodName":""},"location":{"line":78}}}} -{"hook":{"id":"3964de23-98aa-4052-b840-54fab9984b16","sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.java","methodName":""},"location":{"line":25}},"tagExpression":"@failing_after","type":"AFTER_TEST_CASE"}} -{"hook":{"id":"b5a37321-3789-46c5-8618-0d4609ff95b5","sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.java","methodName":""},"location":{"line":33}},"tagExpression":"@failing_after_step","type":"AFTER_TEST_CASE"}} -{"testCase":{"id":"7f854094-ca5e-42eb-b9e2-21e646d4f759","pickleId":"e778848e-3662-4929-81ab-e7e0da3e1fa9","testSteps":[{"id":"4edc5068-22c5-4535-9d56-c936c3986da6","pickleStepId":"d60f7a9f-a549-44a2-9585-3f2c9e3e2b3a","stepDefinitionIds":["1d71e881-2903-4ff5-b6a7-55b0cf17ded6"],"stepMatchArgumentsLists":[{"stepMatchArguments":[]}]}]}} -{"testCaseStarted":{"attempt":0,"id":"74e55319-11c3-439a-857c-359863604f4c","testCaseId":"7f854094-ca5e-42eb-b9e2-21e646d4f759","workerId":"io.cucumber.core.cli.Main.main()","timestamp":{"seconds":1763643538,"nanos":462430366}}} -{"testStepStarted":{"testCaseStartedId":"74e55319-11c3-439a-857c-359863604f4c","testStepId":"4edc5068-22c5-4535-9d56-c936c3986da6","timestamp":{"seconds":1763643538,"nanos":469642358}}} -{"testStepFinished":{"testCaseStartedId":"74e55319-11c3-439a-857c-359863604f4c","testStepId":"4edc5068-22c5-4535-9d56-c936c3986da6","testStepResult":{"duration":{"seconds":0,"nanos":688093},"status":"PASSED"},"timestamp":{"seconds":1763643538,"nanos":470330451}}} -{"testCaseFinished":{"testCaseStartedId":"74e55319-11c3-439a-857c-359863604f4c","timestamp":{"seconds":1763643538,"nanos":473909961},"willBeRetried":false}} -{"testCase":{"id":"0c67a8f5-a807-4c52-8387-44abad32cc50","pickleId":"a9797efc-2d2f-46c0-b735-86077adbf40b","testSteps":[{"id":"30776e73-e9fd-494a-a85a-48e6e13de53c","pickleStepId":"06910b00-586a-4455-8b50-45c1e2aada9f","stepDefinitionIds":["2ef9acc2-53b8-4ad9-a5bf-f1ae2360938c"],"stepMatchArgumentsLists":[{"stepMatchArguments":[]}]}]}} -{"testCaseStarted":{"attempt":0,"id":"142e2532-4dbf-4dc2-a94d-3c001d45c126","testCaseId":"0c67a8f5-a807-4c52-8387-44abad32cc50","workerId":"io.cucumber.core.cli.Main.main()","timestamp":{"seconds":1763643538,"nanos":475852902}}} -{"testStepStarted":{"testCaseStartedId":"142e2532-4dbf-4dc2-a94d-3c001d45c126","testStepId":"30776e73-e9fd-494a-a85a-48e6e13de53c","timestamp":{"seconds":1763643538,"nanos":476110099}}} -{"testStepFinished":{"testCaseStartedId":"142e2532-4dbf-4dc2-a94d-3c001d45c126","testStepId":"30776e73-e9fd-494a-a85a-48e6e13de53c","testStepResult":{"duration":{"seconds":0,"nanos":396802},"status":"PASSED"},"timestamp":{"seconds":1763643538,"nanos":476506901}}} -{"testCaseFinished":{"testCaseStartedId":"142e2532-4dbf-4dc2-a94d-3c001d45c126","timestamp":{"seconds":1763643538,"nanos":477578561},"willBeRetried":false}} -{"testRunFinished":{"success":true,"timestamp":{"seconds":1763643538,"nanos":477962778}}} +{"testRunStarted":{"timestamp":{"seconds":1763644293,"nanos":395860541}}} +{"source":{"uri":"file:///home/mpkorstanje/Projects/cucumber/json-formatter/testdata/cucumber-jvm/7.26.0-java8/../../features/pickle-arguments-interpolated.feature","data":"Feature: pickle-arguments-interpolated\n\n Scenario Outline: docstring\n Given this step accepts a docstring\n \"\"\"application/json\n { \"hello\": \"\" }\n \"\"\"\n\n Examples:\n | key |\n | word |\n\n Scenario Outline: datatable\n Given this step accepts a datatable\n | hello |\n | |\n\n Examples:\n | key |\n | world |","mediaType":"text/x.cucumber.gherkin+plain"}} +{"gherkinDocument":{"uri":"file:///home/mpkorstanje/Projects/cucumber/json-formatter/testdata/cucumber-jvm/7.26.0-java8/../../features/pickle-arguments-interpolated.feature","feature":{"location":{"line":1,"column":1},"tags":[],"language":"en","keyword":"Feature","name":"pickle-arguments-interpolated","description":"","children":[{"scenario":{"location":{"line":3,"column":3},"tags":[],"keyword":"Scenario Outline","name":"docstring","description":"","steps":[{"location":{"line":4,"column":5},"keyword":"Given ","keywordType":"Context","text":"this step accepts a docstring","docString":{"location":{"line":5,"column":7},"mediaType":"application/json","content":"{ \"hello\": \"\" }","delimiter":"\"\"\""},"id":"b2436f70-f3f5-4ae0-810f-66a43d6014c0"}],"examples":[{"location":{"line":9,"column":5},"tags":[],"keyword":"Examples","name":"","description":"","tableHeader":{"location":{"line":10,"column":7},"cells":[{"location":{"line":10,"column":9},"value":"key"}],"id":"8f65046c-c02f-437a-b836-4165883d1776"},"tableBody":[{"location":{"line":11,"column":7},"cells":[{"location":{"line":11,"column":9},"value":"word"}],"id":"8f6513fe-5272-433f-bb03-e76e340c5405"}],"id":"43dd0602-c837-41df-85e3-2ced82b6723a"}],"id":"7d1efea1-fb8e-41fd-b2f2-8d22e93fbab7"}},{"scenario":{"location":{"line":13,"column":3},"tags":[],"keyword":"Scenario Outline","name":"datatable","description":"","steps":[{"location":{"line":14,"column":5},"keyword":"Given ","keywordType":"Context","text":"this step accepts a datatable","dataTable":{"location":{"line":15,"column":7},"rows":[{"location":{"line":15,"column":7},"cells":[{"location":{"line":15,"column":9},"value":"hello"}],"id":"bc5f02a1-7cb8-4f4f-9b9a-cb895a433c72"},{"location":{"line":16,"column":7},"cells":[{"location":{"line":16,"column":9},"value":""}],"id":"7137faa1-42c5-44cf-82fe-23d9ab2d3c4f"}]},"id":"fb910164-bfab-4889-bbc4-23163159fede"}],"examples":[{"location":{"line":18,"column":5},"tags":[],"keyword":"Examples","name":"","description":"","tableHeader":{"location":{"line":19,"column":7},"cells":[{"location":{"line":19,"column":9},"value":"key"}],"id":"76193db8-591e-470a-ba29-ee6bbae12247"},"tableBody":[{"location":{"line":20,"column":7},"cells":[{"location":{"line":20,"column":9},"value":"world"}],"id":"9ccc0c3d-c5ba-4a14-993a-53369b20f657"}],"id":"6755df79-a5a6-4330-83b2-d004349b1242"}],"id":"187822b4-e401-4242-a928-04a909b576aa"}}]},"comments":[]}} +{"pickle":{"id":"031bb3c3-7bd6-4082-a5ae-0303c2226504","uri":"file:///home/mpkorstanje/Projects/cucumber/json-formatter/testdata/cucumber-jvm/7.26.0-java8/../../features/pickle-arguments-interpolated.feature","name":"docstring","language":"en","steps":[{"argument":{"docString":{"mediaType":"application/json","content":"{ \"hello\": \"word\" }"}},"astNodeIds":["b2436f70-f3f5-4ae0-810f-66a43d6014c0","8f6513fe-5272-433f-bb03-e76e340c5405"],"id":"08e2abee-2ff5-492f-af54-51ab7ca6dced","type":"Context","text":"this step accepts a docstring"}],"tags":[],"astNodeIds":["7d1efea1-fb8e-41fd-b2f2-8d22e93fbab7","8f6513fe-5272-433f-bb03-e76e340c5405"]}} +{"pickle":{"id":"21435507-16d7-43cb-8cc8-3f6d664985fd","uri":"file:///home/mpkorstanje/Projects/cucumber/json-formatter/testdata/cucumber-jvm/7.26.0-java8/../../features/pickle-arguments-interpolated.feature","name":"datatable","language":"en","steps":[{"argument":{"dataTable":{"rows":[{"cells":[{"value":"hello"}]},{"cells":[{"value":"world"}]}]}},"astNodeIds":["fb910164-bfab-4889-bbc4-23163159fede","9ccc0c3d-c5ba-4a14-993a-53369b20f657"],"id":"79a77c37-2427-45e6-bd55-e29d58b00973","type":"Context","text":"this step accepts a datatable"}],"tags":[],"astNodeIds":["187822b4-e401-4242-a928-04a909b576aa","9ccc0c3d-c5ba-4a14-993a-53369b20f657"]}} +{"hook":{"id":"7cfc89f4-c540-4e10-bde0-92e741ae8a42","sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.java","methodName":""},"location":{"line":17}},"tagExpression":"@attachments","type":"BEFORE_TEST_CASE"}} +{"hook":{"id":"d4c46fe9-f0c4-4d88-b782-efde44703263","sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.java","methodName":""},"location":{"line":21}},"tagExpression":"@failing_before","type":"BEFORE_TEST_CASE"}} +{"hook":{"id":"ed6b163b-ae33-4ea6-a235-31743367af38","sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.java","methodName":""},"location":{"line":29}},"tagExpression":"@failing_before_step","type":"BEFORE_TEST_CASE"}} +{"stepDefinition":{"id":"e9fcd492-996e-49b2-a18c-22343f6cba50","pattern":{"source":"^.*pass.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.java","methodName":""},"location":{"line":38}}}} +{"stepDefinition":{"id":"0e094970-8a31-44ca-866c-c90cf087d5bb","pattern":{"source":"^.*docstring.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.java","methodName":""},"location":{"line":42}}}} +{"stepDefinition":{"id":"f687cb32-5f16-4a53-ab5a-a7c469b564f8","pattern":{"source":"^.*datatable.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.java","methodName":""},"location":{"line":46}}}} +{"stepDefinition":{"id":"908b4dd8-7f6c-4dbe-8286-b0277076ab7d","pattern":{"source":"^.*pending.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.java","methodName":""},"location":{"line":50}}}} +{"stepDefinition":{"id":"a4b09951-3078-4e66-9cb3-7324282b0217","pattern":{"source":"^.*fail.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.java","methodName":""},"location":{"line":54}}}} +{"stepDefinition":{"id":"f9a2b25f-d02a-42e2-9cae-466a5eb0e10f","pattern":{"source":"^.*decaying.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.java","methodName":""},"location":{"line":58}}}} +{"stepDefinition":{"id":"944ff74d-9fdc-4bd6-b3a1-c110ea3dade7","pattern":{"source":"^I have (\\d+) cukes(?: in my (.*))?$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.java","methodName":""},"location":{"line":64}}}} +{"stepDefinition":{"id":"a7900b3f-15ea-43ab-bc51-feaf24827dba","pattern":{"source":"^.*attach.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.java","methodName":""},"location":{"line":68}}}} +{"stepDefinition":{"id":"42648552-8b5a-4f44-8b07-4a2fbf221ebf","pattern":{"source":"^.*ambiguous.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.java","methodName":""},"location":{"line":74}}}} +{"stepDefinition":{"id":"82a792ae-457b-4035-927b-51c4f6d2217b","pattern":{"source":"^.*ambiguous step.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.java","methodName":""},"location":{"line":78}}}} +{"hook":{"id":"d52bd150-8787-402c-81e3-566cf949f243","sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.java","methodName":""},"location":{"line":25}},"tagExpression":"@failing_after","type":"AFTER_TEST_CASE"}} +{"hook":{"id":"d2785434-0040-4977-9e01-c27d9ad3f33d","sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.java","methodName":""},"location":{"line":33}},"tagExpression":"@failing_after_step","type":"AFTER_TEST_CASE"}} +{"testCase":{"id":"c2324d0e-35df-4b3a-abd7-3200369b70f4","pickleId":"031bb3c3-7bd6-4082-a5ae-0303c2226504","testSteps":[{"id":"071373a2-4c84-4f94-8b2c-19b67d3e7a6d","pickleStepId":"08e2abee-2ff5-492f-af54-51ab7ca6dced","stepDefinitionIds":["0e094970-8a31-44ca-866c-c90cf087d5bb"],"stepMatchArgumentsLists":[{"stepMatchArguments":[]}]}]}} +{"testCaseStarted":{"attempt":0,"id":"eee95b3c-18f8-41d6-97ca-cbb724205d29","testCaseId":"c2324d0e-35df-4b3a-abd7-3200369b70f4","workerId":"io.cucumber.core.cli.Main.main()","timestamp":{"seconds":1763644293,"nanos":462892620}}} +{"testStepStarted":{"testCaseStartedId":"eee95b3c-18f8-41d6-97ca-cbb724205d29","testStepId":"071373a2-4c84-4f94-8b2c-19b67d3e7a6d","timestamp":{"seconds":1763644293,"nanos":470281553}}} +{"testStepFinished":{"testCaseStartedId":"eee95b3c-18f8-41d6-97ca-cbb724205d29","testStepId":"071373a2-4c84-4f94-8b2c-19b67d3e7a6d","testStepResult":{"duration":{"seconds":0,"nanos":737545},"status":"PASSED"},"timestamp":{"seconds":1763644293,"nanos":471019098}}} +{"testCaseFinished":{"testCaseStartedId":"eee95b3c-18f8-41d6-97ca-cbb724205d29","timestamp":{"seconds":1763644293,"nanos":474357546},"willBeRetried":false}} +{"testCase":{"id":"8076626b-abdb-4540-8a18-0d92b3418bf2","pickleId":"21435507-16d7-43cb-8cc8-3f6d664985fd","testSteps":[{"id":"ccfc815a-1e7a-445a-9abd-bcde1b929c72","pickleStepId":"79a77c37-2427-45e6-bd55-e29d58b00973","stepDefinitionIds":["f687cb32-5f16-4a53-ab5a-a7c469b564f8"],"stepMatchArgumentsLists":[{"stepMatchArguments":[]}]}]}} +{"testCaseStarted":{"attempt":0,"id":"5de3d5fd-7458-4e6c-9504-cdc5f50110d8","testCaseId":"8076626b-abdb-4540-8a18-0d92b3418bf2","workerId":"io.cucumber.core.cli.Main.main()","timestamp":{"seconds":1763644293,"nanos":476442522}}} +{"testStepStarted":{"testCaseStartedId":"5de3d5fd-7458-4e6c-9504-cdc5f50110d8","testStepId":"ccfc815a-1e7a-445a-9abd-bcde1b929c72","timestamp":{"seconds":1763644293,"nanos":476730466}}} +{"testStepFinished":{"testCaseStartedId":"5de3d5fd-7458-4e6c-9504-cdc5f50110d8","testStepId":"ccfc815a-1e7a-445a-9abd-bcde1b929c72","testStepResult":{"duration":{"seconds":0,"nanos":467575},"status":"PASSED"},"timestamp":{"seconds":1763644293,"nanos":477198041}}} +{"testCaseFinished":{"testCaseStartedId":"5de3d5fd-7458-4e6c-9504-cdc5f50110d8","timestamp":{"seconds":1763644293,"nanos":478347687},"willBeRetried":false}} +{"testRunFinished":{"success":true,"timestamp":{"seconds":1763644293,"nanos":478796426}}} diff --git a/testdata/cucumber-jvm/7.26.0-java8/testdata/pickle-arguments-interpolated.ndjson.jvm.json b/testdata/cucumber-jvm/7.26.0-java8/testdata/pickle-arguments-interpolated.ndjson.jvm.json index 09f5e99..c888094 100644 --- a/testdata/cucumber-jvm/7.26.0-java8/testdata/pickle-arguments-interpolated.ndjson.jvm.json +++ b/testdata/cucumber-jvm/7.26.0-java8/testdata/pickle-arguments-interpolated.ndjson.jvm.json @@ -1 +1 @@ -[{"line":1,"elements":[{"start_timestamp":"2025-11-20T12:58:58.462Z","line":11,"name":"docstring","description":"","id":"pickle-arguments-interpolated;docstring;;2","type":"scenario","keyword":"Scenario Outline","steps":[{"result":{"duration":688093,"status":"passed"},"line":4,"name":"this step accepts an docstring","match":{"location":"io.cucumber.jsonformatter.StepDefinitions.(StepDefinitions.java:42)"},"keyword":"Given ","doc_string":{"content_type":"application/json","line":5,"value":"{ \"key\": \"\" }"}}]},{"start_timestamp":"2025-11-20T12:58:58.475Z","line":20,"name":"datatable","description":"","id":"pickle-arguments-interpolated;datatable;;2","type":"scenario","keyword":"Scenario Outline","steps":[{"result":{"duration":396802,"status":"passed"},"line":14,"name":"this step accepts an datatable","match":{"location":"io.cucumber.jsonformatter.StepDefinitions.(StepDefinitions.java:46)"},"rows":[{"cells":["key"]},{"cells":[""]}],"keyword":"Given "}]}],"name":"pickle-arguments-interpolated","description":"","id":"pickle-arguments-interpolated","keyword":"Feature","uri":"file:///home/mpkorstanje/Projects/cucumber/json-formatter/testdata/cucumber-jvm/7.26.0-java8/../../features/pickle-arguments-interpolated.feature","tags":[]}] \ No newline at end of file +[{"line":1,"elements":[{"start_timestamp":"2025-11-20T13:11:33.462Z","line":11,"name":"docstring","description":"","id":"pickle-arguments-interpolated;docstring;;2","type":"scenario","keyword":"Scenario Outline","steps":[{"result":{"duration":737545,"status":"passed"},"line":4,"name":"this step accepts a docstring","match":{"location":"io.cucumber.jsonformatter.StepDefinitions.(StepDefinitions.java:42)"},"keyword":"Given ","doc_string":{"content_type":"application/json","line":5,"value":"{ \"hello\": \"word\" }"}}]},{"start_timestamp":"2025-11-20T13:11:33.476Z","line":20,"name":"datatable","description":"","id":"pickle-arguments-interpolated;datatable;;2","type":"scenario","keyword":"Scenario Outline","steps":[{"result":{"duration":467575,"status":"passed"},"line":14,"name":"this step accepts a datatable","match":{"location":"io.cucumber.jsonformatter.StepDefinitions.(StepDefinitions.java:46)"},"rows":[{"cells":["hello"]},{"cells":["world"]}],"keyword":"Given "}]}],"name":"pickle-arguments-interpolated","description":"","id":"pickle-arguments-interpolated","keyword":"Feature","uri":"file:///home/mpkorstanje/Projects/cucumber/json-formatter/testdata/cucumber-jvm/7.26.0-java8/../../features/pickle-arguments-interpolated.feature","tags":[]}] \ No newline at end of file diff --git a/testdata/cucumber-jvm/7.26.0-scala/testdata/pickle-arguments-interpolated.ndjson b/testdata/cucumber-jvm/7.26.0-scala/testdata/pickle-arguments-interpolated.ndjson index b8032e9..dba6cd1 100644 --- a/testdata/cucumber-jvm/7.26.0-scala/testdata/pickle-arguments-interpolated.ndjson +++ b/testdata/cucumber-jvm/7.26.0-scala/testdata/pickle-arguments-interpolated.ndjson @@ -1,47 +1,47 @@ {"meta":{"protocolVersion":"28.0.0","implementation":{"name":"cucumber-jvm","version":"7.26.0"},"runtime":{"name":"OpenJDK 64-Bit Server VM","version":"21.0.4+7-LTS"},"os":{"name":"Linux"},"cpu":{"name":"amd64"}}} -{"testRunStarted":{"timestamp":{"seconds":1763643535,"nanos":994243052}}} -{"source":{"uri":"file:///home/mpkorstanje/Projects/cucumber/json-formatter/testdata/cucumber-jvm/7.26.0-scala/../../features/pickle-arguments-interpolated.feature","data":"Feature: pickle-arguments-interpolated\n\n Scenario Outline: docstring\n Given this step accepts an docstring\n \"\"\"application/json\n { \"key\": \"\" }\n \"\"\"\n\n Examples:\n | key |\n | value |\n\n Scenario Outline: datatable\n Given this step accepts an datatable\n | key |\n | |\n\n Examples:\n | key |\n | value |","mediaType":"text/x.cucumber.gherkin+plain"}} -{"gherkinDocument":{"uri":"file:///home/mpkorstanje/Projects/cucumber/json-formatter/testdata/cucumber-jvm/7.26.0-scala/../../features/pickle-arguments-interpolated.feature","feature":{"location":{"line":1,"column":1},"tags":[],"language":"en","keyword":"Feature","name":"pickle-arguments-interpolated","description":"","children":[{"scenario":{"location":{"line":3,"column":3},"tags":[],"keyword":"Scenario Outline","name":"docstring","description":"","steps":[{"location":{"line":4,"column":5},"keyword":"Given ","keywordType":"Context","text":"this step accepts an docstring","docString":{"location":{"line":5,"column":7},"mediaType":"application/json","content":"{ \"key\": \"\" }","delimiter":"\"\"\""},"id":"61a6c26a-8cf5-4918-ac31-bb51f005a5bf"}],"examples":[{"location":{"line":9,"column":5},"tags":[],"keyword":"Examples","name":"","description":"","tableHeader":{"location":{"line":10,"column":7},"cells":[{"location":{"line":10,"column":9},"value":"key"}],"id":"c4b6ac6f-4832-4415-b059-bf59fc599bb8"},"tableBody":[{"location":{"line":11,"column":7},"cells":[{"location":{"line":11,"column":9},"value":"value"}],"id":"82813948-d7de-49b4-a4a1-02dac100b031"}],"id":"3b02a5b8-e24e-417f-9f7f-f63e948966d0"}],"id":"ddcc046b-356a-4f0c-ab6c-109c60a6543d"}},{"scenario":{"location":{"line":13,"column":3},"tags":[],"keyword":"Scenario Outline","name":"datatable","description":"","steps":[{"location":{"line":14,"column":5},"keyword":"Given ","keywordType":"Context","text":"this step accepts an datatable","dataTable":{"location":{"line":15,"column":7},"rows":[{"location":{"line":15,"column":7},"cells":[{"location":{"line":15,"column":9},"value":"key"}],"id":"9e3f4961-2757-438e-98e6-1c14e7997ef1"},{"location":{"line":16,"column":7},"cells":[{"location":{"line":16,"column":9},"value":""}],"id":"e128dcc9-1a74-450b-b1dc-5d6e4f686aa4"}]},"id":"a9d4a493-d565-46b4-9ec4-f7db2e969de0"}],"examples":[{"location":{"line":18,"column":5},"tags":[],"keyword":"Examples","name":"","description":"","tableHeader":{"location":{"line":19,"column":7},"cells":[{"location":{"line":19,"column":9},"value":"key"}],"id":"5682653e-e79b-49b1-a0c9-e5f735150bbd"},"tableBody":[{"location":{"line":20,"column":7},"cells":[{"location":{"line":20,"column":9},"value":"value"}],"id":"9bfb8844-6154-49fd-95de-e62c5b9d0177"}],"id":"f3bee80d-228c-4f2a-83f8-2cd2c6569947"}],"id":"37db1b77-4827-4cbf-9ce8-71c2f5598b9e"}}]},"comments":[]}} -{"pickle":{"id":"fc36c51f-2752-421b-a735-3bde2fd13a83","uri":"file:///home/mpkorstanje/Projects/cucumber/json-formatter/testdata/cucumber-jvm/7.26.0-scala/../../features/pickle-arguments-interpolated.feature","name":"docstring","language":"en","steps":[{"argument":{"docString":{"mediaType":"application/json","content":"{ \"key\": \"\" }"}},"astNodeIds":["61a6c26a-8cf5-4918-ac31-bb51f005a5bf","82813948-d7de-49b4-a4a1-02dac100b031"],"id":"8b89ecfd-0092-4d5b-8a89-62d780d75f32","type":"Context","text":"this step accepts an docstring"}],"tags":[],"astNodeIds":["ddcc046b-356a-4f0c-ab6c-109c60a6543d","82813948-d7de-49b4-a4a1-02dac100b031"]}} -{"pickle":{"id":"bca92b45-6422-41c3-a75d-495405917253","uri":"file:///home/mpkorstanje/Projects/cucumber/json-formatter/testdata/cucumber-jvm/7.26.0-scala/../../features/pickle-arguments-interpolated.feature","name":"datatable","language":"en","steps":[{"argument":{"dataTable":{"rows":[{"cells":[{"value":"key"}]},{"cells":[{"value":""}]}]}},"astNodeIds":["a9d4a493-d565-46b4-9ec4-f7db2e969de0","9bfb8844-6154-49fd-95de-e62c5b9d0177"],"id":"50b2fb67-b5a2-4c6e-a224-a5c6aea473e7","type":"Context","text":"this step accepts an datatable"}],"tags":[],"astNodeIds":["37db1b77-4827-4cbf-9ce8-71c2f5598b9e","9bfb8844-6154-49fd-95de-e62c5b9d0177"]}} -{"hook":{"id":"f3243fa7-9310-4b3d-bb70-0cbc22d233f9","sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.scala","methodName":""},"location":{"line":15}},"tagExpression":"@attachments","type":"BEFORE_TEST_CASE"}} -{"hook":{"id":"e5ddfb8c-31b8-4458-908a-d48ba85d2f9c","sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.scala","methodName":""},"location":{"line":19}},"tagExpression":"@failing_before","type":"BEFORE_TEST_CASE"}} -{"hook":{"id":"4a7c63fd-bc75-4dfb-8382-c74405e9dbeb","sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.scala","methodName":""},"location":{"line":27}},"tagExpression":"@failing_before_step","type":"BEFORE_TEST_STEP"}} -{"stepDefinition":{"id":"45aec967-36f6-40e6-ada5-da257b0a812b","pattern":{"source":"^.*pass.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.scala","methodName":""},"location":{"line":35}}}} -{"stepDefinition":{"id":"a764a012-3a2e-48cc-ade1-6f40f3d2a01a","pattern":{"source":"^.*docstring.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.scala","methodName":""},"location":{"line":39}}}} -{"stepDefinition":{"id":"d97a757e-836f-493c-b9c8-1bfb761c76ab","pattern":{"source":"^.*datatable.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.scala","methodName":""},"location":{"line":43}}}} -{"stepDefinition":{"id":"3908ba29-cff0-47f4-b0f7-d896be4263eb","pattern":{"source":"^.*pending.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.scala","methodName":""},"location":{"line":47}}}} -{"stepDefinition":{"id":"47c9ece2-f10b-4909-932c-f09a63fd9054","pattern":{"source":"^.*fail.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.scala","methodName":""},"location":{"line":51}}}} -{"stepDefinition":{"id":"52758048-2aed-4df0-9c85-0c637830394c","pattern":{"source":"^.*decaying.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.scala","methodName":""},"location":{"line":55}}}} -{"stepDefinition":{"id":"4efb40ad-9509-4e72-b28d-ecfb50858515","pattern":{"source":"^I have (\\d+) cukes(?: in my (.*))?$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.scala","methodName":""},"location":{"line":61}}}} -{"stepDefinition":{"id":"d76a553c-061d-49a3-aee8-fff567974218","pattern":{"source":"^.*attach.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.scala","methodName":""},"location":{"line":65}}}} -{"stepDefinition":{"id":"dcdb26c6-537e-46fc-b4dd-1a3bbb229da2","pattern":{"source":"^.*ambiguous.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.scala","methodName":""},"location":{"line":71}}}} -{"stepDefinition":{"id":"baedee58-4af4-4762-b402-f5769049626e","pattern":{"source":"^.*ambiguous step.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.scala","methodName":""},"location":{"line":75}}}} -{"hook":{"id":"960c0e06-8e61-4146-a746-10903874f40a","sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.scala","methodName":""},"location":{"line":31}},"tagExpression":"@failing_after_step","type":"AFTER_TEST_STEP"}} -{"hook":{"id":"99b623d1-c9ec-4250-93f2-51577b7927f1","sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.scala","methodName":""},"location":{"line":23}},"tagExpression":"@failing_after","type":"AFTER_TEST_CASE"}} -{"testCase":{"id":"36e29fd9-2191-443b-9474-60d92bf8b246","pickleId":"fc36c51f-2752-421b-a735-3bde2fd13a83","testSteps":[{"id":"5104337d-1719-41fa-ab23-c67f00cccdd8","pickleStepId":"8b89ecfd-0092-4d5b-8a89-62d780d75f32","stepDefinitionIds":["a764a012-3a2e-48cc-ade1-6f40f3d2a01a"],"stepMatchArgumentsLists":[{"stepMatchArguments":[]}]}]}} -{"testCaseStarted":{"attempt":0,"id":"0776731a-e517-49e9-84f5-615fbe540df9","testCaseId":"36e29fd9-2191-443b-9474-60d92bf8b246","workerId":"io.cucumber.core.cli.Main.main()","timestamp":{"seconds":1763643536,"nanos":145966656}}} -{"testStepStarted":{"testCaseStartedId":"0776731a-e517-49e9-84f5-615fbe540df9","testStepId":"5104337d-1719-41fa-ab23-c67f00cccdd8","timestamp":{"seconds":1763643536,"nanos":153412320}}} -{"testStepFinished":{"testCaseStartedId":"0776731a-e517-49e9-84f5-615fbe540df9","testStepId":"5104337d-1719-41fa-ab23-c67f00cccdd8","testStepResult":{"duration":{"seconds":0,"nanos":2088576},"status":"PASSED"},"timestamp":{"seconds":1763643536,"nanos":155500896}}} -{"testCaseFinished":{"testCaseStartedId":"0776731a-e517-49e9-84f5-615fbe540df9","timestamp":{"seconds":1763643536,"nanos":158659860},"willBeRetried":false}} -{"hook":{"id":"48de6b76-7dbc-473e-bfc8-cee91f9012b7","sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.scala","methodName":""},"location":{"line":15}},"tagExpression":"@attachments","type":"BEFORE_TEST_CASE"}} -{"hook":{"id":"a73ca9a5-2a43-4ce7-973d-a9249f3564ae","sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.scala","methodName":""},"location":{"line":19}},"tagExpression":"@failing_before","type":"BEFORE_TEST_CASE"}} -{"hook":{"id":"15622325-d104-4f78-984c-0da94894c031","sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.scala","methodName":""},"location":{"line":27}},"tagExpression":"@failing_before_step","type":"BEFORE_TEST_STEP"}} -{"stepDefinition":{"id":"cbc755c7-99cf-416d-9f9e-03acd08d5421","pattern":{"source":"^.*pass.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.scala","methodName":""},"location":{"line":35}}}} -{"stepDefinition":{"id":"9b8e1fd1-e8d5-48a4-86aa-147a7168c222","pattern":{"source":"^.*docstring.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.scala","methodName":""},"location":{"line":39}}}} -{"stepDefinition":{"id":"9a3cd1a6-0e02-4c53-ac26-3a50d57ee8c5","pattern":{"source":"^.*datatable.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.scala","methodName":""},"location":{"line":43}}}} -{"stepDefinition":{"id":"65e48dae-894c-42df-ad30-df2449613c91","pattern":{"source":"^.*pending.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.scala","methodName":""},"location":{"line":47}}}} -{"stepDefinition":{"id":"7fca18e5-3413-4ca5-99e3-666ad0055212","pattern":{"source":"^.*fail.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.scala","methodName":""},"location":{"line":51}}}} -{"stepDefinition":{"id":"81ca3413-203b-4aab-9549-61931c539157","pattern":{"source":"^.*decaying.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.scala","methodName":""},"location":{"line":55}}}} -{"stepDefinition":{"id":"02dbc528-3af8-43c8-8028-fbb6d6a133a2","pattern":{"source":"^I have (\\d+) cukes(?: in my (.*))?$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.scala","methodName":""},"location":{"line":61}}}} -{"stepDefinition":{"id":"b0d85102-b144-400c-89a8-fedc6b58992f","pattern":{"source":"^.*attach.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.scala","methodName":""},"location":{"line":65}}}} -{"stepDefinition":{"id":"5a7fc63f-5ede-4afb-93ea-c2989c73dbd3","pattern":{"source":"^.*ambiguous.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.scala","methodName":""},"location":{"line":71}}}} -{"stepDefinition":{"id":"3dfb1c9c-e2ef-4465-88ab-b1960dba40bc","pattern":{"source":"^.*ambiguous step.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.scala","methodName":""},"location":{"line":75}}}} -{"hook":{"id":"027b2cbb-7f97-406d-b221-00c45503c40e","sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.scala","methodName":""},"location":{"line":31}},"tagExpression":"@failing_after_step","type":"AFTER_TEST_STEP"}} -{"hook":{"id":"ef4bf444-6189-4bec-b39c-e071a8101a49","sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.scala","methodName":""},"location":{"line":23}},"tagExpression":"@failing_after","type":"AFTER_TEST_CASE"}} -{"testCase":{"id":"e67fbcf2-2e84-4443-a31a-04acb20f5441","pickleId":"bca92b45-6422-41c3-a75d-495405917253","testSteps":[{"id":"37c855a6-ec51-4bbd-9463-02f26cbe5fbf","pickleStepId":"50b2fb67-b5a2-4c6e-a224-a5c6aea473e7","stepDefinitionIds":["9a3cd1a6-0e02-4c53-ac26-3a50d57ee8c5"],"stepMatchArgumentsLists":[{"stepMatchArguments":[]}]}]}} -{"testCaseStarted":{"attempt":0,"id":"96a7d550-8d4a-4493-a092-864a3f2d88f1","testCaseId":"e67fbcf2-2e84-4443-a31a-04acb20f5441","workerId":"io.cucumber.core.cli.Main.main()","timestamp":{"seconds":1763643536,"nanos":164137206}}} -{"testStepStarted":{"testCaseStartedId":"96a7d550-8d4a-4493-a092-864a3f2d88f1","testStepId":"37c855a6-ec51-4bbd-9463-02f26cbe5fbf","timestamp":{"seconds":1763643536,"nanos":164431884}}} -{"testStepFinished":{"testCaseStartedId":"96a7d550-8d4a-4493-a092-864a3f2d88f1","testStepId":"37c855a6-ec51-4bbd-9463-02f26cbe5fbf","testStepResult":{"duration":{"seconds":0,"nanos":443701},"status":"PASSED"},"timestamp":{"seconds":1763643536,"nanos":164875585}}} -{"testCaseFinished":{"testCaseStartedId":"96a7d550-8d4a-4493-a092-864a3f2d88f1","timestamp":{"seconds":1763643536,"nanos":165891739},"willBeRetried":false}} -{"testRunFinished":{"success":true,"timestamp":{"seconds":1763643536,"nanos":166302377}}} +{"testRunStarted":{"timestamp":{"seconds":1763644290,"nanos":941276285}}} +{"source":{"uri":"file:///home/mpkorstanje/Projects/cucumber/json-formatter/testdata/cucumber-jvm/7.26.0-scala/../../features/pickle-arguments-interpolated.feature","data":"Feature: pickle-arguments-interpolated\n\n Scenario Outline: docstring\n Given this step accepts a docstring\n \"\"\"application/json\n { \"hello\": \"\" }\n \"\"\"\n\n Examples:\n | key |\n | word |\n\n Scenario Outline: datatable\n Given this step accepts a datatable\n | hello |\n | |\n\n Examples:\n | key |\n | world |","mediaType":"text/x.cucumber.gherkin+plain"}} +{"gherkinDocument":{"uri":"file:///home/mpkorstanje/Projects/cucumber/json-formatter/testdata/cucumber-jvm/7.26.0-scala/../../features/pickle-arguments-interpolated.feature","feature":{"location":{"line":1,"column":1},"tags":[],"language":"en","keyword":"Feature","name":"pickle-arguments-interpolated","description":"","children":[{"scenario":{"location":{"line":3,"column":3},"tags":[],"keyword":"Scenario Outline","name":"docstring","description":"","steps":[{"location":{"line":4,"column":5},"keyword":"Given ","keywordType":"Context","text":"this step accepts a docstring","docString":{"location":{"line":5,"column":7},"mediaType":"application/json","content":"{ \"hello\": \"\" }","delimiter":"\"\"\""},"id":"b75bd960-0e07-4cda-870c-d38281920591"}],"examples":[{"location":{"line":9,"column":5},"tags":[],"keyword":"Examples","name":"","description":"","tableHeader":{"location":{"line":10,"column":7},"cells":[{"location":{"line":10,"column":9},"value":"key"}],"id":"5950049b-bdf6-4f97-9ae5-bc93cf1cbd69"},"tableBody":[{"location":{"line":11,"column":7},"cells":[{"location":{"line":11,"column":9},"value":"word"}],"id":"13f2308d-47bc-4381-af04-c2b2444bd313"}],"id":"a98cdc39-3e47-42ac-9284-30742e342c0d"}],"id":"a5864817-2daf-4087-9546-03add536ca28"}},{"scenario":{"location":{"line":13,"column":3},"tags":[],"keyword":"Scenario Outline","name":"datatable","description":"","steps":[{"location":{"line":14,"column":5},"keyword":"Given ","keywordType":"Context","text":"this step accepts a datatable","dataTable":{"location":{"line":15,"column":7},"rows":[{"location":{"line":15,"column":7},"cells":[{"location":{"line":15,"column":9},"value":"hello"}],"id":"d433aab3-abe4-4fb8-b385-204db7c53eee"},{"location":{"line":16,"column":7},"cells":[{"location":{"line":16,"column":9},"value":""}],"id":"2fff703e-56e0-4a83-8523-c94af0de71aa"}]},"id":"7df0f275-4363-4c71-9dfa-58b3abf9951d"}],"examples":[{"location":{"line":18,"column":5},"tags":[],"keyword":"Examples","name":"","description":"","tableHeader":{"location":{"line":19,"column":7},"cells":[{"location":{"line":19,"column":9},"value":"key"}],"id":"7fc82066-9f02-441a-ba2d-ea4ace85d9b8"},"tableBody":[{"location":{"line":20,"column":7},"cells":[{"location":{"line":20,"column":9},"value":"world"}],"id":"90084882-e999-4332-8189-556b75c5b1ea"}],"id":"1a718321-d452-4d0a-9136-d2e2a8b1fdb6"}],"id":"574e22ec-6616-4b40-9d16-9ef4fd615f72"}}]},"comments":[]}} +{"pickle":{"id":"2ed96503-74a1-41e3-9bc3-325a17d891a7","uri":"file:///home/mpkorstanje/Projects/cucumber/json-formatter/testdata/cucumber-jvm/7.26.0-scala/../../features/pickle-arguments-interpolated.feature","name":"docstring","language":"en","steps":[{"argument":{"docString":{"mediaType":"application/json","content":"{ \"hello\": \"word\" }"}},"astNodeIds":["b75bd960-0e07-4cda-870c-d38281920591","13f2308d-47bc-4381-af04-c2b2444bd313"],"id":"3f6baae0-5a7a-49e9-a2e7-2faccfab9b37","type":"Context","text":"this step accepts a docstring"}],"tags":[],"astNodeIds":["a5864817-2daf-4087-9546-03add536ca28","13f2308d-47bc-4381-af04-c2b2444bd313"]}} +{"pickle":{"id":"deb23837-45e0-4dfa-b6bc-4512e84eef55","uri":"file:///home/mpkorstanje/Projects/cucumber/json-formatter/testdata/cucumber-jvm/7.26.0-scala/../../features/pickle-arguments-interpolated.feature","name":"datatable","language":"en","steps":[{"argument":{"dataTable":{"rows":[{"cells":[{"value":"hello"}]},{"cells":[{"value":"world"}]}]}},"astNodeIds":["7df0f275-4363-4c71-9dfa-58b3abf9951d","90084882-e999-4332-8189-556b75c5b1ea"],"id":"c1cf685c-b207-43f3-9ba1-b02eb52e8d06","type":"Context","text":"this step accepts a datatable"}],"tags":[],"astNodeIds":["574e22ec-6616-4b40-9d16-9ef4fd615f72","90084882-e999-4332-8189-556b75c5b1ea"]}} +{"hook":{"id":"7da5a110-7de2-4a0c-9259-ba77877f1f6b","sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.scala","methodName":""},"location":{"line":15}},"tagExpression":"@attachments","type":"BEFORE_TEST_CASE"}} +{"hook":{"id":"5adc0198-0111-43b0-895f-1c92aac196c7","sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.scala","methodName":""},"location":{"line":19}},"tagExpression":"@failing_before","type":"BEFORE_TEST_CASE"}} +{"hook":{"id":"731bdba0-cd81-40ce-a6bc-ba077051b20b","sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.scala","methodName":""},"location":{"line":27}},"tagExpression":"@failing_before_step","type":"BEFORE_TEST_STEP"}} +{"stepDefinition":{"id":"756f64f6-cdd6-4c5c-9568-e6793715b9ca","pattern":{"source":"^.*pass.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.scala","methodName":""},"location":{"line":35}}}} +{"stepDefinition":{"id":"4ff63de8-f043-489f-91fe-60b86e57efa7","pattern":{"source":"^.*docstring.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.scala","methodName":""},"location":{"line":39}}}} +{"stepDefinition":{"id":"e646d4f4-092e-4bb8-a258-2a3b4bfdc962","pattern":{"source":"^.*datatable.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.scala","methodName":""},"location":{"line":43}}}} +{"stepDefinition":{"id":"a15afe79-b8ac-4dfe-a138-da6c77535bd2","pattern":{"source":"^.*pending.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.scala","methodName":""},"location":{"line":47}}}} +{"stepDefinition":{"id":"b69c923e-4a7c-4fc0-b05c-dc71585dc0ba","pattern":{"source":"^.*fail.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.scala","methodName":""},"location":{"line":51}}}} +{"stepDefinition":{"id":"fb764862-6772-4d30-8d7a-71679d9019f5","pattern":{"source":"^.*decaying.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.scala","methodName":""},"location":{"line":55}}}} +{"stepDefinition":{"id":"ccf68bbc-3791-4448-a4f4-9724cc6499fa","pattern":{"source":"^I have (\\d+) cukes(?: in my (.*))?$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.scala","methodName":""},"location":{"line":61}}}} +{"stepDefinition":{"id":"b4bee776-5f57-4436-8251-2b8c1c87ba6a","pattern":{"source":"^.*attach.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.scala","methodName":""},"location":{"line":65}}}} +{"stepDefinition":{"id":"0abb137b-1624-4306-b7c9-a3810c47573f","pattern":{"source":"^.*ambiguous.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.scala","methodName":""},"location":{"line":71}}}} +{"stepDefinition":{"id":"6c591342-5cba-4e75-b5b9-20814cbb9346","pattern":{"source":"^.*ambiguous step.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.scala","methodName":""},"location":{"line":75}}}} +{"hook":{"id":"5fd34b6a-303f-4414-8263-6fb3b3f2befc","sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.scala","methodName":""},"location":{"line":31}},"tagExpression":"@failing_after_step","type":"AFTER_TEST_STEP"}} +{"hook":{"id":"2be3c54a-3148-48a2-b2d8-ad9e335dd8e7","sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.scala","methodName":""},"location":{"line":23}},"tagExpression":"@failing_after","type":"AFTER_TEST_CASE"}} +{"testCase":{"id":"5bd59999-c602-4e23-85ad-d131dc02ac78","pickleId":"2ed96503-74a1-41e3-9bc3-325a17d891a7","testSteps":[{"id":"3babade2-d03e-4733-8e03-6c11d98c286f","pickleStepId":"3f6baae0-5a7a-49e9-a2e7-2faccfab9b37","stepDefinitionIds":["4ff63de8-f043-489f-91fe-60b86e57efa7"],"stepMatchArgumentsLists":[{"stepMatchArguments":[]}]}]}} +{"testCaseStarted":{"attempt":0,"id":"573d6eae-fcf8-4d5f-9295-dbe46a293096","testCaseId":"5bd59999-c602-4e23-85ad-d131dc02ac78","workerId":"io.cucumber.core.cli.Main.main()","timestamp":{"seconds":1763644291,"nanos":89152432}}} +{"testStepStarted":{"testCaseStartedId":"573d6eae-fcf8-4d5f-9295-dbe46a293096","testStepId":"3babade2-d03e-4733-8e03-6c11d98c286f","timestamp":{"seconds":1763644291,"nanos":96410277}}} +{"testStepFinished":{"testCaseStartedId":"573d6eae-fcf8-4d5f-9295-dbe46a293096","testStepId":"3babade2-d03e-4733-8e03-6c11d98c286f","testStepResult":{"duration":{"seconds":0,"nanos":2068073},"status":"PASSED"},"timestamp":{"seconds":1763644291,"nanos":98478350}}} +{"testCaseFinished":{"testCaseStartedId":"573d6eae-fcf8-4d5f-9295-dbe46a293096","timestamp":{"seconds":1763644291,"nanos":101538561},"willBeRetried":false}} +{"hook":{"id":"13ecc57d-ff26-45f3-b583-f14996c8b579","sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.scala","methodName":""},"location":{"line":15}},"tagExpression":"@attachments","type":"BEFORE_TEST_CASE"}} +{"hook":{"id":"6857e60f-744e-4f20-b31c-99b8d2ab9e74","sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.scala","methodName":""},"location":{"line":19}},"tagExpression":"@failing_before","type":"BEFORE_TEST_CASE"}} +{"hook":{"id":"83bbc78c-57c4-4c2c-b33b-2cf4bd7b49ab","sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.scala","methodName":""},"location":{"line":27}},"tagExpression":"@failing_before_step","type":"BEFORE_TEST_STEP"}} +{"stepDefinition":{"id":"7293831a-20a9-4b18-9d78-e6019340d147","pattern":{"source":"^.*pass.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.scala","methodName":""},"location":{"line":35}}}} +{"stepDefinition":{"id":"32e43c87-0f0b-4d35-ac61-016f1cbd6e7a","pattern":{"source":"^.*docstring.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.scala","methodName":""},"location":{"line":39}}}} +{"stepDefinition":{"id":"c1e53c90-fedf-49fe-8e0d-94a2c50fbfab","pattern":{"source":"^.*datatable.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.scala","methodName":""},"location":{"line":43}}}} +{"stepDefinition":{"id":"da43f261-1a5d-44e7-a2af-58393e0e2702","pattern":{"source":"^.*pending.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.scala","methodName":""},"location":{"line":47}}}} +{"stepDefinition":{"id":"04fc2bd7-ce19-4a93-b098-279fe521dea9","pattern":{"source":"^.*fail.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.scala","methodName":""},"location":{"line":51}}}} +{"stepDefinition":{"id":"8b9fd618-8a88-49d8-af9d-bddec6e51922","pattern":{"source":"^.*decaying.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.scala","methodName":""},"location":{"line":55}}}} +{"stepDefinition":{"id":"467ed17b-7807-43b4-8fc9-b35bcd878585","pattern":{"source":"^I have (\\d+) cukes(?: in my (.*))?$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.scala","methodName":""},"location":{"line":61}}}} +{"stepDefinition":{"id":"8d065676-9941-44cc-b94f-b92b39a81dcc","pattern":{"source":"^.*attach.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.scala","methodName":""},"location":{"line":65}}}} +{"stepDefinition":{"id":"41b5b1dc-65cf-4fdf-ac27-04d2fb9bc844","pattern":{"source":"^.*ambiguous.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.scala","methodName":""},"location":{"line":71}}}} +{"stepDefinition":{"id":"589521f8-46de-455d-a5f2-ad0dc80d4001","pattern":{"source":"^.*ambiguous step.*$","type":"REGULAR_EXPRESSION"},"sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.scala","methodName":""},"location":{"line":75}}}} +{"hook":{"id":"a37fc670-177c-4bde-a892-6d226a112317","sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.scala","methodName":""},"location":{"line":31}},"tagExpression":"@failing_after_step","type":"AFTER_TEST_STEP"}} +{"hook":{"id":"04cc3223-e8ba-4884-991d-49dff9921005","sourceReference":{"javaStackTraceElement":{"className":"io.cucumber.jsonformatter.StepDefinitions","fileName":"StepDefinitions.scala","methodName":""},"location":{"line":23}},"tagExpression":"@failing_after","type":"AFTER_TEST_CASE"}} +{"testCase":{"id":"a96b2272-06ae-48c4-89c3-5f7da22076c5","pickleId":"deb23837-45e0-4dfa-b6bc-4512e84eef55","testSteps":[{"id":"5a339797-b71c-4c3b-a1a7-7531355d0c50","pickleStepId":"c1cf685c-b207-43f3-9ba1-b02eb52e8d06","stepDefinitionIds":["c1e53c90-fedf-49fe-8e0d-94a2c50fbfab"],"stepMatchArgumentsLists":[{"stepMatchArguments":[]}]}]}} +{"testCaseStarted":{"attempt":0,"id":"d048df2f-ddcf-4b43-877d-e30937ff6888","testCaseId":"a96b2272-06ae-48c4-89c3-5f7da22076c5","workerId":"io.cucumber.core.cli.Main.main()","timestamp":{"seconds":1763644291,"nanos":105991207}}} +{"testStepStarted":{"testCaseStartedId":"d048df2f-ddcf-4b43-877d-e30937ff6888","testStepId":"5a339797-b71c-4c3b-a1a7-7531355d0c50","timestamp":{"seconds":1763644291,"nanos":106314760}}} +{"testStepFinished":{"testCaseStartedId":"d048df2f-ddcf-4b43-877d-e30937ff6888","testStepId":"5a339797-b71c-4c3b-a1a7-7531355d0c50","testStepResult":{"duration":{"seconds":0,"nanos":518962},"status":"PASSED"},"timestamp":{"seconds":1763644291,"nanos":106833722}}} +{"testCaseFinished":{"testCaseStartedId":"d048df2f-ddcf-4b43-877d-e30937ff6888","timestamp":{"seconds":1763644291,"nanos":107874171},"willBeRetried":false}} +{"testRunFinished":{"success":true,"timestamp":{"seconds":1763644291,"nanos":108289817}}} diff --git a/testdata/cucumber-jvm/7.26.0-scala/testdata/pickle-arguments-interpolated.ndjson.jvm.json b/testdata/cucumber-jvm/7.26.0-scala/testdata/pickle-arguments-interpolated.ndjson.jvm.json index 0ef30ab..3016393 100644 --- a/testdata/cucumber-jvm/7.26.0-scala/testdata/pickle-arguments-interpolated.ndjson.jvm.json +++ b/testdata/cucumber-jvm/7.26.0-scala/testdata/pickle-arguments-interpolated.ndjson.jvm.json @@ -1 +1 @@ -[{"line":1,"elements":[{"start_timestamp":"2025-11-20T12:58:56.145Z","line":11,"name":"docstring","description":"","id":"pickle-arguments-interpolated;docstring;;2","type":"scenario","keyword":"Scenario Outline","steps":[{"result":{"duration":2088576,"status":"passed"},"line":4,"name":"this step accepts an docstring","match":{"location":"io.cucumber.jsonformatter.StepDefinitions.(StepDefinitions.scala:39)"},"keyword":"Given ","doc_string":{"content_type":"application/json","line":5,"value":"{ \"key\": \"\" }"}}]},{"start_timestamp":"2025-11-20T12:58:56.164Z","line":20,"name":"datatable","description":"","id":"pickle-arguments-interpolated;datatable;;2","type":"scenario","keyword":"Scenario Outline","steps":[{"result":{"duration":443701,"status":"passed"},"line":14,"name":"this step accepts an datatable","match":{"location":"io.cucumber.jsonformatter.StepDefinitions.(StepDefinitions.scala:43)"},"rows":[{"cells":["key"]},{"cells":[""]}],"keyword":"Given "}]}],"name":"pickle-arguments-interpolated","description":"","id":"pickle-arguments-interpolated","keyword":"Feature","uri":"file:///home/mpkorstanje/Projects/cucumber/json-formatter/testdata/cucumber-jvm/7.26.0-scala/../../features/pickle-arguments-interpolated.feature","tags":[]}] \ No newline at end of file +[{"line":1,"elements":[{"start_timestamp":"2025-11-20T13:11:31.089Z","line":11,"name":"docstring","description":"","id":"pickle-arguments-interpolated;docstring;;2","type":"scenario","keyword":"Scenario Outline","steps":[{"result":{"duration":2068073,"status":"passed"},"line":4,"name":"this step accepts a docstring","match":{"location":"io.cucumber.jsonformatter.StepDefinitions.(StepDefinitions.scala:39)"},"keyword":"Given ","doc_string":{"content_type":"application/json","line":5,"value":"{ \"hello\": \"word\" }"}}]},{"start_timestamp":"2025-11-20T13:11:31.105Z","line":20,"name":"datatable","description":"","id":"pickle-arguments-interpolated;datatable;;2","type":"scenario","keyword":"Scenario Outline","steps":[{"result":{"duration":518962,"status":"passed"},"line":14,"name":"this step accepts a datatable","match":{"location":"io.cucumber.jsonformatter.StepDefinitions.(StepDefinitions.scala:43)"},"rows":[{"cells":["hello"]},{"cells":["world"]}],"keyword":"Given "}]}],"name":"pickle-arguments-interpolated","description":"","id":"pickle-arguments-interpolated","keyword":"Feature","uri":"file:///home/mpkorstanje/Projects/cucumber/json-formatter/testdata/cucumber-jvm/7.26.0-scala/../../features/pickle-arguments-interpolated.feature","tags":[]}] \ No newline at end of file diff --git a/testdata/features/pickle-arguments-interpolated.feature b/testdata/features/pickle-arguments-interpolated.feature index cb06210..b9c8903 100644 --- a/testdata/features/pickle-arguments-interpolated.feature +++ b/testdata/features/pickle-arguments-interpolated.feature @@ -1,20 +1,20 @@ Feature: pickle-arguments-interpolated Scenario Outline: docstring - Given this step accepts an docstring + Given this step accepts a docstring """application/json - { "key": "" } + { "hello": "" } """ Examples: | key | - | value | + | word | Scenario Outline: datatable - Given this step accepts an datatable - | key | - | | + Given this step accepts a datatable + | hello | + | | Examples: | key | - | value | \ No newline at end of file + | world | \ No newline at end of file From 9c449dca198384d5939b28627339359540b0bb2e Mon Sep 17 00:00:00 2001 From: "M.P. Korstanje" Date: Thu, 20 Nov 2025 14:15:31 +0100 Subject: [PATCH 3/6] Update CHANGELOG --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 723b42b..585eae3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,9 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [Unreleased] +### Fixed +- Fix interpolated data tables and doc string arguments ([#29](https://github.com/cucumber/cucumber-json-formatter/pull/29)) + ## [0.3.0] - 2025-10-27 ### Changed From 663d83fa168b6c6e5c0c241c4caa5fcec6e86433 Mon Sep 17 00:00:00 2001 From: "M.P. Korstanje" Date: Thu, 20 Nov 2025 14:27:40 +0100 Subject: [PATCH 4/6] Clarify --- .../main/java/io/cucumber/jsonformatter/JsonReportWriter.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/src/main/java/io/cucumber/jsonformatter/JsonReportWriter.java b/java/src/main/java/io/cucumber/jsonformatter/JsonReportWriter.java index af8ea78..6e84e84 100644 --- a/java/src/main/java/io/cucumber/jsonformatter/JsonReportWriter.java +++ b/java/src/main/java/io/cucumber/jsonformatter/JsonReportWriter.java @@ -478,7 +478,7 @@ private JvmDocString createJvmDocString(PickleDocString docString, Step step) { step.getDocString() .map(DocString::getLocation) .map(Location::getLine) - // Can't happen. + // Can't happen. Pickle doc strings are made from step doc strings .orElseGet(() -> step.getLocation().getLine()), docString.getContent(), docString.getMediaType().orElse(null)); From 5c03ea5845c5f512b5009d71f6b1846beb59bef0 Mon Sep 17 00:00:00 2001 From: "M.P. Korstanje" Date: Thu, 20 Nov 2025 14:28:51 +0100 Subject: [PATCH 5/6] Clarify --- .../java/io/cucumber/jsonformatter/JsonReportWriter.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/java/src/main/java/io/cucumber/jsonformatter/JsonReportWriter.java b/java/src/main/java/io/cucumber/jsonformatter/JsonReportWriter.java index 6e84e84..54d1779 100644 --- a/java/src/main/java/io/cucumber/jsonformatter/JsonReportWriter.java +++ b/java/src/main/java/io/cucumber/jsonformatter/JsonReportWriter.java @@ -456,7 +456,10 @@ private JvmArgument createJvmArgument(StepMatchArgument argument) { } private List createJvmDataTableRows(PickleStep pickleStep) { - return pickleStep.getArgument().flatMap(PickleStepArgument::getDataTable).map(this::createJvmDataTableRows).orElse(null); + return pickleStep.getArgument() + .flatMap(PickleStepArgument::getDataTable) + .map(this::createJvmDataTableRows) + .orElse(null); } private List createJvmDataTableRows(PickleTable argument) { @@ -468,8 +471,8 @@ private List createJvmDataTableRows(PickleTable argument) { } private JvmDocString createJvmDocString(PickleStep pickleStep, Step step) { - return pickleStep.getArgument(). - flatMap(PickleStepArgument::getDocString) + return pickleStep.getArgument() + .flatMap(PickleStepArgument::getDocString) .map(docString -> createJvmDocString(docString, step)).orElse(null); } From 158b6bff1e7829bff27b6dcc6ee3a56db06bd9cb Mon Sep 17 00:00:00 2001 From: "M.P. Korstanje" Date: Thu, 20 Nov 2025 14:31:27 +0100 Subject: [PATCH 6/6] Clarify --- .../main/java/io/cucumber/jsonformatter/JsonReportWriter.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/java/src/main/java/io/cucumber/jsonformatter/JsonReportWriter.java b/java/src/main/java/io/cucumber/jsonformatter/JsonReportWriter.java index 54d1779..ae3eedf 100644 --- a/java/src/main/java/io/cucumber/jsonformatter/JsonReportWriter.java +++ b/java/src/main/java/io/cucumber/jsonformatter/JsonReportWriter.java @@ -480,9 +480,9 @@ private JvmDocString createJvmDocString(PickleDocString docString, Step step) { return new JvmDocString( step.getDocString() .map(DocString::getLocation) - .map(Location::getLine) // Can't happen. Pickle doc strings are made from step doc strings - .orElseGet(() -> step.getLocation().getLine()), + .orElseGet(step::getLocation) + .getLine(), docString.getContent(), docString.getMediaType().orElse(null)); }