From f1f33c0746ff7efcad8338740f4e0c7445314b1e Mon Sep 17 00:00:00 2001 From: David Goss Date: Sun, 20 Jun 2021 17:45:43 +0100 Subject: [PATCH 01/38] add cli option for retry --- fake-cucumber/javascript/src/cli.ts | 11 ++++++++--- fake-cucumber/javascript/src/runCucumber.ts | 5 +++++ 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/fake-cucumber/javascript/src/cli.ts b/fake-cucumber/javascript/src/cli.ts index e3909968ec..e0ceaeff23 100644 --- a/fake-cucumber/javascript/src/cli.ts +++ b/fake-cucumber/javascript/src/cli.ts @@ -1,7 +1,7 @@ import { Command } from 'commander' import packageJson from '../package.json' import loadSupportCode from './loadSupportCode' -import runCucumber from './runCucumber' +import runCucumber, { RunOptions } from "./runCucumber"; import { GherkinStreams, IGherkinStreamOptions } from '@cucumber/gherkin-streams' import { Query as GherkinQuery } from '@cucumber/gherkin-utils' import { version } from '../package.json' @@ -12,17 +12,22 @@ import { MessageToNdjsonStream } from '@cucumber/message-streams' const program = new Command() program.version(packageJson.version) program.option('-r, --require ', 'override require path') +program.option('--retry ', 'allow up to retries') program.option('--predictable-ids', 'Use predictable ids', false) async function main() { program.parse(process.argv) - const { predictableIds, require } = program.opts() + const { predictableIds, require, retry } = program.opts() const paths = program.args const requirePaths = require ? require.split(':') : paths const supportCode = await loadSupportCode(predictableIds, requirePaths) + const runOptions: RunOptions = { + allowedRetries: retry ?? 0 + } + const gherkinStreamOptions: IGherkinStreamOptions = { defaultDialect: 'en', newId: supportCode.newId, @@ -40,7 +45,7 @@ async function main() { const gherkinQuery = new GherkinQuery() - await runCucumber(supportCode, gherkinEnvelopeStream, gherkinQuery, envelopeOutputStream) + await runCucumber(supportCode, runOptions, gherkinEnvelopeStream, gherkinQuery, envelopeOutputStream) } main().catch((err) => { diff --git a/fake-cucumber/javascript/src/runCucumber.ts b/fake-cucumber/javascript/src/runCucumber.ts index bc9b26db59..6d06be1750 100644 --- a/fake-cucumber/javascript/src/runCucumber.ts +++ b/fake-cucumber/javascript/src/runCucumber.ts @@ -6,8 +6,13 @@ import SupportCode from './SupportCode' import { MakeTestPlan } from './types' import makeTestCase from './makeTestCase' +export interface RunOptions { + allowedRetries: number +} + export default async function runCucumber( supportCode: SupportCode, + runOptions: RunOptions, gherkinEnvelopeStream: Readable, gherkinQuery: GherkinQuery, envelopeOutputStream: Writable, From 8e2cea220107d52f9e009852002c594fb8a75914 Mon Sep 17 00:00:00 2001 From: David Goss Date: Wed, 23 Jun 2021 18:15:59 +0100 Subject: [PATCH 02/38] implement retry logic in test plan --- fake-cucumber/javascript/src/TestPlan.ts | 12 +++- fake-cucumber/javascript/src/makeTestPlan.ts | 4 +- fake-cucumber/javascript/src/runCucumber.ts | 2 +- fake-cucumber/javascript/src/types.ts | 2 + fake-cucumber/javascript/test/TestPlanTest.ts | 62 +++++++++++++++++-- 5 files changed, 73 insertions(+), 9 deletions(-) diff --git a/fake-cucumber/javascript/src/TestPlan.ts b/fake-cucumber/javascript/src/TestPlan.ts index 5c8bfad522..15dc9cc45f 100644 --- a/fake-cucumber/javascript/src/TestPlan.ts +++ b/fake-cucumber/javascript/src/TestPlan.ts @@ -1,9 +1,10 @@ import { EnvelopeListener, ITestCase, ITestPlan } from './types' import * as messages from '@cucumber/messages' import SupportCode from './SupportCode' +import { RunOptions } from "./runCucumber"; export default class TestPlan implements ITestPlan { - constructor(private readonly testCases: ITestCase[], private readonly supportCode: SupportCode) {} + constructor(private readonly testCases: ITestCase[], private readonly supportCode: SupportCode, private readonly runOptions: RunOptions) {} public async execute(listener: EnvelopeListener): Promise { for (const parameterTypeMessage of this.supportCode.parameterTypeMessages) { @@ -35,7 +36,14 @@ export default class TestPlan implements ITestPlan { let success = true // TODO: By using Promise.all here we could execute in parallel for (const testCase of this.testCases) { - const testStepResultStatus = await testCase.execute(listener, 0, this.supportCode.newId()) + const allowedAttempts = this.runOptions.allowedRetries + 1 + let testStepResultStatus: messages.TestStepResultStatus + for (let attempt = 0; attempt < allowedAttempts; attempt++) { + testStepResultStatus = await testCase.execute(listener, attempt, this.supportCode.newId()) + if (!shouldCauseFailure(testStepResultStatus)) { + break + } + } if (shouldCauseFailure(testStepResultStatus)) { success = false } diff --git a/fake-cucumber/javascript/src/makeTestPlan.ts b/fake-cucumber/javascript/src/makeTestPlan.ts index 2f1beb1ef2..357a49e9c9 100644 --- a/fake-cucumber/javascript/src/makeTestPlan.ts +++ b/fake-cucumber/javascript/src/makeTestPlan.ts @@ -4,10 +4,12 @@ import TestPlan from './TestPlan' import makePickleTestStep from './makePickleTestStep' import { ITestPlan, MakeTestCase } from './types' import makeHookTestStep from './makeHookTestStep' +import { RunOptions } from "./runCucumber"; export default function makeTestPlan( gherkinQuery: GherkinQuery, supportCode: SupportCode, + runOptions: RunOptions, makeTestCase: MakeTestCase ): ITestPlan { const pickles = gherkinQuery.getPickles() @@ -27,5 +29,5 @@ export default function makeTestPlan( ) ) - return new TestPlan(testCases, supportCode) + return new TestPlan(testCases, supportCode, runOptions) } diff --git a/fake-cucumber/javascript/src/runCucumber.ts b/fake-cucumber/javascript/src/runCucumber.ts index 6d06be1750..dad3e3e563 100644 --- a/fake-cucumber/javascript/src/runCucumber.ts +++ b/fake-cucumber/javascript/src/runCucumber.ts @@ -27,7 +27,7 @@ export default async function runCucumber( gherkinEnvelopeStream.on('error', reject) }) - const testPlan = makeTestPlanFn(gherkinQuery, supportCode, makeTestCase) + const testPlan = makeTestPlanFn(gherkinQuery, supportCode, runOptions, makeTestCase) await testPlan.execute((envelope) => { envelopeOutputStream.write(envelope) if (envelope.testRunFinished) { diff --git a/fake-cucumber/javascript/src/types.ts b/fake-cucumber/javascript/src/types.ts index 00b87f0aaf..46a1a21e45 100644 --- a/fake-cucumber/javascript/src/types.ts +++ b/fake-cucumber/javascript/src/types.ts @@ -4,6 +4,7 @@ import IClock from './IClock' import { MakeErrorMessage } from './ErrorMessageGenerator' import { Query, Query as GherkinQuery } from '@cucumber/gherkin-utils' import IStopwatch from './IStopwatch' +import { RunOptions } from "./runCucumber"; export interface IWorld { attach: Attach @@ -104,5 +105,6 @@ export type MakeTestCase = ( export type MakeTestPlan = ( gherkinQuery: GherkinQuery, supportCode: SupportCode, + runOptions: RunOptions, makeTestCase: MakeTestCase ) => ITestPlan diff --git a/fake-cucumber/javascript/test/TestPlanTest.ts b/fake-cucumber/javascript/test/TestPlanTest.ts index 1ae4529903..caa00ddc3a 100644 --- a/fake-cucumber/javascript/test/TestPlanTest.ts +++ b/fake-cucumber/javascript/test/TestPlanTest.ts @@ -11,6 +11,9 @@ import makeTestCase from '../src/makeTestCase' import makePickleTestStep from '../src/makePickleTestStep' import makeHookTestStep from '../src/makeHookTestStep' import IncrementStopwatch from '../src/IncrementStopwatch' +import { RunOptions } from "../src/runCucumber"; + +const defaultRunOptions: RunOptions = { allowedRetries: 0 } describe('TestPlan', () => { let supportCode: SupportCode @@ -30,7 +33,56 @@ describe('TestPlan', () => { Scenario: test Given a passed step ` - const testPlan = await makeTestPlan(gherkinSource, supportCode) + const testPlan = await makeTestPlan(gherkinSource, supportCode, defaultRunOptions) + const envelopes: messages.Envelope[] = [] + const listener: EnvelopeListener = (envelope) => { + if (!envelope) throw new Error('Envelope was null or undefined') + envelopes.push(envelope) + } + await testPlan.execute(listener) + const testStepFinisheds = envelopes + .filter((m) => m.testStepFinished) + .map((m) => m.testStepFinished) + assert.deepStrictEqual(testStepFinisheds.length, 1) + assert.strictEqual(testStepFinisheds[0].testStepResult.status, 'PASSED') + }) + + it('executes test cases multiple times with retry', async () => { + let ran = false + supportCode.defineStepDefinition(null, 'a sometimes-failing step', () => { + if (!ran) { + ran = true; + throw new Error('fail') + } + }) + + const gherkinSource = `Feature: test + Scenario: test + Given a sometimes-failing step +` + const testPlan = await makeTestPlan(gherkinSource, supportCode, { allowedRetries: 1 }) + const envelopes: messages.Envelope[] = [] + const listener: EnvelopeListener = (envelope) => { + if (!envelope) throw new Error('Envelope was null or undefined') + envelopes.push(envelope) + } + await testPlan.execute(listener) + const testStepFinisheds = envelopes + .filter((m) => m.testStepFinished) + .map((m) => m.testStepFinished) + assert.deepStrictEqual(testStepFinisheds.length, 2) + assert.strictEqual(testStepFinisheds[0].testStepResult.status, 'FAILED') + assert.strictEqual(testStepFinisheds[1].testStepResult.status, 'PASSED') + }) + + it('executes test cases once if passing first time with retry', async () => { + supportCode.defineStepDefinition(null, 'a passed step', () => undefined) + + const gherkinSource = `Feature: test + Scenario: test + Given a passed step +` + const testPlan = await makeTestPlan(gherkinSource, supportCode, { allowedRetries: 1 }) const envelopes: messages.Envelope[] = [] const listener: EnvelopeListener = (envelope) => { if (!envelope) throw new Error('Envelope was null or undefined') @@ -65,7 +117,7 @@ describe('TestPlan', () => { Scenario: test Given flight LHR-CDG ` - const testPlan = await makeTestPlan(gherkinSource, supportCode) + const testPlan = await makeTestPlan(gherkinSource, supportCode, defaultRunOptions) const envelopes: messages.Envelope[] = [] const listener: EnvelopeListener = (envelope) => envelopes.push(envelope) await testPlan.execute(listener) @@ -88,7 +140,7 @@ describe('TestPlan', () => { Scenario: test Given a passed step ` - const testPlan = await makeTestPlan(gherkinSource, supportCode) + const testPlan = await makeTestPlan(gherkinSource, supportCode, defaultRunOptions) const envelopes: messages.Envelope[] = [] const listener: EnvelopeListener = (envelope) => envelopes.push(envelope) await testPlan.execute(listener) @@ -99,7 +151,7 @@ describe('TestPlan', () => { }) }) -async function makeTestPlan(gherkinSource: string, supportCode: SupportCode): Promise { +async function makeTestPlan(gherkinSource: string, supportCode: SupportCode, runOptions: RunOptions): Promise { const gherkinEnvelopes = await streamToArray(gherkinMessages(gherkinSource, 'test.feature')) const gherkinQuery = new Query() for (const gherkinEnvelope of gherkinEnvelopes) { @@ -124,5 +176,5 @@ async function makeTestPlan(gherkinSource: string, supportCode: SupportCode): Pr ) ) - return new TestPlan(testCases, supportCode) + return new TestPlan(testCases, supportCode, runOptions) } From 96c4308f973308bdcf42b9a4fe298b752d1cae07 Mon Sep 17 00:00:00 2001 From: David Goss Date: Wed, 23 Jun 2021 18:39:00 +0100 Subject: [PATCH 03/38] also test for attempt numbers on test case msgs --- fake-cucumber/javascript/test/TestPlanTest.ts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/fake-cucumber/javascript/test/TestPlanTest.ts b/fake-cucumber/javascript/test/TestPlanTest.ts index caa00ddc3a..6e3ebb1eaf 100644 --- a/fake-cucumber/javascript/test/TestPlanTest.ts +++ b/fake-cucumber/javascript/test/TestPlanTest.ts @@ -67,6 +67,12 @@ describe('TestPlan', () => { envelopes.push(envelope) } await testPlan.execute(listener) + const testCaseStarteds = envelopes + .filter((m) => m.testCaseStarted) + .map((m) => m.testCaseStarted) + assert.deepStrictEqual(testCaseStarteds.length, 2) + assert.strictEqual(testCaseStarteds[0].attempt, 0) + assert.strictEqual(testCaseStarteds[1].attempt, 1) const testStepFinisheds = envelopes .filter((m) => m.testStepFinished) .map((m) => m.testStepFinished) From 467f2335b2243662c735034b8a52f3058661a7f9 Mon Sep 17 00:00:00 2001 From: David Goss Date: Wed, 23 Jun 2021 18:51:18 +0100 Subject: [PATCH 04/38] add structure for retryable bool --- fake-cucumber/javascript/src/TestCase.ts | 4 +++- fake-cucumber/javascript/src/TestPlan.ts | 15 ++++++++++++--- fake-cucumber/javascript/src/TestStep.ts | 3 ++- fake-cucumber/javascript/src/cli.ts | 12 +++++++++--- fake-cucumber/javascript/src/makeTestPlan.ts | 2 +- fake-cucumber/javascript/src/types.ts | 6 ++++-- fake-cucumber/javascript/test/TestCaseTest.ts | 1 + fake-cucumber/javascript/test/TestPlanTest.ts | 10 +++++++--- fake-cucumber/javascript/test/TestStepTest.ts | 17 ++++++++++++----- .../javascript/test/makeTestCaseTest.ts | 2 +- 10 files changed, 52 insertions(+), 20 deletions(-) diff --git a/fake-cucumber/javascript/src/TestCase.ts b/fake-cucumber/javascript/src/TestCase.ts index c3aefaec9a..ba7f255252 100644 --- a/fake-cucumber/javascript/src/TestCase.ts +++ b/fake-cucumber/javascript/src/TestCase.ts @@ -26,6 +26,7 @@ export default class TestCase implements ITestCase { public async execute( listener: EnvelopeListener, attempt: number, + retryable: boolean, testCaseStartedId: string ): Promise { listener({ @@ -53,7 +54,8 @@ export default class TestCase implements ITestCase { world, testCaseStartedId, listener, - previousPassed + previousPassed, + retryable ) previousPassed = testStepResult.status === messages.TestStepResultStatus.PASSED testStepResults.push(testStepResult) diff --git a/fake-cucumber/javascript/src/TestPlan.ts b/fake-cucumber/javascript/src/TestPlan.ts index 15dc9cc45f..0323e88b9f 100644 --- a/fake-cucumber/javascript/src/TestPlan.ts +++ b/fake-cucumber/javascript/src/TestPlan.ts @@ -1,10 +1,14 @@ import { EnvelopeListener, ITestCase, ITestPlan } from './types' import * as messages from '@cucumber/messages' import SupportCode from './SupportCode' -import { RunOptions } from "./runCucumber"; +import { RunOptions } from './runCucumber' export default class TestPlan implements ITestPlan { - constructor(private readonly testCases: ITestCase[], private readonly supportCode: SupportCode, private readonly runOptions: RunOptions) {} + constructor( + private readonly testCases: ITestCase[], + private readonly supportCode: SupportCode, + private readonly runOptions: RunOptions + ) {} public async execute(listener: EnvelopeListener): Promise { for (const parameterTypeMessage of this.supportCode.parameterTypeMessages) { @@ -39,7 +43,12 @@ export default class TestPlan implements ITestPlan { const allowedAttempts = this.runOptions.allowedRetries + 1 let testStepResultStatus: messages.TestStepResultStatus for (let attempt = 0; attempt < allowedAttempts; attempt++) { - testStepResultStatus = await testCase.execute(listener, attempt, this.supportCode.newId()) + testStepResultStatus = await testCase.execute( + listener, + attempt, + false, + this.supportCode.newId() + ) if (!shouldCauseFailure(testStepResultStatus)) { break } diff --git a/fake-cucumber/javascript/src/TestStep.ts b/fake-cucumber/javascript/src/TestStep.ts index cc27612001..ddd24ab534 100644 --- a/fake-cucumber/javascript/src/TestStep.ts +++ b/fake-cucumber/javascript/src/TestStep.ts @@ -25,7 +25,8 @@ export default abstract class TestStep implements ITestStep { world: IWorld, testCaseStartedId: string, listener: EnvelopeListener, - previousPassed: boolean + previousPassed: boolean, + retryable: boolean ): Promise { this.emitTestStepStarted(testCaseStartedId, listener) diff --git a/fake-cucumber/javascript/src/cli.ts b/fake-cucumber/javascript/src/cli.ts index e0ceaeff23..ec7334895b 100644 --- a/fake-cucumber/javascript/src/cli.ts +++ b/fake-cucumber/javascript/src/cli.ts @@ -1,7 +1,7 @@ import { Command } from 'commander' import packageJson from '../package.json' import loadSupportCode from './loadSupportCode' -import runCucumber, { RunOptions } from "./runCucumber"; +import runCucumber, { RunOptions } from './runCucumber' import { GherkinStreams, IGherkinStreamOptions } from '@cucumber/gherkin-streams' import { Query as GherkinQuery } from '@cucumber/gherkin-utils' import { version } from '../package.json' @@ -25,7 +25,7 @@ async function main() { const supportCode = await loadSupportCode(predictableIds, requirePaths) const runOptions: RunOptions = { - allowedRetries: retry ?? 0 + allowedRetries: retry ?? 0, } const gherkinStreamOptions: IGherkinStreamOptions = { @@ -45,7 +45,13 @@ async function main() { const gherkinQuery = new GherkinQuery() - await runCucumber(supportCode, runOptions, gherkinEnvelopeStream, gherkinQuery, envelopeOutputStream) + await runCucumber( + supportCode, + runOptions, + gherkinEnvelopeStream, + gherkinQuery, + envelopeOutputStream + ) } main().catch((err) => { diff --git a/fake-cucumber/javascript/src/makeTestPlan.ts b/fake-cucumber/javascript/src/makeTestPlan.ts index 357a49e9c9..5421886011 100644 --- a/fake-cucumber/javascript/src/makeTestPlan.ts +++ b/fake-cucumber/javascript/src/makeTestPlan.ts @@ -4,7 +4,7 @@ import TestPlan from './TestPlan' import makePickleTestStep from './makePickleTestStep' import { ITestPlan, MakeTestCase } from './types' import makeHookTestStep from './makeHookTestStep' -import { RunOptions } from "./runCucumber"; +import { RunOptions } from './runCucumber' export default function makeTestPlan( gherkinQuery: GherkinQuery, diff --git a/fake-cucumber/javascript/src/types.ts b/fake-cucumber/javascript/src/types.ts index 46a1a21e45..be4efdb964 100644 --- a/fake-cucumber/javascript/src/types.ts +++ b/fake-cucumber/javascript/src/types.ts @@ -4,7 +4,7 @@ import IClock from './IClock' import { MakeErrorMessage } from './ErrorMessageGenerator' import { Query, Query as GherkinQuery } from '@cucumber/gherkin-utils' import IStopwatch from './IStopwatch' -import { RunOptions } from "./runCucumber"; +import { RunOptions } from './runCucumber' export interface IWorld { attach: Attach @@ -26,7 +26,8 @@ export interface ITestStep { world: IWorld, testCaseStartedId: string, listener: EnvelopeListener, - previousPassed: boolean + previousPassed: boolean, + retryable: boolean ): Promise } @@ -58,6 +59,7 @@ export interface ITestCase { execute( listener: EnvelopeListener, attempt: number, + retryable: boolean, testCaseStartedId: string ): Promise } diff --git a/fake-cucumber/javascript/test/TestCaseTest.ts b/fake-cucumber/javascript/test/TestCaseTest.ts index 3aa86b618e..8da0eb5c1f 100644 --- a/fake-cucumber/javascript/test/TestCaseTest.ts +++ b/fake-cucumber/javascript/test/TestCaseTest.ts @@ -51,6 +51,7 @@ describe('TestCase', () => { await testCase.execute( (message: messages.Envelope) => emitted.push(message), 0, + false, 'test-case-started-id' ) diff --git a/fake-cucumber/javascript/test/TestPlanTest.ts b/fake-cucumber/javascript/test/TestPlanTest.ts index 6e3ebb1eaf..8c51f73a2d 100644 --- a/fake-cucumber/javascript/test/TestPlanTest.ts +++ b/fake-cucumber/javascript/test/TestPlanTest.ts @@ -11,7 +11,7 @@ import makeTestCase from '../src/makeTestCase' import makePickleTestStep from '../src/makePickleTestStep' import makeHookTestStep from '../src/makeHookTestStep' import IncrementStopwatch from '../src/IncrementStopwatch' -import { RunOptions } from "../src/runCucumber"; +import { RunOptions } from '../src/runCucumber' const defaultRunOptions: RunOptions = { allowedRetries: 0 } @@ -51,7 +51,7 @@ describe('TestPlan', () => { let ran = false supportCode.defineStepDefinition(null, 'a sometimes-failing step', () => { if (!ran) { - ran = true; + ran = true throw new Error('fail') } }) @@ -157,7 +157,11 @@ describe('TestPlan', () => { }) }) -async function makeTestPlan(gherkinSource: string, supportCode: SupportCode, runOptions: RunOptions): Promise { +async function makeTestPlan( + gherkinSource: string, + supportCode: SupportCode, + runOptions: RunOptions +): Promise { const gherkinEnvelopes = await streamToArray(gherkinMessages(gherkinSource, 'test.feature')) const gherkinQuery = new Query() for (const gherkinEnvelope of gherkinEnvelopes) { diff --git a/fake-cucumber/javascript/test/TestStepTest.ts b/fake-cucumber/javascript/test/TestStepTest.ts index 4c46f184f2..f55b89eac1 100644 --- a/fake-cucumber/javascript/test/TestStepTest.ts +++ b/fake-cucumber/javascript/test/TestStepTest.ts @@ -150,7 +150,8 @@ describe('TestStep', () => { world, 'some-testCaseStartedId', () => undefined, - true + true, + false ) assert.strictEqual(testStepResult.status, 'UNDEFINED') assert.deepStrictEqual(testStepResult.duration, TimeConversion.millisecondsToDuration(0)) @@ -161,7 +162,8 @@ describe('TestStep', () => { world, 'some-testCaseStartedId', () => undefined, - true + true, + false ) assert.strictEqual(testStepResult.status, 'AMBIGUOUS') assert.deepStrictEqual(testStepResult.duration, TimeConversion.millisecondsToDuration(0)) @@ -172,7 +174,8 @@ describe('TestStep', () => { world, 'some-testCaseStartedId', () => undefined, - true + true, + false ) assert.strictEqual(testStepResult.status, 'PASSED') assert.notDeepStrictEqual(testStepResult.duration, TimeConversion.millisecondsToDuration(0)) @@ -183,7 +186,8 @@ describe('TestStep', () => { world, 'some-testCaseStartedId', () => undefined, - true + true, + false ) assert.strictEqual(testStepResult.status, 'PENDING') assert.notDeepStrictEqual(testStepResult.duration, TimeConversion.millisecondsToDuration(0)) @@ -194,7 +198,8 @@ describe('TestStep', () => { world, 'some-testCaseStartedId', () => undefined, - true + true, + false ) assert.strictEqual(testStepResult.status, 'FAILED') assert.ok(testStepResult.message.includes('at failed.feature:234')) @@ -206,6 +211,7 @@ describe('TestStep', () => { world, 'some-testCaseStartedId', () => undefined, + false, false ) assert.strictEqual(testStepResult.status, 'SKIPPED') @@ -217,6 +223,7 @@ describe('TestStep', () => { world, 'some-testCaseStartedId', () => undefined, + false, false ) assert.strictEqual(testStepResult.status, 'FAILED') diff --git a/fake-cucumber/javascript/test/makeTestCaseTest.ts b/fake-cucumber/javascript/test/makeTestCaseTest.ts index bf9909381a..c507a3cb0b 100644 --- a/fake-cucumber/javascript/test/makeTestCaseTest.ts +++ b/fake-cucumber/javascript/test/makeTestCaseTest.ts @@ -64,7 +64,7 @@ describe('makeTestCase', () => { const messageList: messages.Envelope[] = [] const listener: EnvelopeListener = (message: messages.Envelope) => messageList.push(message) - await testCase.execute(listener, 0, 'some-test-case-started-id') + await testCase.execute(listener, 0, false, 'some-test-case-started-id') assert.strictEqual(messageList.length, 4) }) }) From c6ab7e36242c8e41515f0a375f3a93eb5dff3cf9 Mon Sep 17 00:00:00 2001 From: David Goss Date: Wed, 23 Jun 2021 18:53:34 +0100 Subject: [PATCH 05/38] fix circularity issues --- fake-cucumber/javascript/src/TestPlan.ts | 3 +-- fake-cucumber/javascript/src/makeTestPlan.ts | 3 +-- fake-cucumber/javascript/src/runCucumber.ts | 6 +----- fake-cucumber/javascript/src/types.ts | 5 ++++- 4 files changed, 7 insertions(+), 10 deletions(-) diff --git a/fake-cucumber/javascript/src/TestPlan.ts b/fake-cucumber/javascript/src/TestPlan.ts index 0323e88b9f..56d1da3ca2 100644 --- a/fake-cucumber/javascript/src/TestPlan.ts +++ b/fake-cucumber/javascript/src/TestPlan.ts @@ -1,7 +1,6 @@ -import { EnvelopeListener, ITestCase, ITestPlan } from './types' +import { EnvelopeListener, ITestCase, ITestPlan, RunOptions } from './types' import * as messages from '@cucumber/messages' import SupportCode from './SupportCode' -import { RunOptions } from './runCucumber' export default class TestPlan implements ITestPlan { constructor( diff --git a/fake-cucumber/javascript/src/makeTestPlan.ts b/fake-cucumber/javascript/src/makeTestPlan.ts index 5421886011..620114d08f 100644 --- a/fake-cucumber/javascript/src/makeTestPlan.ts +++ b/fake-cucumber/javascript/src/makeTestPlan.ts @@ -2,9 +2,8 @@ import { Query as GherkinQuery } from '@cucumber/gherkin-utils' import SupportCode from './SupportCode' import TestPlan from './TestPlan' import makePickleTestStep from './makePickleTestStep' -import { ITestPlan, MakeTestCase } from './types' +import { ITestPlan, MakeTestCase, RunOptions } from './types' import makeHookTestStep from './makeHookTestStep' -import { RunOptions } from './runCucumber' export default function makeTestPlan( gherkinQuery: GherkinQuery, diff --git a/fake-cucumber/javascript/src/runCucumber.ts b/fake-cucumber/javascript/src/runCucumber.ts index dad3e3e563..0e7b859a89 100644 --- a/fake-cucumber/javascript/src/runCucumber.ts +++ b/fake-cucumber/javascript/src/runCucumber.ts @@ -3,13 +3,9 @@ import GherkinQueryStream from './GherkinQueryStream' import makeTestPlan from './makeTestPlan' import { Readable, Writable } from 'stream' import SupportCode from './SupportCode' -import { MakeTestPlan } from './types' +import { MakeTestPlan, RunOptions } from './types' import makeTestCase from './makeTestCase' -export interface RunOptions { - allowedRetries: number -} - export default async function runCucumber( supportCode: SupportCode, runOptions: RunOptions, diff --git a/fake-cucumber/javascript/src/types.ts b/fake-cucumber/javascript/src/types.ts index be4efdb964..098eea982f 100644 --- a/fake-cucumber/javascript/src/types.ts +++ b/fake-cucumber/javascript/src/types.ts @@ -4,7 +4,10 @@ import IClock from './IClock' import { MakeErrorMessage } from './ErrorMessageGenerator' import { Query, Query as GherkinQuery } from '@cucumber/gherkin-utils' import IStopwatch from './IStopwatch' -import { RunOptions } from './runCucumber' + +export interface RunOptions { + allowedRetries: number +} export interface IWorld { attach: Attach From 7346daab9ca6369a60ed2b9df8350932271c333b Mon Sep 17 00:00:00 2001 From: David Goss Date: Wed, 23 Jun 2021 18:58:50 +0100 Subject: [PATCH 06/38] more fixes --- fake-cucumber/javascript/src/TestPlan.ts | 2 +- fake-cucumber/javascript/test/TestPlanTest.ts | 22 +++++++++++++++++-- 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/fake-cucumber/javascript/src/TestPlan.ts b/fake-cucumber/javascript/src/TestPlan.ts index 56d1da3ca2..3d8c78f23b 100644 --- a/fake-cucumber/javascript/src/TestPlan.ts +++ b/fake-cucumber/javascript/src/TestPlan.ts @@ -48,7 +48,7 @@ export default class TestPlan implements ITestPlan { false, this.supportCode.newId() ) - if (!shouldCauseFailure(testStepResultStatus)) { + if (testStepResultStatus !== 'FAILED') { break } } diff --git a/fake-cucumber/javascript/test/TestPlanTest.ts b/fake-cucumber/javascript/test/TestPlanTest.ts index 8c51f73a2d..44ec02e082 100644 --- a/fake-cucumber/javascript/test/TestPlanTest.ts +++ b/fake-cucumber/javascript/test/TestPlanTest.ts @@ -1,6 +1,6 @@ import { gherkinMessages, streamToArray } from './TestHelpers' import * as messages from '@cucumber/messages' -import { EnvelopeListener } from '../src/types' +import { EnvelopeListener, RunOptions } from '../src/types' import assert from 'assert' import TestPlan from '../src/TestPlan' import { Query } from '@cucumber/gherkin-utils' @@ -11,7 +11,6 @@ import makeTestCase from '../src/makeTestCase' import makePickleTestStep from '../src/makePickleTestStep' import makeHookTestStep from '../src/makeHookTestStep' import IncrementStopwatch from '../src/IncrementStopwatch' -import { RunOptions } from '../src/runCucumber' const defaultRunOptions: RunOptions = { allowedRetries: 0 } @@ -102,6 +101,25 @@ describe('TestPlan', () => { assert.strictEqual(testStepFinisheds[0].testStepResult.status, 'PASSED') }) + it('executes test cases once if undefined first time with retry', async () => { + const gherkinSource = `Feature: test + Scenario: test + Given a step we think exists +` + const testPlan = await makeTestPlan(gherkinSource, supportCode, { allowedRetries: 1 }) + const envelopes: messages.Envelope[] = [] + const listener: EnvelopeListener = (envelope) => { + if (!envelope) throw new Error('Envelope was null or undefined') + envelopes.push(envelope) + } + await testPlan.execute(listener) + const testStepFinisheds = envelopes + .filter((m) => m.testStepFinished) + .map((m) => m.testStepFinished) + assert.deepStrictEqual(testStepFinisheds.length, 1) + assert.strictEqual(testStepFinisheds[0].testStepResult.status, 'UNDEFINED') + }) + class Flight { constructor(public readonly name: string) {} } From ddbc6858ddaed84c7fa816e51d6ca68d62daa891 Mon Sep 17 00:00:00 2001 From: David Goss Date: Wed, 23 Jun 2021 19:03:36 +0100 Subject: [PATCH 07/38] set willBeRetried correctky --- fake-cucumber/javascript/src/TestPlan.ts | 2 +- fake-cucumber/javascript/src/TestStep.ts | 2 +- fake-cucumber/javascript/test/TestPlanTest.ts | 4 ++++ fake-cucumber/javascript/test/TestStepTest.ts | 12 ++++++++++++ 4 files changed, 18 insertions(+), 2 deletions(-) diff --git a/fake-cucumber/javascript/src/TestPlan.ts b/fake-cucumber/javascript/src/TestPlan.ts index 3d8c78f23b..47e5d25093 100644 --- a/fake-cucumber/javascript/src/TestPlan.ts +++ b/fake-cucumber/javascript/src/TestPlan.ts @@ -45,7 +45,7 @@ export default class TestPlan implements ITestPlan { testStepResultStatus = await testCase.execute( listener, attempt, - false, + attempt < allowedAttempts - 1, this.supportCode.newId() ) if (testStepResultStatus !== 'FAILED') { diff --git a/fake-cucumber/javascript/src/TestStep.ts b/fake-cucumber/javascript/src/TestStep.ts index ddd24ab534..da4685b0ae 100644 --- a/fake-cucumber/javascript/src/TestStep.ts +++ b/fake-cucumber/javascript/src/TestStep.ts @@ -98,7 +98,7 @@ export default abstract class TestStep implements ITestStep { { duration, status: messages.TestStepResultStatus.FAILED, - willBeRetried: false, + willBeRetried: retryable, message, }, listener diff --git a/fake-cucumber/javascript/test/TestPlanTest.ts b/fake-cucumber/javascript/test/TestPlanTest.ts index 44ec02e082..d47b053a1e 100644 --- a/fake-cucumber/javascript/test/TestPlanTest.ts +++ b/fake-cucumber/javascript/test/TestPlanTest.ts @@ -77,7 +77,9 @@ describe('TestPlan', () => { .map((m) => m.testStepFinished) assert.deepStrictEqual(testStepFinisheds.length, 2) assert.strictEqual(testStepFinisheds[0].testStepResult.status, 'FAILED') + assert.strictEqual(testStepFinisheds[0].testStepResult.willBeRetried, true) assert.strictEqual(testStepFinisheds[1].testStepResult.status, 'PASSED') + assert.strictEqual(testStepFinisheds[1].testStepResult.willBeRetried, false) }) it('executes test cases once if passing first time with retry', async () => { @@ -99,6 +101,7 @@ describe('TestPlan', () => { .map((m) => m.testStepFinished) assert.deepStrictEqual(testStepFinisheds.length, 1) assert.strictEqual(testStepFinisheds[0].testStepResult.status, 'PASSED') + assert.strictEqual(testStepFinisheds[0].testStepResult.willBeRetried, false) }) it('executes test cases once if undefined first time with retry', async () => { @@ -118,6 +121,7 @@ describe('TestPlan', () => { .map((m) => m.testStepFinished) assert.deepStrictEqual(testStepFinisheds.length, 1) assert.strictEqual(testStepFinisheds[0].testStepResult.status, 'UNDEFINED') + assert.strictEqual(testStepFinisheds[0].testStepResult.willBeRetried, false) }) class Flight { diff --git a/fake-cucumber/javascript/test/TestStepTest.ts b/fake-cucumber/javascript/test/TestStepTest.ts index f55b89eac1..1f19cfefdf 100644 --- a/fake-cucumber/javascript/test/TestStepTest.ts +++ b/fake-cucumber/javascript/test/TestStepTest.ts @@ -206,6 +206,18 @@ describe('TestStep', () => { assert.notDeepStrictEqual(testStepResult.duration, TimeConversion.millisecondsToDuration(0)) }) + it('indicates the test will be retried if status FAILED and retryable', async () => { + const testStepResult = await failedPickleTestStep.execute( + world, + 'some-testCaseStartedId', + () => undefined, + true, + true + ) + assert.strictEqual(testStepResult.status, 'FAILED') + assert.strictEqual(testStepResult.willBeRetried, true) + }) + it('returns a TestStepResult with status SKIPPED when the previous step was not passed', async () => { const testStepResult = await failedPickleTestStep.execute( world, From e4a1c295bffe629f50f517671eea1d0074f22a6c Mon Sep 17 00:00:00 2001 From: David Goss Date: Wed, 23 Jun 2021 19:55:40 +0100 Subject: [PATCH 08/38] fix wrong import --- fake-cucumber/javascript/src/cli.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/fake-cucumber/javascript/src/cli.ts b/fake-cucumber/javascript/src/cli.ts index ec7334895b..343fd98cdf 100644 --- a/fake-cucumber/javascript/src/cli.ts +++ b/fake-cucumber/javascript/src/cli.ts @@ -1,13 +1,14 @@ import { Command } from 'commander' import packageJson from '../package.json' import loadSupportCode from './loadSupportCode' -import runCucumber, { RunOptions } from './runCucumber' +import runCucumber from './runCucumber' import { GherkinStreams, IGherkinStreamOptions } from '@cucumber/gherkin-streams' import { Query as GherkinQuery } from '@cucumber/gherkin-utils' import { version } from '../package.json' import * as messages from '@cucumber/messages' import createMeta from '@cucumber/create-meta' import { MessageToNdjsonStream } from '@cucumber/message-streams' +import { RunOptions } from "./types"; const program = new Command() program.version(packageJson.version) From 2a1f9ca0231610ec352c573421708094843b60f9 Mon Sep 17 00:00:00 2001 From: David Goss Date: Wed, 23 Jun 2021 20:10:50 +0100 Subject: [PATCH 09/38] darn it javascript --- fake-cucumber/javascript/src/cli.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fake-cucumber/javascript/src/cli.ts b/fake-cucumber/javascript/src/cli.ts index 343fd98cdf..544edbed49 100644 --- a/fake-cucumber/javascript/src/cli.ts +++ b/fake-cucumber/javascript/src/cli.ts @@ -26,7 +26,7 @@ async function main() { const supportCode = await loadSupportCode(predictableIds, requirePaths) const runOptions: RunOptions = { - allowedRetries: retry ?? 0, + allowedRetries: retry ? Number(retry) : 0, } const gherkinStreamOptions: IGherkinStreamOptions = { From 0f171ce820072efa83f7cab80ca5f865e4972f26 Mon Sep 17 00:00:00 2001 From: David Goss Date: Wed, 23 Jun 2021 20:53:52 +0100 Subject: [PATCH 10/38] add feature file and support code for retry --- .../javascript/features/retry/retry.feature | 25 ++++++++++++++++ .../features/retry/retry.feature.ts | 29 +++++++++++++++++++ 2 files changed, 54 insertions(+) create mode 100644 compatibility-kit/javascript/features/retry/retry.feature create mode 100644 compatibility-kit/javascript/features/retry/retry.feature.ts diff --git a/compatibility-kit/javascript/features/retry/retry.feature b/compatibility-kit/javascript/features/retry/retry.feature new file mode 100644 index 0000000000..ac24f74ae2 --- /dev/null +++ b/compatibility-kit/javascript/features/retry/retry.feature @@ -0,0 +1,25 @@ +Feature: Retry + + Some Cucumber implementations support a Retry mechanism, where test cases that fail + can be retried up to a limited number of attempts in the same test run. + + Non-passing statuses other than FAILED don't trigger a retry - they are not going to pass + however many times we attempt them. + + Scenario: test case passes on the first attempt + Given a step that always passes + + Scenario: test case passes on the second attempt + Given a step that passes the second time + + Scenario: test case passes on the final attempt + Given a step that passes the third time + + Scenario: test case fails on every attempt + Given a step that always fails + + Scenario: don't retry on PENDING + Given a pending step + + Scenario: don't retry on UNDEFINED + Given a non-existent step diff --git a/compatibility-kit/javascript/features/retry/retry.feature.ts b/compatibility-kit/javascript/features/retry/retry.feature.ts new file mode 100644 index 0000000000..276435367d --- /dev/null +++ b/compatibility-kit/javascript/features/retry/retry.feature.ts @@ -0,0 +1,29 @@ +import { Given } from '@cucumber/fake-cucumber' + +Given('a step that always passes', function() { + // no-op +}) + +let secondTimePass = 0 +Given('a step that passes the second time', function() { + secondTimePass++ + if (secondTimePass < 2) { + throw new Error('Exception in step') + } +}) + +let thirdTimePass = 0 +Given('a step that passes the third time', function() { + thirdTimePass++ + if (thirdTimePass < 3) { + throw new Error('Exception in step') + } +}) + +Given('a step that always fails', function() { + throw new Error('Exception in step') +}) + +Given('a pending step', function() { + return 'pending' +}) From c030231eced8ef064cc4732e341cb66c85a50a13 Mon Sep 17 00:00:00 2001 From: David Goss Date: Wed, 23 Jun 2021 21:22:17 +0100 Subject: [PATCH 11/38] support extra fake-cucumber args per cck feature --- compatibility-kit/javascript/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/compatibility-kit/javascript/Makefile b/compatibility-kit/javascript/Makefile index 2da3a5a3e5..96b897449f 100644 --- a/compatibility-kit/javascript/Makefile +++ b/compatibility-kit/javascript/Makefile @@ -12,7 +12,7 @@ features/%.ndjson: features/% features/%.ts ifdef GOLDEN source ../ci_env ../../node_modules/@cucumber/fake-cucumber/bin/fake-cucumber \ - $< > $@ + $< $(shell cat $(subst .feature,.arguments.txt,$<)) > $@ else # no-op: run with GOLDEN=1 endif From 08225b83d1b4223b1313b1ac662a130b74c9dd03 Mon Sep 17 00:00:00 2001 From: David Goss Date: Wed, 23 Jun 2021 21:23:45 +0100 Subject: [PATCH 12/38] add args for retry and generate golden --- .../features/retry/retry.arguments.txt | 1 + .../features/retry/retry.feature.ndjson | 66 +++++++++++++++++++ 2 files changed, 67 insertions(+) create mode 100644 compatibility-kit/javascript/features/retry/retry.arguments.txt create mode 100644 compatibility-kit/javascript/features/retry/retry.feature.ndjson diff --git a/compatibility-kit/javascript/features/retry/retry.arguments.txt b/compatibility-kit/javascript/features/retry/retry.arguments.txt new file mode 100644 index 0000000000..cf83a5556d --- /dev/null +++ b/compatibility-kit/javascript/features/retry/retry.arguments.txt @@ -0,0 +1 @@ +--retry 2 diff --git a/compatibility-kit/javascript/features/retry/retry.feature.ndjson b/compatibility-kit/javascript/features/retry/retry.feature.ndjson new file mode 100644 index 0000000000..5b479d17a1 --- /dev/null +++ b/compatibility-kit/javascript/features/retry/retry.feature.ndjson @@ -0,0 +1,66 @@ +{"meta":{"protocolVersion":"16.0.1","implementation":{"name":"fake-cucumber","version":"12.0.2"},"cpu":{"name":"x64"},"os":{"name":"darwin","version":"19.6.0"},"runtime":{"name":"node.js","version":"12.22.1"}}} +{"source":{"data":"Feature: Retry\n\n Some Cucumber implementations support a Retry mechanism, where test cases that fail\n can be retried up to a limited number of attempts in the same test run.\n\n Non-passing statuses other than FAILED don't trigger a retry - they are not going to pass\n however many times we attempt them.\n\n Scenario: test case passes on the first attempt\n Given a step that always passes\n\n Scenario: test case passes on the second attempt\n Given a step that passes the second time\n\n Scenario: test case passes on the final attempt\n Given a step that passes the third time\n\n Scenario: test case fails on every attempt\n Given a step that always fails\n\n Scenario: don't retry on PENDING\n Given a pending step\n\n Scenario: don't retry on UNDEFINED\n Given a non-existent step\n","uri":"features/retry/retry.feature","mediaType":"text/x.cucumber.gherkin+plain"}} +{"gherkinDocument":{"feature":{"tags":[],"location":{"line":1,"column":1},"language":"en","keyword":"Feature","name":"Retry","description":" Some Cucumber implementations support a Retry mechanism, where test cases that fail\n can be retried up to a limited number of attempts in the same test run.\n\n Non-passing statuses other than FAILED don't trigger a retry - they are not going to pass\n however many times we attempt them.","children":[{"scenario":{"id":"7603853e-0f58-4e37-aa4f-f27cbde73b52","tags":[],"location":{"line":9,"column":3},"keyword":"Scenario","name":"test case passes on the first attempt","description":"","steps":[{"id":"2cdbea5f-a23d-4323-82a1-2e59aa42a166","location":{"line":10,"column":5},"keyword":"Given ","text":"a step that always passes"}],"examples":[]}},{"scenario":{"id":"ab274e86-328d-4b78-b414-d9d74ca9a799","tags":[],"location":{"line":12,"column":3},"keyword":"Scenario","name":"test case passes on the second attempt","description":"","steps":[{"id":"24cc7d4b-af0d-4895-bbb4-4b97f1e0db68","location":{"line":13,"column":5},"keyword":"Given ","text":"a step that passes the second time"}],"examples":[]}},{"scenario":{"id":"3e760d81-06f6-444d-a816-db2c22e10906","tags":[],"location":{"line":15,"column":3},"keyword":"Scenario","name":"test case passes on the final attempt","description":"","steps":[{"id":"564a75ae-5418-4ea6-af97-bbf89782b0bd","location":{"line":16,"column":5},"keyword":"Given ","text":"a step that passes the third time"}],"examples":[]}},{"scenario":{"id":"0849d98f-1af7-474b-a0f2-91a5039c9942","tags":[],"location":{"line":18,"column":3},"keyword":"Scenario","name":"test case fails on every attempt","description":"","steps":[{"id":"4c5ff741-eaaf-47b1-a4b5-3f061d5ee8fd","location":{"line":19,"column":5},"keyword":"Given ","text":"a step that always fails"}],"examples":[]}},{"scenario":{"id":"56a26755-0f6e-468c-bfaa-137ce00816c2","tags":[],"location":{"line":21,"column":3},"keyword":"Scenario","name":"don't retry on PENDING","description":"","steps":[{"id":"ddb2c1a2-9465-4d27-a9c5-e2ac81169092","location":{"line":22,"column":5},"keyword":"Given ","text":"a pending step"}],"examples":[]}},{"scenario":{"id":"06b61799-6a1e-4662-9c33-f96188ea2cdf","tags":[],"location":{"line":24,"column":3},"keyword":"Scenario","name":"don't retry on UNDEFINED","description":"","steps":[{"id":"c1627101-eee4-4b4c-8dee-1f16f9c17ebc","location":{"line":25,"column":5},"keyword":"Given ","text":"a non-existent step"}],"examples":[]}}]},"comments":[],"uri":"features/retry/retry.feature"}} +{"pickle":{"id":"2edb773c-22d8-4ce8-8ecf-f2c79753bdb0","uri":"features/retry/retry.feature","astNodeIds":["7603853e-0f58-4e37-aa4f-f27cbde73b52"],"tags":[],"name":"test case passes on the first attempt","language":"en","steps":[{"id":"98521534-f829-44d7-91b8-f28d489fa172","text":"a step that always passes","astNodeIds":["2cdbea5f-a23d-4323-82a1-2e59aa42a166"]}]}} +{"pickle":{"id":"db886750-a80a-4755-b631-70e624449a3f","uri":"features/retry/retry.feature","astNodeIds":["ab274e86-328d-4b78-b414-d9d74ca9a799"],"tags":[],"name":"test case passes on the second attempt","language":"en","steps":[{"id":"f9ef5152-5af7-4a75-9f5c-c3e5e06140ac","text":"a step that passes the second time","astNodeIds":["24cc7d4b-af0d-4895-bbb4-4b97f1e0db68"]}]}} +{"pickle":{"id":"db9776f5-9f6b-4243-a684-938c858cf19c","uri":"features/retry/retry.feature","astNodeIds":["3e760d81-06f6-444d-a816-db2c22e10906"],"tags":[],"name":"test case passes on the final attempt","language":"en","steps":[{"id":"f652fa91-608b-4a20-a646-0d101db04f3e","text":"a step that passes the third time","astNodeIds":["564a75ae-5418-4ea6-af97-bbf89782b0bd"]}]}} +{"pickle":{"id":"b209df7b-73be-44fe-9cd1-542ff813601d","uri":"features/retry/retry.feature","astNodeIds":["0849d98f-1af7-474b-a0f2-91a5039c9942"],"tags":[],"name":"test case fails on every attempt","language":"en","steps":[{"id":"f3d4503a-9406-4602-8351-41c894db9a34","text":"a step that always fails","astNodeIds":["4c5ff741-eaaf-47b1-a4b5-3f061d5ee8fd"]}]}} +{"pickle":{"id":"b6af4834-fc8b-43ac-bd9c-5d67ca7f1ec6","uri":"features/retry/retry.feature","astNodeIds":["56a26755-0f6e-468c-bfaa-137ce00816c2"],"tags":[],"name":"don't retry on PENDING","language":"en","steps":[{"id":"67008a71-c5bf-4329-9b9b-46c245ce3cc5","text":"a pending step","astNodeIds":["ddb2c1a2-9465-4d27-a9c5-e2ac81169092"]}]}} +{"pickle":{"id":"e2d316d3-7b43-46cb-a1b3-064a7957ca79","uri":"features/retry/retry.feature","astNodeIds":["06b61799-6a1e-4662-9c33-f96188ea2cdf"],"tags":[],"name":"don't retry on UNDEFINED","language":"en","steps":[{"id":"a3592eb9-a5c8-49ed-914a-43afffe67a16","text":"a non-existent step","astNodeIds":["c1627101-eee4-4b4c-8dee-1f16f9c17ebc"]}]}} +{"stepDefinition":{"id":"3e1c68ed-0aab-4f2d-a259-e15e9a6ebd5a","pattern":{"type":"CUCUMBER_EXPRESSION","source":"a step that always passes"},"sourceReference":{"uri":"features/retry/retry.feature.ts","location":{"line":3}}}} +{"stepDefinition":{"id":"68d26e2c-fb5b-4544-84a5-2e14d4d02e60","pattern":{"type":"CUCUMBER_EXPRESSION","source":"a step that passes the second time"},"sourceReference":{"uri":"features/retry/retry.feature.ts","location":{"line":8}}}} +{"stepDefinition":{"id":"25f10a67-e3fa-4020-b4e6-e4f3e96f6e18","pattern":{"type":"CUCUMBER_EXPRESSION","source":"a step that passes the third time"},"sourceReference":{"uri":"features/retry/retry.feature.ts","location":{"line":16}}}} +{"stepDefinition":{"id":"65b8bc1e-c2c3-4ee5-b1b5-f39d12f6e45b","pattern":{"type":"CUCUMBER_EXPRESSION","source":"a step that always fails"},"sourceReference":{"uri":"features/retry/retry.feature.ts","location":{"line":23}}}} +{"stepDefinition":{"id":"ea5bf72d-6f6d-426a-81ca-97c510730e83","pattern":{"type":"CUCUMBER_EXPRESSION","source":"a pending step"},"sourceReference":{"uri":"features/retry/retry.feature.ts","location":{"line":27}}}} +{"testRunStarted":{"timestamp":{"seconds":1624479621,"nanos":37000000}}} +{"testCase":{"id":"e869a04a-54d4-4e6d-ba37-0d176572a68b","pickleId":"2edb773c-22d8-4ce8-8ecf-f2c79753bdb0","testSteps":[{"id":"3fc93e1e-7d01-4027-8b0c-9be49a4f2b7b","pickleStepId":"98521534-f829-44d7-91b8-f28d489fa172","stepDefinitionIds":["3e1c68ed-0aab-4f2d-a259-e15e9a6ebd5a"],"stepMatchArgumentsLists":[{"stepMatchArguments":[]}]}]}} +{"testCase":{"id":"f7d970d2-46ec-4787-947d-4039dbddf900","pickleId":"db886750-a80a-4755-b631-70e624449a3f","testSteps":[{"id":"0b491dd4-75fb-41b9-bcbc-5df96b5bf491","pickleStepId":"f9ef5152-5af7-4a75-9f5c-c3e5e06140ac","stepDefinitionIds":["68d26e2c-fb5b-4544-84a5-2e14d4d02e60"],"stepMatchArgumentsLists":[{"stepMatchArguments":[]}]}]}} +{"testCase":{"id":"68aef805-aba8-431a-949f-b0cad10d77ab","pickleId":"db9776f5-9f6b-4243-a684-938c858cf19c","testSteps":[{"id":"995d6230-9483-4462-a0ef-42196de0359c","pickleStepId":"f652fa91-608b-4a20-a646-0d101db04f3e","stepDefinitionIds":["25f10a67-e3fa-4020-b4e6-e4f3e96f6e18"],"stepMatchArgumentsLists":[{"stepMatchArguments":[]}]}]}} +{"testCase":{"id":"943d198e-24c4-4d8e-bd1f-2d8dbea9f670","pickleId":"b209df7b-73be-44fe-9cd1-542ff813601d","testSteps":[{"id":"bbe8e8b2-1fcb-4214-8f54-c96ddfea69dc","pickleStepId":"f3d4503a-9406-4602-8351-41c894db9a34","stepDefinitionIds":["65b8bc1e-c2c3-4ee5-b1b5-f39d12f6e45b"],"stepMatchArgumentsLists":[{"stepMatchArguments":[]}]}]}} +{"testCase":{"id":"aca0b91e-7723-4780-892d-ea075a312d9d","pickleId":"b6af4834-fc8b-43ac-bd9c-5d67ca7f1ec6","testSteps":[{"id":"6c1e4e74-7f10-4ecf-aa48-4c75d3ede25c","pickleStepId":"67008a71-c5bf-4329-9b9b-46c245ce3cc5","stepDefinitionIds":["ea5bf72d-6f6d-426a-81ca-97c510730e83"],"stepMatchArgumentsLists":[{"stepMatchArguments":[]}]}]}} +{"testCase":{"id":"61670aff-abf0-4d79-947e-4118f1a72978","pickleId":"e2d316d3-7b43-46cb-a1b3-064a7957ca79","testSteps":[{"id":"5f706baf-3d0d-4109-8513-baec0bd41966","pickleStepId":"a3592eb9-a5c8-49ed-914a-43afffe67a16","stepDefinitionIds":[],"stepMatchArgumentsLists":[]}]}} +{"testCaseStarted":{"attempt":0,"testCaseId":"e869a04a-54d4-4e6d-ba37-0d176572a68b","id":"66af4c15-f759-401c-8014-815262f60f4a","timestamp":{"seconds":1624479621,"nanos":38000000}}} +{"testStepStarted":{"testCaseStartedId":"66af4c15-f759-401c-8014-815262f60f4a","testStepId":"3fc93e1e-7d01-4027-8b0c-9be49a4f2b7b","timestamp":{"seconds":1624479621,"nanos":38000000}}} +{"testStepFinished":{"testCaseStartedId":"66af4c15-f759-401c-8014-815262f60f4a","testStepId":"3fc93e1e-7d01-4027-8b0c-9be49a4f2b7b","testStepResult":{"duration":{"seconds":0,"nanos":212281},"status":"PASSED","willBeRetried":false},"timestamp":{"seconds":1624479621,"nanos":38000000}}} +{"testCaseFinished":{"testCaseStartedId":"66af4c15-f759-401c-8014-815262f60f4a","timestamp":{"seconds":1624479621,"nanos":38000000}}} +{"testCaseStarted":{"attempt":0,"testCaseId":"f7d970d2-46ec-4787-947d-4039dbddf900","id":"0400dcdf-7d6d-4a1e-b0e4-72100a5b522b","timestamp":{"seconds":1624479621,"nanos":38000000}}} +{"testStepStarted":{"testCaseStartedId":"0400dcdf-7d6d-4a1e-b0e4-72100a5b522b","testStepId":"0b491dd4-75fb-41b9-bcbc-5df96b5bf491","timestamp":{"seconds":1624479621,"nanos":39000000}}} +{"testStepFinished":{"testCaseStartedId":"0400dcdf-7d6d-4a1e-b0e4-72100a5b522b","testStepId":"0b491dd4-75fb-41b9-bcbc-5df96b5bf491","testStepResult":{"duration":{"seconds":0,"nanos":46724},"status":"FAILED","willBeRetried":true,"message":"Exception in step\n at Object. (features/retry/retry.feature.ts:11:11)\n at Generator.next ()\n at new Promise ()\n at Generator.next ()\n at features/retry/retry.feature:13"},"timestamp":{"seconds":1624479621,"nanos":47000000}}} +{"testCaseFinished":{"testCaseStartedId":"0400dcdf-7d6d-4a1e-b0e4-72100a5b522b","timestamp":{"seconds":1624479621,"nanos":47000000}}} +{"testCaseStarted":{"attempt":1,"testCaseId":"f7d970d2-46ec-4787-947d-4039dbddf900","id":"e0c0f6a6-0cfd-48bf-9ebf-54187cb335fa","timestamp":{"seconds":1624479621,"nanos":47000000}}} +{"testStepStarted":{"testCaseStartedId":"e0c0f6a6-0cfd-48bf-9ebf-54187cb335fa","testStepId":"0b491dd4-75fb-41b9-bcbc-5df96b5bf491","timestamp":{"seconds":1624479621,"nanos":47000000}}} +{"testStepFinished":{"testCaseStartedId":"e0c0f6a6-0cfd-48bf-9ebf-54187cb335fa","testStepId":"0b491dd4-75fb-41b9-bcbc-5df96b5bf491","testStepResult":{"duration":{"seconds":0,"nanos":27645},"status":"PASSED","willBeRetried":false},"timestamp":{"seconds":1624479621,"nanos":47000000}}} +{"testCaseFinished":{"testCaseStartedId":"e0c0f6a6-0cfd-48bf-9ebf-54187cb335fa","timestamp":{"seconds":1624479621,"nanos":47000000}}} +{"testCaseStarted":{"attempt":0,"testCaseId":"68aef805-aba8-431a-949f-b0cad10d77ab","id":"5f4fe282-bede-4104-9034-b6ea01174de7","timestamp":{"seconds":1624479621,"nanos":47000000}}} +{"testStepStarted":{"testCaseStartedId":"5f4fe282-bede-4104-9034-b6ea01174de7","testStepId":"995d6230-9483-4462-a0ef-42196de0359c","timestamp":{"seconds":1624479621,"nanos":47000000}}} +{"testStepFinished":{"testCaseStartedId":"5f4fe282-bede-4104-9034-b6ea01174de7","testStepId":"995d6230-9483-4462-a0ef-42196de0359c","testStepResult":{"duration":{"seconds":0,"nanos":73441},"status":"FAILED","willBeRetried":true,"message":"Exception in step\n at Object. (features/retry/retry.feature.ts:19:11)\n at Generator.next ()\n at new Promise ()\n at Generator.next ()\n at features/retry/retry.feature:16"},"timestamp":{"seconds":1624479621,"nanos":48000000}}} +{"testCaseFinished":{"testCaseStartedId":"5f4fe282-bede-4104-9034-b6ea01174de7","timestamp":{"seconds":1624479621,"nanos":48000000}}} +{"testCaseStarted":{"attempt":1,"testCaseId":"68aef805-aba8-431a-949f-b0cad10d77ab","id":"20b51aa0-a4ef-4621-9485-4836010a857e","timestamp":{"seconds":1624479621,"nanos":48000000}}} +{"testStepStarted":{"testCaseStartedId":"20b51aa0-a4ef-4621-9485-4836010a857e","testStepId":"995d6230-9483-4462-a0ef-42196de0359c","timestamp":{"seconds":1624479621,"nanos":48000000}}} +{"testStepFinished":{"testCaseStartedId":"20b51aa0-a4ef-4621-9485-4836010a857e","testStepId":"995d6230-9483-4462-a0ef-42196de0359c","testStepResult":{"duration":{"seconds":0,"nanos":16002},"status":"FAILED","willBeRetried":true,"message":"Exception in step\n at Object. (features/retry/retry.feature.ts:19:11)\n at Generator.next ()\n at new Promise ()\n at Generator.next ()\n at features/retry/retry.feature:16"},"timestamp":{"seconds":1624479621,"nanos":49000000}}} +{"testCaseFinished":{"testCaseStartedId":"20b51aa0-a4ef-4621-9485-4836010a857e","timestamp":{"seconds":1624479621,"nanos":49000000}}} +{"testCaseStarted":{"attempt":2,"testCaseId":"68aef805-aba8-431a-949f-b0cad10d77ab","id":"54048a1b-4dd9-41c6-bd00-81b0b58025b3","timestamp":{"seconds":1624479621,"nanos":49000000}}} +{"testStepStarted":{"testCaseStartedId":"54048a1b-4dd9-41c6-bd00-81b0b58025b3","testStepId":"995d6230-9483-4462-a0ef-42196de0359c","timestamp":{"seconds":1624479621,"nanos":49000000}}} +{"testStepFinished":{"testCaseStartedId":"54048a1b-4dd9-41c6-bd00-81b0b58025b3","testStepId":"995d6230-9483-4462-a0ef-42196de0359c","testStepResult":{"duration":{"seconds":0,"nanos":12140},"status":"PASSED","willBeRetried":false},"timestamp":{"seconds":1624479621,"nanos":49000000}}} +{"testCaseFinished":{"testCaseStartedId":"54048a1b-4dd9-41c6-bd00-81b0b58025b3","timestamp":{"seconds":1624479621,"nanos":49000000}}} +{"testCaseStarted":{"attempt":0,"testCaseId":"943d198e-24c4-4d8e-bd1f-2d8dbea9f670","id":"1e30a6c4-aa34-45b9-af7f-b34cdafc0d1f","timestamp":{"seconds":1624479621,"nanos":49000000}}} +{"testStepStarted":{"testCaseStartedId":"1e30a6c4-aa34-45b9-af7f-b34cdafc0d1f","testStepId":"bbe8e8b2-1fcb-4214-8f54-c96ddfea69dc","timestamp":{"seconds":1624479621,"nanos":49000000}}} +{"testStepFinished":{"testCaseStartedId":"1e30a6c4-aa34-45b9-af7f-b34cdafc0d1f","testStepId":"bbe8e8b2-1fcb-4214-8f54-c96ddfea69dc","testStepResult":{"duration":{"seconds":0,"nanos":42235},"status":"FAILED","willBeRetried":true,"message":"Exception in step\n at Object. (features/retry/retry.feature.ts:24:9)\n at Generator.next ()\n at new Promise ()\n at Generator.next ()\n at features/retry/retry.feature:19"},"timestamp":{"seconds":1624479621,"nanos":49000000}}} +{"testCaseFinished":{"testCaseStartedId":"1e30a6c4-aa34-45b9-af7f-b34cdafc0d1f","timestamp":{"seconds":1624479621,"nanos":49000000}}} +{"testCaseStarted":{"attempt":1,"testCaseId":"943d198e-24c4-4d8e-bd1f-2d8dbea9f670","id":"a5ecc972-84fe-4781-bdbb-458d7d69dce2","timestamp":{"seconds":1624479621,"nanos":49000000}}} +{"testStepStarted":{"testCaseStartedId":"a5ecc972-84fe-4781-bdbb-458d7d69dce2","testStepId":"bbe8e8b2-1fcb-4214-8f54-c96ddfea69dc","timestamp":{"seconds":1624479621,"nanos":49000000}}} +{"testStepFinished":{"testCaseStartedId":"a5ecc972-84fe-4781-bdbb-458d7d69dce2","testStepId":"bbe8e8b2-1fcb-4214-8f54-c96ddfea69dc","testStepResult":{"duration":{"seconds":0,"nanos":13725},"status":"FAILED","willBeRetried":true,"message":"Exception in step\n at Object. (features/retry/retry.feature.ts:24:9)\n at Generator.next ()\n at new Promise ()\n at Generator.next ()\n at features/retry/retry.feature:19"},"timestamp":{"seconds":1624479621,"nanos":50000000}}} +{"testCaseFinished":{"testCaseStartedId":"a5ecc972-84fe-4781-bdbb-458d7d69dce2","timestamp":{"seconds":1624479621,"nanos":50000000}}} +{"testCaseStarted":{"attempt":2,"testCaseId":"943d198e-24c4-4d8e-bd1f-2d8dbea9f670","id":"ebf25135-9c9a-46eb-a02b-498a4a3063d8","timestamp":{"seconds":1624479621,"nanos":50000000}}} +{"testStepStarted":{"testCaseStartedId":"ebf25135-9c9a-46eb-a02b-498a4a3063d8","testStepId":"bbe8e8b2-1fcb-4214-8f54-c96ddfea69dc","timestamp":{"seconds":1624479621,"nanos":50000000}}} +{"testStepFinished":{"testCaseStartedId":"ebf25135-9c9a-46eb-a02b-498a4a3063d8","testStepId":"bbe8e8b2-1fcb-4214-8f54-c96ddfea69dc","testStepResult":{"duration":{"seconds":0,"nanos":13135},"status":"FAILED","willBeRetried":false,"message":"Exception in step\n at Object. (features/retry/retry.feature.ts:24:9)\n at Generator.next ()\n at new Promise ()\n at Generator.next ()\n at features/retry/retry.feature:19"},"timestamp":{"seconds":1624479621,"nanos":52000000}}} +{"testCaseFinished":{"testCaseStartedId":"ebf25135-9c9a-46eb-a02b-498a4a3063d8","timestamp":{"seconds":1624479621,"nanos":52000000}}} +{"testCaseStarted":{"attempt":0,"testCaseId":"aca0b91e-7723-4780-892d-ea075a312d9d","id":"34ac46c2-e1e3-4f5e-bb74-b3ebf20955f2","timestamp":{"seconds":1624479621,"nanos":52000000}}} +{"testStepStarted":{"testCaseStartedId":"34ac46c2-e1e3-4f5e-bb74-b3ebf20955f2","testStepId":"6c1e4e74-7f10-4ecf-aa48-4c75d3ede25c","timestamp":{"seconds":1624479621,"nanos":52000000}}} +{"testStepFinished":{"testCaseStartedId":"34ac46c2-e1e3-4f5e-bb74-b3ebf20955f2","testStepId":"6c1e4e74-7f10-4ecf-aa48-4c75d3ede25c","testStepResult":{"duration":{"seconds":0,"nanos":45027},"status":"PENDING","willBeRetried":false},"timestamp":{"seconds":1624479621,"nanos":52000000}}} +{"testCaseFinished":{"testCaseStartedId":"34ac46c2-e1e3-4f5e-bb74-b3ebf20955f2","timestamp":{"seconds":1624479621,"nanos":53000000}}} +{"testCaseStarted":{"attempt":0,"testCaseId":"61670aff-abf0-4d79-947e-4118f1a72978","id":"719b82aa-a12a-48a8-ba1f-c45ab653b8cc","timestamp":{"seconds":1624479621,"nanos":53000000}}} +{"testStepStarted":{"testCaseStartedId":"719b82aa-a12a-48a8-ba1f-c45ab653b8cc","testStepId":"5f706baf-3d0d-4109-8513-baec0bd41966","timestamp":{"seconds":1624479621,"nanos":53000000}}} +{"testStepFinished":{"testCaseStartedId":"719b82aa-a12a-48a8-ba1f-c45ab653b8cc","testStepId":"5f706baf-3d0d-4109-8513-baec0bd41966","testStepResult":{"duration":{"seconds":0,"nanos":0},"status":"UNDEFINED","willBeRetried":false},"timestamp":{"seconds":1624479621,"nanos":53000000}}} +{"testCaseFinished":{"testCaseStartedId":"719b82aa-a12a-48a8-ba1f-c45ab653b8cc","timestamp":{"seconds":1624479621,"nanos":53000000}}} +{"testRunFinished":{"timestamp":{"seconds":1624479621,"nanos":53000000},"success":false}} From ef573e03d26df738863568561cbbddc0d1fa2806 Mon Sep 17 00:00:00 2001 From: David Goss Date: Wed, 23 Jun 2021 21:26:17 +0100 Subject: [PATCH 13/38] lint --- .../javascript/features/retry/retry.feature.ts | 10 +++++----- fake-cucumber/javascript/src/cli.ts | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/compatibility-kit/javascript/features/retry/retry.feature.ts b/compatibility-kit/javascript/features/retry/retry.feature.ts index 276435367d..0d107f9fe5 100644 --- a/compatibility-kit/javascript/features/retry/retry.feature.ts +++ b/compatibility-kit/javascript/features/retry/retry.feature.ts @@ -1,11 +1,11 @@ import { Given } from '@cucumber/fake-cucumber' -Given('a step that always passes', function() { +Given('a step that always passes', function () { // no-op }) let secondTimePass = 0 -Given('a step that passes the second time', function() { +Given('a step that passes the second time', function () { secondTimePass++ if (secondTimePass < 2) { throw new Error('Exception in step') @@ -13,17 +13,17 @@ Given('a step that passes the second time', function() { }) let thirdTimePass = 0 -Given('a step that passes the third time', function() { +Given('a step that passes the third time', function () { thirdTimePass++ if (thirdTimePass < 3) { throw new Error('Exception in step') } }) -Given('a step that always fails', function() { +Given('a step that always fails', function () { throw new Error('Exception in step') }) -Given('a pending step', function() { +Given('a pending step', function () { return 'pending' }) diff --git a/fake-cucumber/javascript/src/cli.ts b/fake-cucumber/javascript/src/cli.ts index 544edbed49..b980512102 100644 --- a/fake-cucumber/javascript/src/cli.ts +++ b/fake-cucumber/javascript/src/cli.ts @@ -8,7 +8,7 @@ import { version } from '../package.json' import * as messages from '@cucumber/messages' import createMeta from '@cucumber/create-meta' import { MessageToNdjsonStream } from '@cucumber/message-streams' -import { RunOptions } from "./types"; +import { RunOptions } from './types' const program = new Command() program.version(packageJson.version) From 870e611cc478e754554a641e6afc441b97b6831f Mon Sep 17 00:00:00 2001 From: David Goss Date: Wed, 23 Jun 2021 21:48:36 +0100 Subject: [PATCH 14/38] fix runCucumber signature to keep it backwards-compatible --- fake-cucumber/javascript/src/cli.ts | 4 ++-- fake-cucumber/javascript/src/runCucumber.ts | 6 +++++- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/fake-cucumber/javascript/src/cli.ts b/fake-cucumber/javascript/src/cli.ts index b980512102..d3f13bac8a 100644 --- a/fake-cucumber/javascript/src/cli.ts +++ b/fake-cucumber/javascript/src/cli.ts @@ -48,10 +48,10 @@ async function main() { await runCucumber( supportCode, - runOptions, gherkinEnvelopeStream, gherkinQuery, - envelopeOutputStream + envelopeOutputStream, + runOptions ) } diff --git a/fake-cucumber/javascript/src/runCucumber.ts b/fake-cucumber/javascript/src/runCucumber.ts index 0e7b859a89..7014c46e48 100644 --- a/fake-cucumber/javascript/src/runCucumber.ts +++ b/fake-cucumber/javascript/src/runCucumber.ts @@ -6,12 +6,16 @@ import SupportCode from './SupportCode' import { MakeTestPlan, RunOptions } from './types' import makeTestCase from './makeTestCase' +const DEFAULT_OPTIONS: RunOptions = { + allowedRetries: 0, +} + export default async function runCucumber( supportCode: SupportCode, - runOptions: RunOptions, gherkinEnvelopeStream: Readable, gherkinQuery: GherkinQuery, envelopeOutputStream: Writable, + runOptions: RunOptions = DEFAULT_OPTIONS, makeTestPlanFn: MakeTestPlan = makeTestPlan ) { const gherkinQueryStream = new GherkinQueryStream(gherkinQuery) From 6d2dbe8c9c9c1820a7041137d7584f724066cf73 Mon Sep 17 00:00:00 2001 From: David Goss Date: Wed, 23 Jun 2021 21:57:19 +0100 Subject: [PATCH 15/38] fix usage in query --- query/javascript/test/QueryTest.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query/javascript/test/QueryTest.ts b/query/javascript/test/QueryTest.ts index 8cae89853f..0fc6388d7b 100644 --- a/query/javascript/test/QueryTest.ts +++ b/query/javascript/test/QueryTest.ts @@ -520,7 +520,7 @@ describe('Query', () => { }) await pipelinePromise(gherkinMessages(gherkinSource, 'test.feature', newId), queryUpdateStream) - const testPlan = makeTestPlan(gherkinQuery, supportCode, makeTestCase) + const testPlan = makeTestPlan(gherkinQuery, supportCode, {allowedRetries: 0}, makeTestCase) await testPlan.execute((envelope: messages.Envelope) => { messagesHandler(envelope) cucumberQuery.update(envelope) From c1bb11210100130dfd98d1e0dbb960d059d53666 Mon Sep 17 00:00:00 2001 From: David Goss Date: Wed, 23 Jun 2021 22:07:34 +0100 Subject: [PATCH 16/38] add RunOptions to exports --- fake-cucumber/javascript/src/index.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/fake-cucumber/javascript/src/index.ts b/fake-cucumber/javascript/src/index.ts index d16bb651d8..d7445ceb7f 100644 --- a/fake-cucumber/javascript/src/index.ts +++ b/fake-cucumber/javascript/src/index.ts @@ -14,6 +14,7 @@ import { ISupportCodeExecutor, ITestPlan, ITestStep, + RunOptions, } from './types' import { MakeErrorMessage, @@ -41,6 +42,7 @@ export { ParameterType, defineParameterType, runCucumber, + RunOptions, SupportCode, IStepDefinition, IHook, From 1907dd51ed85ecc1d143bcfa09afebb6037b8b85 Mon Sep 17 00:00:00 2001 From: David Goss Date: Wed, 23 Jun 2021 22:07:56 +0100 Subject: [PATCH 17/38] make test step execute signature backwards-compatible --- fake-cucumber/javascript/src/TestStep.ts | 2 +- fake-cucumber/javascript/src/types.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/fake-cucumber/javascript/src/TestStep.ts b/fake-cucumber/javascript/src/TestStep.ts index da4685b0ae..9db730f316 100644 --- a/fake-cucumber/javascript/src/TestStep.ts +++ b/fake-cucumber/javascript/src/TestStep.ts @@ -26,7 +26,7 @@ export default abstract class TestStep implements ITestStep { testCaseStartedId: string, listener: EnvelopeListener, previousPassed: boolean, - retryable: boolean + retryable: boolean = false ): Promise { this.emitTestStepStarted(testCaseStartedId, listener) diff --git a/fake-cucumber/javascript/src/types.ts b/fake-cucumber/javascript/src/types.ts index 098eea982f..396118dabd 100644 --- a/fake-cucumber/javascript/src/types.ts +++ b/fake-cucumber/javascript/src/types.ts @@ -30,7 +30,7 @@ export interface ITestStep { testCaseStartedId: string, listener: EnvelopeListener, previousPassed: boolean, - retryable: boolean + retryable?: boolean ): Promise } From 75a5e35f18b5f0a67e6fc1a8771ec54efbf58317 Mon Sep 17 00:00:00 2001 From: David Goss Date: Wed, 23 Jun 2021 22:09:04 +0100 Subject: [PATCH 18/38] update json-to-messages usage --- json-to-messages/javascript/src/jsonToMessages.ts | 1 + .../src/test-generation/makePredictableTestPlan.ts | 7 ++++--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/json-to-messages/javascript/src/jsonToMessages.ts b/json-to-messages/javascript/src/jsonToMessages.ts index c4e79c54ce..f49cb99cf7 100644 --- a/json-to-messages/javascript/src/jsonToMessages.ts +++ b/json-to-messages/javascript/src/jsonToMessages.ts @@ -79,6 +79,7 @@ export default async function main( gherkinEnvelopeStream, query, ndjsonStream, + null, makePredictableTestPlan ) } diff --git a/json-to-messages/javascript/src/test-generation/makePredictableTestPlan.ts b/json-to-messages/javascript/src/test-generation/makePredictableTestPlan.ts index 09428f11a3..0e11eb1ea8 100644 --- a/json-to-messages/javascript/src/test-generation/makePredictableTestPlan.ts +++ b/json-to-messages/javascript/src/test-generation/makePredictableTestPlan.ts @@ -1,10 +1,11 @@ import { Query as GherkinQuery } from '@cucumber/gherkin-utils' -import { makeTestPlan, ITestPlan, SupportCode } from '@cucumber/fake-cucumber' +import { makeTestPlan, ITestPlan, SupportCode, RunOptions } from '@cucumber/fake-cucumber' import makePredictableTestCase from './makePredictableTestCase' export default function makePredictableTestPlan( gherkinQuery: GherkinQuery, - supportCode: SupportCode + supportCode: SupportCode, + runOptions: RunOptions ): ITestPlan { - return makeTestPlan(gherkinQuery, supportCode, makePredictableTestCase) + return makeTestPlan(gherkinQuery, supportCode, runOptions, makePredictableTestCase) } From 21b676fe4dbabd5841eb1e8a26f7ab56adeecf84 Mon Sep 17 00:00:00 2001 From: David Goss Date: Wed, 23 Jun 2021 22:29:32 +0100 Subject: [PATCH 19/38] add storybook story for retry --- react/javascript/src/stories/GherkinDocument.stories.tsx | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/react/javascript/src/stories/GherkinDocument.stories.tsx b/react/javascript/src/stories/GherkinDocument.stories.tsx index 8d76d6ddb4..4fd1f88e6b 100644 --- a/react/javascript/src/stories/GherkinDocument.stories.tsx +++ b/react/javascript/src/stories/GherkinDocument.stories.tsx @@ -18,6 +18,7 @@ import hooks from '../../acceptance/hooks/hooks.feature' import markdown from '../../acceptance/markdown/markdown.feature.md' import minimal from '../../acceptance/minimal/minimal.feature' import parameterTypes from '../../acceptance/parameter-types/parameter-types.feature' +import retry from '../../acceptance/retry/retry.feature' import rules from '../../acceptance/rules/rules.feature' import stacktTraces from '../../acceptance/stack-traces/stack-traces.feature' import unknownParameterTypes from '../../acceptance/unknown-parameter-type/unknown-parameter-type.feature' @@ -80,6 +81,11 @@ ParameterTypes.args = { envelopes: parameterTypes, } +export const Retry = Template.bind({}) +Retry.args = { + envelopes: retry, +} + export const Rules = Template.bind({}) Rules.args = { envelopes: rules, From f47b701a22320ac08b934f326afb02270a256748 Mon Sep 17 00:00:00 2001 From: David Goss Date: Wed, 23 Jun 2021 23:23:30 +0100 Subject: [PATCH 20/38] fix json to messages runtime --- json-to-messages/javascript/src/jsonToMessages.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/json-to-messages/javascript/src/jsonToMessages.ts b/json-to-messages/javascript/src/jsonToMessages.ts index f49cb99cf7..f4480c8ac5 100644 --- a/json-to-messages/javascript/src/jsonToMessages.ts +++ b/json-to-messages/javascript/src/jsonToMessages.ts @@ -79,7 +79,7 @@ export default async function main( gherkinEnvelopeStream, query, ndjsonStream, - null, + undefined, makePredictableTestPlan ) } From 1794e4b9f8e53cd17709f0b13e4c1179ce6bcbc8 Mon Sep 17 00:00:00 2001 From: David Goss Date: Wed, 23 Jun 2021 23:59:58 +0100 Subject: [PATCH 21/38] first pass: clear results and attachments on attempt start --- fake-cucumber/javascript/src/TestStep.ts | 2 +- query/javascript/src/Query.ts | 14 ++++++++- query/javascript/test/QueryTest.ts | 31 +++++++++++++++++-- .../src/components/gherkin/ExamplesTable.tsx | 6 ++-- .../src/components/gherkin/Scenario.tsx | 2 +- 5 files changed, 48 insertions(+), 7 deletions(-) diff --git a/fake-cucumber/javascript/src/TestStep.ts b/fake-cucumber/javascript/src/TestStep.ts index 9db730f316..3180284950 100644 --- a/fake-cucumber/javascript/src/TestStep.ts +++ b/fake-cucumber/javascript/src/TestStep.ts @@ -26,7 +26,7 @@ export default abstract class TestStep implements ITestStep { testCaseStartedId: string, listener: EnvelopeListener, previousPassed: boolean, - retryable: boolean = false + retryable = false ): Promise { this.emitTestStepStarted(testCaseStartedId, listener) diff --git a/query/javascript/src/Query.ts b/query/javascript/src/Query.ts index 696a333449..e50da4b9f9 100644 --- a/query/javascript/src/Query.ts +++ b/query/javascript/src/Query.ts @@ -1,6 +1,6 @@ import * as messages from '@cucumber/messages' -import { ArrayMultimap } from '@teppeis/multimaps' import { getWorstTestStepResult } from '@cucumber/messages' +import { ArrayMultimap } from '@teppeis/multimaps' export default class Query { private readonly testStepResultByPickleId = new ArrayMultimap() @@ -10,6 +10,7 @@ export default class Query { >() private readonly testStepById = new Map() private readonly testCaseByPickleId = new Map() + private readonly testCaseByTestCaseId = new Map() private readonly pickleIdByTestStepId = new Map() private readonly pickleStepIdByTestStepId = new Map() private readonly testStepResultsbyTestStepId = new ArrayMultimap< @@ -28,6 +29,7 @@ export default class Query { public update(envelope: messages.Envelope) { if (envelope.testCase) { + this.testCaseByTestCaseId.set(envelope.testCase.id, envelope.testCase) this.testCaseByPickleId.set(envelope.testCase.pickleId, envelope.testCase) for (const testStep of envelope.testCase.testSteps) { this.testStepById.set(testStep.id, testStep) @@ -41,6 +43,16 @@ export default class Query { } } + if (envelope.testCaseStarted) { + const testCase = this.testCaseByTestCaseId.get(envelope.testCaseStarted.testCaseId) + this.testStepResultByPickleId.delete(testCase.pickleId) + for (const testStep of testCase.testSteps) { + this.testStepResultsByPickleStepId.delete(testStep.pickleStepId) + this.testStepResultsbyTestStepId.delete(testStep.id) + this.attachmentsByTestStepId.delete(testStep.id) + } + } + if (envelope.testStepFinished) { const pickleId = this.pickleIdByTestStepId.get(envelope.testStepFinished.testStepId) this.testStepResultByPickleId.put(pickleId, envelope.testStepFinished.testStepResult) diff --git a/query/javascript/test/QueryTest.ts b/query/javascript/test/QueryTest.ts index 0fc6388d7b..b5679d566b 100644 --- a/query/javascript/test/QueryTest.ts +++ b/query/javascript/test/QueryTest.ts @@ -10,6 +10,7 @@ import { makeTestCase, IncrementClock, IncrementStopwatch, + RunOptions, } from '@cucumber/fake-cucumber' import { promisify } from 'util' @@ -381,6 +382,24 @@ describe('Query', () => { assert.deepStrictEqual(results.length, 1) assert.deepStrictEqual(results[0].status, 'PASSED') }) + + it('returns the result from the last attempt where retry has been used', async () => { + const emittedMessages: Array = [] + await execute( + `Feature: hello +Scenario: hi + Given a step that passes the second time +`, + (message) => emittedMessages.push(message), + { allowedRetries: 1 } + ) + const testCase = emittedMessages.find((child) => child.testCase).testCase + const testStep = testCase.testSteps[0] + const results = cucumberQuery.getTestStepResults(testStep.id) + + assert.deepStrictEqual(results.length, 1) + assert.deepStrictEqual(results[0].status, 'PASSED') + }) }) describe('#getHook(HookId)', () => { @@ -475,7 +494,8 @@ describe('Query', () => { async function execute( gherkinSource: string, - messagesHandler: (envelope: messages.Envelope) => void = () => null + messagesHandler: (envelope: messages.Envelope) => void = () => null, + runOptions: RunOptions = { allowedRetries: 0 } ): Promise { const newId = messages.IdGenerator.uuid() const clock = new IncrementClock() @@ -500,6 +520,13 @@ describe('Query', () => { supportCode.defineStepDefinition(null, 'I have {int} cukes in my {word}', (cukes: number) => { assert.ok(cukes) }) + let passesSecondTime = 0 + supportCode.defineStepDefinition(null, 'a step that passes the second time', () => { + passesSecondTime++ + if (passesSecondTime < 2) { + throw new Error(`This step failed.`) + } + }) const queryUpdateStream = new Writable({ objectMode: true, @@ -520,7 +547,7 @@ describe('Query', () => { }) await pipelinePromise(gherkinMessages(gherkinSource, 'test.feature', newId), queryUpdateStream) - const testPlan = makeTestPlan(gherkinQuery, supportCode, {allowedRetries: 0}, makeTestCase) + const testPlan = makeTestPlan(gherkinQuery, supportCode, runOptions, makeTestCase) await testPlan.execute((envelope: messages.Envelope) => { messagesHandler(envelope) cucumberQuery.update(envelope) diff --git a/react/javascript/src/components/gherkin/ExamplesTable.tsx b/react/javascript/src/components/gherkin/ExamplesTable.tsx index f13518f6f7..c8e6acbfd2 100644 --- a/react/javascript/src/components/gherkin/ExamplesTable.tsx +++ b/react/javascript/src/components/gherkin/ExamplesTable.tsx @@ -14,7 +14,7 @@ import { ExamplesTableProps, useCustomRendering, } from '../customise/CustomRendering' -import Attachment from "./Attachment"; +import Attachment from './Attachment' const DefaultRenderer: DefaultComponent = ({ tableHeader, @@ -115,7 +115,9 @@ const AttachmentAndErrorRow: React.FunctionComponent  {errorMessage && } - {attachments.map((attachment, i) => )} + {attachments.map((attachment, i) => ( + + ))} ) diff --git a/react/javascript/src/components/gherkin/Scenario.tsx b/react/javascript/src/components/gherkin/Scenario.tsx index 4a32606ef8..9050326802 100644 --- a/react/javascript/src/components/gherkin/Scenario.tsx +++ b/react/javascript/src/components/gherkin/Scenario.tsx @@ -41,7 +41,7 @@ const Scenario: React.FunctionComponent = ({ scenario }) => { {examplesList.map((examples, index) => { - return + return })} ) From 81facd0905e17873d439a6d1f3c84823dbb22b08 Mon Sep 17 00:00:00 2001 From: David Goss Date: Thu, 24 Jun 2021 00:10:08 +0100 Subject: [PATCH 22/38] work around ruby test data issue for now --- json-formatter/javascript-testdata/Makefile | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/json-formatter/javascript-testdata/Makefile b/json-formatter/javascript-testdata/Makefile index 53f8bdaf16..f468ce51fb 100644 --- a/json-formatter/javascript-testdata/Makefile +++ b/json-formatter/javascript-testdata/Makefile @@ -13,6 +13,10 @@ features/rules/rules.feature.ndjson: mkdir -p $(@D) echo "" > $@ +features/retry/retry.feature.ndjson: + mkdir -p $(@D) + echo "" > $@ + features/unknown-parameter-type/unknown-parameter-type.feature.ndjson: mkdir -p $(@D) echo "" > $@ From 4eb192a2800d9f8c503298d2c3f07d2590b5e0b2 Mon Sep 17 00:00:00 2001 From: David Goss Date: Thu, 24 Jun 2021 08:24:11 +0100 Subject: [PATCH 23/38] add more coverage, only clear when needed --- query/javascript/src/Query.ts | 7 ++++++- query/javascript/test/QueryTest.ts | 24 +++++++++++++++++++++++- 2 files changed, 29 insertions(+), 2 deletions(-) diff --git a/query/javascript/src/Query.ts b/query/javascript/src/Query.ts index e50da4b9f9..cb9aa49de7 100644 --- a/query/javascript/src/Query.ts +++ b/query/javascript/src/Query.ts @@ -43,7 +43,12 @@ export default class Query { } } - if (envelope.testCaseStarted) { + /* + when a test case attempt starts besides the first one, clear all existing results + and attachments for that test case, so we always report on the latest attempt + TODO keep track of results and attachments from all attempts, expand API accordingly + */ + if (envelope.testCaseStarted && envelope.testCaseStarted.attempt > 0) { const testCase = this.testCaseByTestCaseId.get(envelope.testCaseStarted.testCaseId) this.testStepResultByPickleId.delete(testCase.pickleId) for (const testStep of testCase.testSteps) { diff --git a/query/javascript/test/QueryTest.ts b/query/javascript/test/QueryTest.ts index b5679d566b..b22fe6beb4 100644 --- a/query/javascript/test/QueryTest.ts +++ b/query/javascript/test/QueryTest.ts @@ -383,7 +383,7 @@ describe('Query', () => { assert.deepStrictEqual(results[0].status, 'PASSED') }) - it('returns the result from the last attempt where retry has been used', async () => { + it('returns the result from the last attempt only where retry has been used', async () => { const emittedMessages: Array = [] await execute( `Feature: hello @@ -442,6 +442,28 @@ Scenario: hi assert.strictEqual(attachments[0].body, 'Hello') }) + + it('returns attachments from the last attempt only where retry has been used', async () => { + const testCases: messages.TestCase[] = [] + await execute( + `Feature: hello + Scenario: ok + Given a passed step with attachment + And a step that passes the second time + `, + (envelope) => { + if (envelope.testCase) { + testCases.push(envelope.testCase) + } + }, + { allowedRetries: 1 } + ) + + const attachments = cucumberQuery.getTestStepsAttachments([testCases[0].testSteps[0].id]) + assert.strictEqual(attachments.length, 1) + + assert.strictEqual(attachments[0].body, 'Hello') + }) }) describe('#getStatusCounts', () => { From 8db3305e2e5323d3d756b94a22375f6023c125f1 Mon Sep 17 00:00:00 2001 From: David Goss Date: Thu, 24 Jun 2021 08:27:30 +0100 Subject: [PATCH 24/38] update makefile to ignore retry --- json-formatter/ruby-testdata/Makefile | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/json-formatter/ruby-testdata/Makefile b/json-formatter/ruby-testdata/Makefile index 9f1520640a..4ed81b72f4 100644 --- a/json-formatter/ruby-testdata/Makefile +++ b/json-formatter/ruby-testdata/Makefile @@ -17,6 +17,10 @@ features/%.json: features/%-unprocessed.json features/rules/rules.feature.json: mkdir -p $(@D) echo "[]" > $@ + +features/retry/retry.feature.json: + mkdir -p $(@D) + echo "[]" > $@ features/unknown-parameter-type/unknown-parameter-type.feature.json: mkdir -p $(@D) From 3f90d30d0c8a3dbd991400f2dccddc8f0d1969e5 Mon Sep 17 00:00:00 2001 From: David Goss Date: Thu, 24 Jun 2021 18:50:36 +0100 Subject: [PATCH 25/38] messages: move willBeRetried field --- messages/jsonschema/TestCaseFinished.json | 6 +++++- messages/jsonschema/TestStepFinished.json | 6 +----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/messages/jsonschema/TestCaseFinished.json b/messages/jsonschema/TestCaseFinished.json index d1b6d18780..7c71c3f2d5 100644 --- a/messages/jsonschema/TestCaseFinished.json +++ b/messages/jsonschema/TestCaseFinished.json @@ -4,7 +4,8 @@ "additionalProperties": false, "required": [ "testCaseStartedId", - "timestamp" + "timestamp", + "willBeRetried" ], "properties": { "testCaseStartedId": { @@ -12,6 +13,9 @@ }, "timestamp": { "$ref": "./Timestamp.json" + }, + "willBeRetried": { + "type": "boolean" } }, "type": "object" diff --git a/messages/jsonschema/TestStepFinished.json b/messages/jsonschema/TestStepFinished.json index ab357eefee..ecfcd8be18 100644 --- a/messages/jsonschema/TestStepFinished.json +++ b/messages/jsonschema/TestStepFinished.json @@ -7,8 +7,7 @@ "additionalProperties": false, "required": [ "duration", - "status", - "willBeRetried" + "status" ], "properties": { "duration": { @@ -28,9 +27,6 @@ "FAILED" ], "type": "string" - }, - "willBeRetried": { - "type": "boolean" } }, "type": "object" From 395bd33ac99145c9be7c264e791abe0844763d15 Mon Sep 17 00:00:00 2001 From: David Goss Date: Thu, 24 Jun 2021 18:54:06 +0100 Subject: [PATCH 26/38] regenerate messages.md --- messages/messages.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/messages/messages.md b/messages/messages.md index 2e0865d665..4b43a58f58 100644 --- a/messages/messages.md +++ b/messages/messages.md @@ -406,6 +406,7 @@ will only have one of its fields set, which indicates the payload of the message | ----- | ---- | ----------- | ----------- | | `testCaseStartedId` | string | yes | | | `timestamp` | [Timestamp](#timestamp) | yes | | +| `willBeRetried` | boolean | yes | | ## TestCaseStarted @@ -446,7 +447,6 @@ will only have one of its fields set, which indicates the payload of the message | `duration` | [Duration](#duration) | yes | | | `message` | string | no | | | `status` | [TestStepResultStatus](#teststepresultstatus) | yes | | -| `willBeRetried` | boolean | yes | | ## TestStepStarted From 3d9739096dfb176d12d7ac5b6e03b1cf0735267b Mon Sep 17 00:00:00 2001 From: David Goss Date: Thu, 24 Jun 2021 19:02:47 +0100 Subject: [PATCH 27/38] messages: update js code --- messages/javascript/src/getWorstTestStepResult.ts | 1 - messages/javascript/src/messages.ts | 4 ++-- messages/javascript/test/getWorstTestStepResultsTest.ts | 3 --- 3 files changed, 2 insertions(+), 6 deletions(-) diff --git a/messages/javascript/src/getWorstTestStepResult.ts b/messages/javascript/src/getWorstTestStepResult.ts index 690a9f2d89..3f7007545f 100644 --- a/messages/javascript/src/getWorstTestStepResult.ts +++ b/messages/javascript/src/getWorstTestStepResult.ts @@ -10,7 +10,6 @@ export function getWorstTestStepResult(testStepResults: readonly TestStepResult[ testStepResults.slice().sort((r1, r2) => ordinal(r2.status) - ordinal(r1.status))[0] || { status: TestStepResultStatus.UNKNOWN, duration: millisecondsToDuration(0), - willBeRetried: false, } ) } diff --git a/messages/javascript/src/messages.ts b/messages/javascript/src/messages.ts index 8e48bc9be5..79fbd7a9aa 100644 --- a/messages/javascript/src/messages.ts +++ b/messages/javascript/src/messages.ts @@ -563,6 +563,8 @@ export class TestCaseFinished { @Type(() => Timestamp) timestamp: Timestamp = new Timestamp() + + willBeRetried: boolean = false } export class TestCaseStarted { @@ -614,8 +616,6 @@ export class TestStepResult { message?: string status: TestStepResultStatus = TestStepResultStatus.UNKNOWN - - willBeRetried: boolean = false } export class TestStepStarted { diff --git a/messages/javascript/test/getWorstTestStepResultsTest.ts b/messages/javascript/test/getWorstTestStepResultsTest.ts index 912c41f031..da83057d0d 100644 --- a/messages/javascript/test/getWorstTestStepResultsTest.ts +++ b/messages/javascript/test/getWorstTestStepResultsTest.ts @@ -8,17 +8,14 @@ describe('getWorstTestStepResult', () => { { status: TestStepResultStatus.PASSED, duration: { seconds: 0, nanos: 0 }, - willBeRetried: false, }, { status: TestStepResultStatus.FAILED, duration: { seconds: 0, nanos: 0 }, - willBeRetried: false, }, { status: TestStepResultStatus.PASSED, duration: { seconds: 0, nanos: 0 }, - willBeRetried: false, }, ]) assert.strictEqual(result.status, TestStepResultStatus.FAILED) From f6ef67fbe2cb07daa5a5c7e2ba4ba339f9f8b90c Mon Sep 17 00:00:00 2001 From: David Goss Date: Thu, 24 Jun 2021 19:04:58 +0100 Subject: [PATCH 28/38] messages: update ruby code --- messages/ruby/lib/cucumber/messages.dtos.rb | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/messages/ruby/lib/cucumber/messages.dtos.rb b/messages/ruby/lib/cucumber/messages.dtos.rb index 0fe9a7840a..0e3794d1df 100644 --- a/messages/ruby/lib/cucumber/messages.dtos.rb +++ b/messages/ruby/lib/cucumber/messages.dtos.rb @@ -1715,12 +1715,16 @@ class TestCaseFinished attr_reader :timestamp + attr_reader :will_be_retried + def initialize( test_case_started_id: '', - timestamp: Timestamp.new + timestamp: Timestamp.new, + will_be_retried: false ) @test_case_started_id = test_case_started_id @timestamp = timestamp + @will_be_retried = will_be_retried end end @@ -1876,18 +1880,14 @@ class TestStepResult attr_reader :status - attr_reader :will_be_retried - def initialize( duration: Duration.new, message: nil, - status: TestStepResultStatus::UNKNOWN, - will_be_retried: false + status: TestStepResultStatus::UNKNOWN ) @duration = duration @message = message @status = status - @will_be_retried = will_be_retried end end From 0c8bf2ba35f95ccd021f22262b0d5c527d4b15a6 Mon Sep 17 00:00:00 2001 From: David Goss Date: Thu, 24 Jun 2021 20:46:31 +0100 Subject: [PATCH 29/38] fix compilation in other javascript modules --- fake-cucumber/javascript/src/TestCase.ts | 6 ++- fake-cucumber/javascript/src/TestStep.ts | 8 +--- fake-cucumber/javascript/src/types.ts | 3 +- fake-cucumber/javascript/test/TestCaseTest.ts | 21 ++++++++++ fake-cucumber/javascript/test/TestPlanTest.ts | 42 +++++++++---------- fake-cucumber/javascript/test/TestStepTest.ts | 29 +++---------- .../javascript/test/NdjsonStreamTest.ts | 3 -- query/javascript/src/Query.ts | 2 - .../test/components/gherkin/HookStepTest.tsx | 4 -- 9 files changed, 52 insertions(+), 66 deletions(-) diff --git a/fake-cucumber/javascript/src/TestCase.ts b/fake-cucumber/javascript/src/TestCase.ts index ba7f255252..3b9cdf775c 100644 --- a/fake-cucumber/javascript/src/TestCase.ts +++ b/fake-cucumber/javascript/src/TestCase.ts @@ -54,17 +54,19 @@ export default class TestCase implements ITestCase { world, testCaseStartedId, listener, - previousPassed, - retryable + previousPassed ) previousPassed = testStepResult.status === messages.TestStepResultStatus.PASSED testStepResults.push(testStepResult) } + const willBeRetried = retryable && getWorstTestStepResult(testStepResults).status === "FAILED" + listener({ testCaseFinished: { testCaseStartedId: testCaseStartedId, timestamp: millisecondsSinceEpochToTimestamp(this.clock.clockNow()), + willBeRetried, }, }) diff --git a/fake-cucumber/javascript/src/TestStep.ts b/fake-cucumber/javascript/src/TestStep.ts index 3180284950..cfc8dcedbe 100644 --- a/fake-cucumber/javascript/src/TestStep.ts +++ b/fake-cucumber/javascript/src/TestStep.ts @@ -25,8 +25,7 @@ export default abstract class TestStep implements ITestStep { world: IWorld, testCaseStartedId: string, listener: EnvelopeListener, - previousPassed: boolean, - retryable = false + previousPassed: boolean ): Promise { this.emitTestStepStarted(testCaseStartedId, listener) @@ -36,7 +35,6 @@ export default abstract class TestStep implements ITestStep { { duration: millisecondsToDuration(0), status: messages.TestStepResultStatus.UNDEFINED, - willBeRetried: false, }, listener ) @@ -48,7 +46,6 @@ export default abstract class TestStep implements ITestStep { { duration: millisecondsToDuration(0), status: messages.TestStepResultStatus.AMBIGUOUS, - willBeRetried: false, }, listener ) @@ -60,7 +57,6 @@ export default abstract class TestStep implements ITestStep { { duration: millisecondsToDuration(0), status: messages.TestStepResultStatus.SKIPPED, - willBeRetried: false, }, listener ) @@ -84,7 +80,6 @@ export default abstract class TestStep implements ITestStep { result === 'pending' ? messages.TestStepResultStatus.PENDING : messages.TestStepResultStatus.PASSED, - willBeRetried: false, }, listener ) @@ -98,7 +93,6 @@ export default abstract class TestStep implements ITestStep { { duration, status: messages.TestStepResultStatus.FAILED, - willBeRetried: retryable, message, }, listener diff --git a/fake-cucumber/javascript/src/types.ts b/fake-cucumber/javascript/src/types.ts index 396118dabd..7fef2a8db5 100644 --- a/fake-cucumber/javascript/src/types.ts +++ b/fake-cucumber/javascript/src/types.ts @@ -29,8 +29,7 @@ export interface ITestStep { world: IWorld, testCaseStartedId: string, listener: EnvelopeListener, - previousPassed: boolean, - retryable?: boolean + previousPassed: boolean ): Promise } diff --git a/fake-cucumber/javascript/test/TestCaseTest.ts b/fake-cucumber/javascript/test/TestCaseTest.ts index 8da0eb5c1f..9fc5dbbfc3 100644 --- a/fake-cucumber/javascript/test/TestCaseTest.ts +++ b/fake-cucumber/javascript/test/TestCaseTest.ts @@ -61,5 +61,26 @@ describe('TestCase', () => { assert.strictEqual(testCaseStarted.testCaseId, testCase.id) assert.strictEqual(testCaseFinished.testCaseStartedId, testCaseStarted.id) }) + + it('indicates an upcoming retry on TestCaseFinished when FAILED', async () => { + const emitted: messages.Envelope[] = [] + const testSteps: ITestStep[] = [passedPickleTestStep] + const testCase = new TestCase( + 'some-test-case-id', + testSteps, + 'some-pickle-id', + new IncrementClock() + ) + await testCase.execute( + (message: messages.Envelope) => emitted.push(message), + 0, + true, + 'test-case-started-id' + ) + + const testCaseFinished = emitted.find((m) => m.testCaseFinished).testCaseFinished + + assert.strictEqual(testCaseFinished.willBeRetried, true) + }) }) }) diff --git a/fake-cucumber/javascript/test/TestPlanTest.ts b/fake-cucumber/javascript/test/TestPlanTest.ts index d47b053a1e..915b8ae3ed 100644 --- a/fake-cucumber/javascript/test/TestPlanTest.ts +++ b/fake-cucumber/javascript/test/TestPlanTest.ts @@ -39,9 +39,7 @@ describe('TestPlan', () => { envelopes.push(envelope) } await testPlan.execute(listener) - const testStepFinisheds = envelopes - .filter((m) => m.testStepFinished) - .map((m) => m.testStepFinished) + const testStepFinisheds = extractEnvelopes(envelopes, e => e.testStepFinished) assert.deepStrictEqual(testStepFinisheds.length, 1) assert.strictEqual(testStepFinisheds[0].testStepResult.status, 'PASSED') }) @@ -66,20 +64,19 @@ describe('TestPlan', () => { envelopes.push(envelope) } await testPlan.execute(listener) - const testCaseStarteds = envelopes - .filter((m) => m.testCaseStarted) - .map((m) => m.testCaseStarted) + extractEnvelopes(envelopes, e => e.testCaseStarted) + const testCaseStarteds = extractEnvelopes(envelopes, e => e.testCaseStarted) assert.deepStrictEqual(testCaseStarteds.length, 2) assert.strictEqual(testCaseStarteds[0].attempt, 0) assert.strictEqual(testCaseStarteds[1].attempt, 1) - const testStepFinisheds = envelopes - .filter((m) => m.testStepFinished) - .map((m) => m.testStepFinished) + const testCaseFinisheds = extractEnvelopes(envelopes, e => e.testCaseFinished) + assert.strictEqual(testCaseFinisheds.length, 2) + assert.strictEqual(testCaseFinisheds[0].willBeRetried, true) + assert.strictEqual(testCaseFinisheds[1].willBeRetried, false) + const testStepFinisheds = extractEnvelopes(envelopes, e => e.testStepFinished) assert.deepStrictEqual(testStepFinisheds.length, 2) assert.strictEqual(testStepFinisheds[0].testStepResult.status, 'FAILED') - assert.strictEqual(testStepFinisheds[0].testStepResult.willBeRetried, true) assert.strictEqual(testStepFinisheds[1].testStepResult.status, 'PASSED') - assert.strictEqual(testStepFinisheds[1].testStepResult.willBeRetried, false) }) it('executes test cases once if passing first time with retry', async () => { @@ -96,12 +93,10 @@ describe('TestPlan', () => { envelopes.push(envelope) } await testPlan.execute(listener) - const testStepFinisheds = envelopes - .filter((m) => m.testStepFinished) - .map((m) => m.testStepFinished) + const testStepFinisheds = extractEnvelopes(envelopes, e => e.testStepFinished) + assert.strictEqual(envelopes.find(e => e.testCaseFinished).testCaseFinished.willBeRetried, false) assert.deepStrictEqual(testStepFinisheds.length, 1) assert.strictEqual(testStepFinisheds[0].testStepResult.status, 'PASSED') - assert.strictEqual(testStepFinisheds[0].testStepResult.willBeRetried, false) }) it('executes test cases once if undefined first time with retry', async () => { @@ -116,12 +111,10 @@ describe('TestPlan', () => { envelopes.push(envelope) } await testPlan.execute(listener) - const testStepFinisheds = envelopes - .filter((m) => m.testStepFinished) - .map((m) => m.testStepFinished) + const testStepFinisheds = extractEnvelopes(envelopes, e => e.testStepFinished) + assert.strictEqual(envelopes.find(e => e.testCaseFinished).testCaseFinished.willBeRetried, false) assert.deepStrictEqual(testStepFinisheds.length, 1) assert.strictEqual(testStepFinisheds[0].testStepResult.status, 'UNDEFINED') - assert.strictEqual(testStepFinisheds[0].testStepResult.willBeRetried, false) }) class Flight { @@ -149,9 +142,7 @@ describe('TestPlan', () => { const envelopes: messages.Envelope[] = [] const listener: EnvelopeListener = (envelope) => envelopes.push(envelope) await testPlan.execute(listener) - const testStepFinisheds = envelopes - .filter((m) => m.testStepFinished) - .map((m) => m.testStepFinished) + const testStepFinisheds = extractEnvelopes(envelopes, e => e.testStepFinished) assert.deepStrictEqual(testStepFinisheds.length, 1) assert.strictEqual(testStepFinisheds[0].testStepResult.status, 'PASSED') const parameterTypes = envelopes.filter((m) => m.parameterType).map((m) => m.parameterType) @@ -210,3 +201,10 @@ async function makeTestPlan( return new TestPlan(testCases, supportCode, runOptions) } + +function extractEnvelopes( + envelopes: messages.Envelope[], + mapper: (e: messages.Envelope) => M +): M[] { + return envelopes.filter(mapper).map(mapper) +} diff --git a/fake-cucumber/javascript/test/TestStepTest.ts b/fake-cucumber/javascript/test/TestStepTest.ts index 1f19cfefdf..4c46f184f2 100644 --- a/fake-cucumber/javascript/test/TestStepTest.ts +++ b/fake-cucumber/javascript/test/TestStepTest.ts @@ -150,8 +150,7 @@ describe('TestStep', () => { world, 'some-testCaseStartedId', () => undefined, - true, - false + true ) assert.strictEqual(testStepResult.status, 'UNDEFINED') assert.deepStrictEqual(testStepResult.duration, TimeConversion.millisecondsToDuration(0)) @@ -162,8 +161,7 @@ describe('TestStep', () => { world, 'some-testCaseStartedId', () => undefined, - true, - false + true ) assert.strictEqual(testStepResult.status, 'AMBIGUOUS') assert.deepStrictEqual(testStepResult.duration, TimeConversion.millisecondsToDuration(0)) @@ -174,8 +172,7 @@ describe('TestStep', () => { world, 'some-testCaseStartedId', () => undefined, - true, - false + true ) assert.strictEqual(testStepResult.status, 'PASSED') assert.notDeepStrictEqual(testStepResult.duration, TimeConversion.millisecondsToDuration(0)) @@ -186,8 +183,7 @@ describe('TestStep', () => { world, 'some-testCaseStartedId', () => undefined, - true, - false + true ) assert.strictEqual(testStepResult.status, 'PENDING') assert.notDeepStrictEqual(testStepResult.duration, TimeConversion.millisecondsToDuration(0)) @@ -198,32 +194,18 @@ describe('TestStep', () => { world, 'some-testCaseStartedId', () => undefined, - true, - false + true ) assert.strictEqual(testStepResult.status, 'FAILED') assert.ok(testStepResult.message.includes('at failed.feature:234')) assert.notDeepStrictEqual(testStepResult.duration, TimeConversion.millisecondsToDuration(0)) }) - it('indicates the test will be retried if status FAILED and retryable', async () => { - const testStepResult = await failedPickleTestStep.execute( - world, - 'some-testCaseStartedId', - () => undefined, - true, - true - ) - assert.strictEqual(testStepResult.status, 'FAILED') - assert.strictEqual(testStepResult.willBeRetried, true) - }) - it('returns a TestStepResult with status SKIPPED when the previous step was not passed', async () => { const testStepResult = await failedPickleTestStep.execute( world, 'some-testCaseStartedId', () => undefined, - false, false ) assert.strictEqual(testStepResult.status, 'SKIPPED') @@ -235,7 +217,6 @@ describe('TestStep', () => { world, 'some-testCaseStartedId', () => undefined, - false, false ) assert.strictEqual(testStepResult.status, 'FAILED') diff --git a/message-streams/javascript/test/NdjsonStreamTest.ts b/message-streams/javascript/test/NdjsonStreamTest.ts index a6eb0e264d..da759ac760 100644 --- a/message-streams/javascript/test/NdjsonStreamTest.ts +++ b/message-streams/javascript/test/NdjsonStreamTest.ts @@ -18,7 +18,6 @@ describe('NdjsonStream', () => { testStepResult: { status: messages.TestStepResultStatus.UNKNOWN, duration: { nanos: 0, seconds: 0 }, - willBeRetried: false, }, testCaseStartedId: '1', testStepId: '2', @@ -50,7 +49,6 @@ describe('NdjsonStream', () => { testStepResult: { status: messages.TestStepResultStatus.UNKNOWN, duration: { nanos: 0, seconds: 0 }, - willBeRetried: false, }, testCaseStartedId: '1', testStepId: '2', @@ -68,7 +66,6 @@ describe('NdjsonStream', () => { testStepResult: { status: messages.TestStepResultStatus.UNKNOWN, duration: { nanos: 0, seconds: 0 }, - willBeRetried: false, }, testCaseStartedId: '1', testStepId: '2', diff --git a/query/javascript/src/Query.ts b/query/javascript/src/Query.ts index cb9aa49de7..cbc835e373 100644 --- a/query/javascript/src/Query.ts +++ b/query/javascript/src/Query.ts @@ -91,7 +91,6 @@ export default class Query { { status: messages.TestStepResultStatus.UNKNOWN, duration: messages.TimeConversion.millisecondsToDuration(0), - willBeRetried: false, }, ] } @@ -112,7 +111,6 @@ export default class Query { { status: messages.TestStepResultStatus.UNKNOWN, duration: messages.TimeConversion.millisecondsToDuration(0), - willBeRetried: false, }, ] } diff --git a/react/javascript/test/components/gherkin/HookStepTest.tsx b/react/javascript/test/components/gherkin/HookStepTest.tsx index 16e049df89..f69a38ff34 100644 --- a/react/javascript/test/components/gherkin/HookStepTest.tsx +++ b/react/javascript/test/components/gherkin/HookStepTest.tsx @@ -36,7 +36,6 @@ describe('', () => { seconds: 1, nanos: 0, }, - willBeRetried: false, }, ], { @@ -71,7 +70,6 @@ describe('', () => { seconds: 1, nanos: 0, }, - willBeRetried: false, }, ], null @@ -97,7 +95,6 @@ describe('', () => { seconds: 1, nanos: 0, }, - willBeRetried: false, }, ], { @@ -135,7 +132,6 @@ describe('', () => { seconds: 1, nanos: 0, }, - willBeRetried: false, }, ], { From 2b5946387a30866271f06ae220937c1ed9e356a7 Mon Sep 17 00:00:00 2001 From: David Goss Date: Thu, 24 Jun 2021 20:50:06 +0100 Subject: [PATCH 30/38] fix one more --- json-to-messages/javascript/src/PredictableTestSteps.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/json-to-messages/javascript/src/PredictableTestSteps.ts b/json-to-messages/javascript/src/PredictableTestSteps.ts index 9474053f3a..b1340ebf37 100644 --- a/json-to-messages/javascript/src/PredictableTestSteps.ts +++ b/json-to-messages/javascript/src/PredictableTestSteps.ts @@ -31,7 +31,6 @@ abstract class PredictableTestStep extends TestStep implements ITestStep { return this.emitTestStepFinished( testCaseStartedId, { - willBeRetried: false, duration: messages.TimeConversion.millisecondsToDuration(this.duration), status: this.status, message: this.errorMessage, From 65daa93bc8d5f22ea0f3ae4492cdcb71c23d1ba2 Mon Sep 17 00:00:00 2001 From: David Goss Date: Thu, 24 Jun 2021 21:01:51 +0100 Subject: [PATCH 31/38] make arguments load tolerate no file --- compatibility-kit/javascript/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/compatibility-kit/javascript/Makefile b/compatibility-kit/javascript/Makefile index 96b897449f..1ccf232613 100644 --- a/compatibility-kit/javascript/Makefile +++ b/compatibility-kit/javascript/Makefile @@ -12,7 +12,7 @@ features/%.ndjson: features/% features/%.ts ifdef GOLDEN source ../ci_env ../../node_modules/@cucumber/fake-cucumber/bin/fake-cucumber \ - $< $(shell cat $(subst .feature,.arguments.txt,$<)) > $@ + $< $(shell [ -f $(subst .feature,.arguments.txt,$<) ] && cat $(subst .feature,.arguments.txt,$<)) > $@ else # no-op: run with GOLDEN=1 endif From 5d070ba5861472e02b63f44b719f19729031ee53 Mon Sep 17 00:00:00 2001 From: David Goss Date: Thu, 24 Jun 2021 21:02:01 +0100 Subject: [PATCH 32/38] regenerate cck ndjson --- .../attachments/attachments.feature.ndjson | 152 +++++++++--------- .../data-tables/data-tables.feature.ndjson | 28 ++-- .../examples-tables.feature.ndjson | 134 +++++++-------- .../features/hooks/hooks.feature.ndjson | 130 +++++++-------- .../markdown/markdown.feature.md.ndjson | 68 ++++---- .../features/minimal/minimal.feature.ndjson | 22 +-- .../parameter-types.feature.ndjson | 24 +-- .../features/retry/retry.feature.ndjson | 128 +++++++-------- .../features/rules/rules.feature.ndjson | 88 +++++----- .../stack-traces/stack-traces.feature.ndjson | 22 +-- .../unknown-parameter-type.feature.ndjson | 20 +-- 11 files changed, 408 insertions(+), 408 deletions(-) diff --git a/compatibility-kit/javascript/features/attachments/attachments.feature.ndjson b/compatibility-kit/javascript/features/attachments/attachments.feature.ndjson index 5a50a8d9e4..7c1f8ea99d 100644 --- a/compatibility-kit/javascript/features/attachments/attachments.feature.ndjson +++ b/compatibility-kit/javascript/features/attachments/attachments.feature.ndjson @@ -1,77 +1,77 @@ -{"meta":{"protocolVersion":"16.0.1","implementation":{"name":"fake-cucumber","version":"12.0.2"},"cpu":{"name":"x64"},"os":{"name":"linux","version":"5.10.25-linuxkit"},"runtime":{"name":"node.js","version":"12.16.2"}}} +{"meta":{"protocolVersion":"16.0.1","implementation":{"name":"fake-cucumber","version":"12.0.2"},"cpu":{"name":"x64"},"os":{"name":"darwin","version":"19.6.0"},"runtime":{"name":"node.js","version":"12.22.1"}}} {"source":{"data":"Feature: Attachments\n It is sometimes useful to take a screenshot while a scenario runs.\n Or capture some logs.\n\n Cucumber lets you `attach` arbitrary files during execution, and you can\n specify a content type for the contents.\n\n Formatters can then render these attachments in reports.\n\n Attachments must have a body and a content type\n\n Scenario: Strings can be attached with a media type\n Beware that some formatters such as @cucumber/react use the media type\n to determine how to display an attachment.\n\n When the string \"hello\" is attached as \"application/octet-stream\"\n\n Scenario: Log JSON\n When the following string is attached as \"application/json\":\n ```\n {\"message\": \"The big question\", \"foo\": \"bar\"}\n ```\n\n Scenario: Log text\n When the string \"hello\" is logged\n\n Scenario: Log ANSI coloured text\n When text with ANSI escapes is logged\n\n Scenario: Byte arrays are base64-encoded regardless of media type\n When an array with 10 bytes is attached as \"text/plain\"\n\n Scenario: Streams are always base64-encoded\n When a JPEG image is attached\n\n Scenario: Attaching images in examples\n When the png is attached\n\n Examples:\n | image |\n | cucumber.png |\n","uri":"features/attachments/attachments.feature","mediaType":"text/x.cucumber.gherkin+plain"}} -{"gherkinDocument":{"feature":{"tags":[],"location":{"line":1,"column":1},"language":"en","keyword":"Feature","name":"Attachments","description":" It is sometimes useful to take a screenshot while a scenario runs.\n Or capture some logs.\n\n Cucumber lets you `attach` arbitrary files during execution, and you can\n specify a content type for the contents.\n\n Formatters can then render these attachments in reports.\n\n Attachments must have a body and a content type","children":[{"scenario":{"id":"e69b37bc-57af-44f8-bf6b-d0b48ff54703","tags":[],"location":{"line":12,"column":3},"keyword":"Scenario","name":"Strings can be attached with a media type","description":" Beware that some formatters such as @cucumber/react use the media type\n to determine how to display an attachment.","steps":[{"id":"17873295-47b2-4052-a1d4-24802e4ec66b","location":{"line":16,"column":5},"keyword":"When ","text":"the string \"hello\" is attached as \"application/octet-stream\""}],"examples":[]}},{"scenario":{"id":"e9af4b61-11c1-4d01-b422-2d4763a5c565","tags":[],"location":{"line":18,"column":3},"keyword":"Scenario","name":"Log JSON","description":"","steps":[{"id":"6dc6a195-7a44-44c4-aea0-985b35db2cd6","location":{"line":19,"column":6},"keyword":"When ","text":"the following string is attached as \"application/json\":","docString":{"location":{"line":20,"column":8},"content":"{\"message\": \"The big question\", \"foo\": \"bar\"}","delimiter":"```"}}],"examples":[]}},{"scenario":{"id":"34649a92-815b-4b1c-b4a5-cf1441a4e187","tags":[],"location":{"line":24,"column":3},"keyword":"Scenario","name":"Log text","description":"","steps":[{"id":"bbdf9dbe-fe6d-420a-bed0-c36d20c9583c","location":{"line":25,"column":5},"keyword":"When ","text":"the string \"hello\" is logged"}],"examples":[]}},{"scenario":{"id":"8d8dfcf6-4230-4b76-8fd0-975c833c3044","tags":[],"location":{"line":27,"column":3},"keyword":"Scenario","name":"Log ANSI coloured text","description":"","steps":[{"id":"d1c0ca52-92ad-4dcc-af4d-0fa58cde07f6","location":{"line":28,"column":6},"keyword":"When ","text":"text with ANSI escapes is logged"}],"examples":[]}},{"scenario":{"id":"5daad9a1-2920-4464-97ea-c693937e4395","tags":[],"location":{"line":30,"column":3},"keyword":"Scenario","name":"Byte arrays are base64-encoded regardless of media type","description":"","steps":[{"id":"4c73ea24-54f4-4317-8b75-6bf6c3768529","location":{"line":31,"column":5},"keyword":"When ","text":"an array with 10 bytes is attached as \"text/plain\""}],"examples":[]}},{"scenario":{"id":"97e1513d-ef94-464d-9c67-04792e9b9439","tags":[],"location":{"line":33,"column":3},"keyword":"Scenario","name":"Streams are always base64-encoded","description":"","steps":[{"id":"21bec399-6283-4d75-8d3b-ba44f136feb2","location":{"line":34,"column":5},"keyword":"When ","text":"a JPEG image is attached"}],"examples":[]}},{"scenario":{"id":"397cb38c-ef59-4b53-ba4f-24c557f8e3ac","tags":[],"location":{"line":36,"column":3},"keyword":"Scenario","name":"Attaching images in examples","description":"","steps":[{"id":"93759c9a-a6c3-4555-a389-55f1fd5d5973","location":{"line":37,"column":5},"keyword":"When ","text":"the png is attached"}],"examples":[{"id":"97374343-2c28-48d3-84ba-86f81c837d72","tags":[],"location":{"line":39,"column":5},"keyword":"Examples","name":"","description":"","tableHeader":{"id":"c8a934dd-f300-4c5d-bca6-0648f19a698d","location":{"line":40,"column":7},"cells":[{"location":{"line":40,"column":9},"value":"image"}]},"tableBody":[{"id":"392313b8-0503-4a9c-a359-85713cff17fc","location":{"line":41,"column":7},"cells":[{"location":{"line":41,"column":9},"value":"cucumber.png"}]}]}]}}]},"comments":[],"uri":"features/attachments/attachments.feature"}} -{"pickle":{"id":"25d47a21-a340-4694-95a1-fd20fa223256","uri":"features/attachments/attachments.feature","astNodeIds":["e69b37bc-57af-44f8-bf6b-d0b48ff54703"],"tags":[],"name":"Strings can be attached with a media type","language":"en","steps":[{"id":"b3210d61-cb0a-4921-b4ae-8d774ebd170a","text":"the string \"hello\" is attached as \"application/octet-stream\"","astNodeIds":["17873295-47b2-4052-a1d4-24802e4ec66b"]}]}} -{"pickle":{"id":"21b6da7d-5a3c-4bf8-b137-96cfb09b3b68","uri":"features/attachments/attachments.feature","astNodeIds":["e9af4b61-11c1-4d01-b422-2d4763a5c565"],"tags":[],"name":"Log JSON","language":"en","steps":[{"id":"642dab92-6900-40b2-bbac-a14140781378","text":"the following string is attached as \"application/json\":","argument":{"docString":{"content":"{\"message\": \"The big question\", \"foo\": \"bar\"}"}},"astNodeIds":["6dc6a195-7a44-44c4-aea0-985b35db2cd6"]}]}} -{"pickle":{"id":"1664c2f7-8319-4ad6-a2b0-59f4945d391a","uri":"features/attachments/attachments.feature","astNodeIds":["34649a92-815b-4b1c-b4a5-cf1441a4e187"],"tags":[],"name":"Log text","language":"en","steps":[{"id":"1b0ddddf-88d4-4ad1-90b3-eab44363c47b","text":"the string \"hello\" is logged","astNodeIds":["bbdf9dbe-fe6d-420a-bed0-c36d20c9583c"]}]}} -{"pickle":{"id":"f93c09ec-a0aa-46dd-8142-870fdfc267cb","uri":"features/attachments/attachments.feature","astNodeIds":["8d8dfcf6-4230-4b76-8fd0-975c833c3044"],"tags":[],"name":"Log ANSI coloured text","language":"en","steps":[{"id":"c0a05e09-7e87-4217-885a-5d40d1b58ea9","text":"text with ANSI escapes is logged","astNodeIds":["d1c0ca52-92ad-4dcc-af4d-0fa58cde07f6"]}]}} -{"pickle":{"id":"9442362c-6dc6-4dfd-a13d-ceb44bb12910","uri":"features/attachments/attachments.feature","astNodeIds":["5daad9a1-2920-4464-97ea-c693937e4395"],"tags":[],"name":"Byte arrays are base64-encoded regardless of media type","language":"en","steps":[{"id":"ccc1ad8d-db79-4f84-99ec-d43ff081e9a7","text":"an array with 10 bytes is attached as \"text/plain\"","astNodeIds":["4c73ea24-54f4-4317-8b75-6bf6c3768529"]}]}} -{"pickle":{"id":"fbdb2be2-9ed6-409f-b75d-b5ab93e67096","uri":"features/attachments/attachments.feature","astNodeIds":["97e1513d-ef94-464d-9c67-04792e9b9439"],"tags":[],"name":"Streams are always base64-encoded","language":"en","steps":[{"id":"2e102f69-cba7-4cfb-b60d-f499c6c64d8a","text":"a JPEG image is attached","astNodeIds":["21bec399-6283-4d75-8d3b-ba44f136feb2"]}]}} -{"pickle":{"id":"269b39e6-0050-4379-8820-b4f2e33c3271","uri":"features/attachments/attachments.feature","astNodeIds":["397cb38c-ef59-4b53-ba4f-24c557f8e3ac","392313b8-0503-4a9c-a359-85713cff17fc"],"name":"Attaching images in examples","language":"en","steps":[{"id":"c077675c-9091-4b9b-98af-7d314327f94a","text":"the cucumber.png png is attached","astNodeIds":["93759c9a-a6c3-4555-a389-55f1fd5d5973","392313b8-0503-4a9c-a359-85713cff17fc"]}],"tags":[]}} -{"stepDefinition":{"id":"e27376f3-9df6-4d46-ab8a-04a03394bb02","pattern":{"type":"CUCUMBER_EXPRESSION","source":"the string {string} is attached as {string}"},"sourceReference":{"uri":"features/attachments/attachments.feature.ts","location":{"line":8}}}} -{"stepDefinition":{"id":"70e56510-7827-4112-b25f-2ec8581dc0c8","pattern":{"type":"CUCUMBER_EXPRESSION","source":"the string {string} is logged"},"sourceReference":{"uri":"features/attachments/attachments.feature.ts","location":{"line":12}}}} -{"stepDefinition":{"id":"18618643-6326-471b-b159-4b705f81682d","pattern":{"type":"CUCUMBER_EXPRESSION","source":"text with ANSI escapes is logged"},"sourceReference":{"uri":"features/attachments/attachments.feature.ts","location":{"line":16}}}} -{"stepDefinition":{"id":"8b873057-9e7c-4ffc-9f78-a2104d964cb2","pattern":{"type":"CUCUMBER_EXPRESSION","source":"the following string is attached as {string}:"},"sourceReference":{"uri":"features/attachments/attachments.feature.ts","location":{"line":22}}}} -{"stepDefinition":{"id":"ac756f0c-66b9-47c4-921b-8cc722f0edf7","pattern":{"type":"CUCUMBER_EXPRESSION","source":"an array with {int} bytes is attached as {string}"},"sourceReference":{"uri":"features/attachments/attachments.feature.ts","location":{"line":26}}}} -{"stepDefinition":{"id":"11362e02-3fbd-46f8-b329-77757081e24f","pattern":{"type":"CUCUMBER_EXPRESSION","source":"a stream with {int} bytes are attached as {string}"},"sourceReference":{"uri":"features/attachments/attachments.feature.ts","location":{"line":35}}}} -{"stepDefinition":{"id":"44779f27-f1c1-4ec9-98b5-19bf5b70ebfd","pattern":{"type":"CUCUMBER_EXPRESSION","source":"a JPEG image is attached"},"sourceReference":{"uri":"features/attachments/attachments.feature.ts","location":{"line":48}}}} -{"stepDefinition":{"id":"8b6163a5-dc0e-4c1d-bdff-095cc9700253","pattern":{"type":"CUCUMBER_EXPRESSION","source":"the {word} png is attached"},"sourceReference":{"uri":"features/attachments/attachments.feature.ts","location":{"line":52}}}} -{"hook":{"id":"5e00a87b-b5de-4d96-af4a-f10b836b7ef5","sourceReference":{"uri":"features/attachments/attachments.feature.ts","location":{"line":6}}}} -{"testRunStarted":{"timestamp":{"seconds":1623962934,"nanos":77000000}}} -{"testCase":{"id":"59faaedb-88d2-4bd4-851a-b1f0fdfa88c5","pickleId":"25d47a21-a340-4694-95a1-fd20fa223256","testSteps":[{"id":"d4ab46ee-cb3b-4956-bd83-e4b135e7c5ce","hookId":"5e00a87b-b5de-4d96-af4a-f10b836b7ef5"},{"id":"7af303ab-6a66-47ae-a753-375b652c30be","pickleStepId":"b3210d61-cb0a-4921-b4ae-8d774ebd170a","stepDefinitionIds":["e27376f3-9df6-4d46-ab8a-04a03394bb02"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"value":"\"hello\"","start":11,"children":[{"value":"hello","start":12,"children":[{"children":[]}]},{"children":[{"children":[]}]}]},"parameterTypeName":"string"},{"group":{"value":"\"application/octet-stream\"","start":34,"children":[{"value":"application/octet-stream","start":35,"children":[{"children":[]}]},{"children":[{"children":[]}]}]},"parameterTypeName":"string"}]}]}]}} -{"testCase":{"id":"6d4578fa-8185-470c-a7b2-637c7732c7fc","pickleId":"21b6da7d-5a3c-4bf8-b137-96cfb09b3b68","testSteps":[{"id":"25075740-f1ab-41a5-8890-82d65c458324","hookId":"5e00a87b-b5de-4d96-af4a-f10b836b7ef5"},{"id":"0ab2871c-266d-4540-ace5-d14b5751d867","pickleStepId":"642dab92-6900-40b2-bbac-a14140781378","stepDefinitionIds":["8b873057-9e7c-4ffc-9f78-a2104d964cb2"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"value":"\"application/json\"","start":36,"children":[{"value":"application/json","start":37,"children":[{"children":[]}]},{"children":[{"children":[]}]}]},"parameterTypeName":"string"}]}]}]}} -{"testCase":{"id":"7ee3dfd1-36e1-4f08-91c9-0fff76384cc7","pickleId":"1664c2f7-8319-4ad6-a2b0-59f4945d391a","testSteps":[{"id":"cf576ad4-e7f8-4ec3-9282-fb65c302a670","hookId":"5e00a87b-b5de-4d96-af4a-f10b836b7ef5"},{"id":"27190bfa-cabb-459e-bedc-52b73020e078","pickleStepId":"1b0ddddf-88d4-4ad1-90b3-eab44363c47b","stepDefinitionIds":["70e56510-7827-4112-b25f-2ec8581dc0c8"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"value":"\"hello\"","start":11,"children":[{"value":"hello","start":12,"children":[{"children":[]}]},{"children":[{"children":[]}]}]},"parameterTypeName":"string"}]}]}]}} -{"testCase":{"id":"8e7d23fc-ccdd-4d62-adae-2132c9998dca","pickleId":"f93c09ec-a0aa-46dd-8142-870fdfc267cb","testSteps":[{"id":"c6b10d5b-1b0f-4af1-aef7-33c2495ba973","hookId":"5e00a87b-b5de-4d96-af4a-f10b836b7ef5"},{"id":"d072fbd5-3174-44c8-9cbe-bc02aabf72d8","pickleStepId":"c0a05e09-7e87-4217-885a-5d40d1b58ea9","stepDefinitionIds":["18618643-6326-471b-b159-4b705f81682d"],"stepMatchArgumentsLists":[{"stepMatchArguments":[]}]}]}} -{"testCase":{"id":"3078fd36-6d39-4d9d-8df4-85e28af7189c","pickleId":"9442362c-6dc6-4dfd-a13d-ceb44bb12910","testSteps":[{"id":"a90dd5d3-bdaa-440c-96f0-40aa3811c492","hookId":"5e00a87b-b5de-4d96-af4a-f10b836b7ef5"},{"id":"b757718e-b242-4938-9343-494f50542484","pickleStepId":"ccc1ad8d-db79-4f84-99ec-d43ff081e9a7","stepDefinitionIds":["ac756f0c-66b9-47c4-921b-8cc722f0edf7"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"value":"10","start":14,"children":[]},"parameterTypeName":"int"},{"group":{"value":"\"text/plain\"","start":38,"children":[{"value":"text/plain","start":39,"children":[{"children":[]}]},{"children":[{"children":[]}]}]},"parameterTypeName":"string"}]}]}]}} -{"testCase":{"id":"09cabae4-dd66-4bc7-8788-feed22bfc0d7","pickleId":"fbdb2be2-9ed6-409f-b75d-b5ab93e67096","testSteps":[{"id":"a9d43a5a-1074-4a5c-a99f-a69e0e5d2682","hookId":"5e00a87b-b5de-4d96-af4a-f10b836b7ef5"},{"id":"0e778399-3571-4a3a-826a-d8374426cbdb","pickleStepId":"2e102f69-cba7-4cfb-b60d-f499c6c64d8a","stepDefinitionIds":["44779f27-f1c1-4ec9-98b5-19bf5b70ebfd"],"stepMatchArgumentsLists":[{"stepMatchArguments":[]}]}]}} -{"testCase":{"id":"0a8a4bb1-582f-4178-8e6e-746b56047b0c","pickleId":"269b39e6-0050-4379-8820-b4f2e33c3271","testSteps":[{"id":"81b8a563-7cf8-4c82-8591-5a268e30280d","hookId":"5e00a87b-b5de-4d96-af4a-f10b836b7ef5"},{"id":"d9d19b2a-3e60-434f-99b4-eea822e1c804","pickleStepId":"c077675c-9091-4b9b-98af-7d314327f94a","stepDefinitionIds":["8b6163a5-dc0e-4c1d-bdff-095cc9700253"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"value":"cucumber.png","start":4,"children":[]},"parameterTypeName":"word"}]}]}]}} -{"testCaseStarted":{"attempt":0,"testCaseId":"59faaedb-88d2-4bd4-851a-b1f0fdfa88c5","id":"9cc41af7-01b4-4c03-bae9-b390885d7182","timestamp":{"seconds":1623962934,"nanos":82000000}}} -{"testStepStarted":{"testCaseStartedId":"9cc41af7-01b4-4c03-bae9-b390885d7182","testStepId":"d4ab46ee-cb3b-4956-bd83-e4b135e7c5ce","timestamp":{"seconds":1623962934,"nanos":83000000}}} -{"testStepFinished":{"testCaseStartedId":"9cc41af7-01b4-4c03-bae9-b390885d7182","testStepId":"d4ab46ee-cb3b-4956-bd83-e4b135e7c5ce","testStepResult":{"duration":{"seconds":0,"nanos":731000},"status":"PASSED","willBeRetried":false},"timestamp":{"seconds":1623962934,"nanos":85000000}}} -{"testStepStarted":{"testCaseStartedId":"9cc41af7-01b4-4c03-bae9-b390885d7182","testStepId":"7af303ab-6a66-47ae-a753-375b652c30be","timestamp":{"seconds":1623962934,"nanos":85000000}}} -{"attachment":{"testStepId":"7af303ab-6a66-47ae-a753-375b652c30be","testCaseStartedId":"9cc41af7-01b4-4c03-bae9-b390885d7182","mediaType":"application/octet-stream","body":"hello","contentEncoding":"IDENTITY"}} -{"testStepFinished":{"testCaseStartedId":"9cc41af7-01b4-4c03-bae9-b390885d7182","testStepId":"7af303ab-6a66-47ae-a753-375b652c30be","testStepResult":{"duration":{"seconds":0,"nanos":1055200},"status":"PASSED","willBeRetried":false},"timestamp":{"seconds":1623962934,"nanos":87000000}}} -{"testCaseFinished":{"testCaseStartedId":"9cc41af7-01b4-4c03-bae9-b390885d7182","timestamp":{"seconds":1623962934,"nanos":87000000}}} -{"testCaseStarted":{"attempt":0,"testCaseId":"6d4578fa-8185-470c-a7b2-637c7732c7fc","id":"0321d88b-ab80-48c7-be65-dcf82361cc02","timestamp":{"seconds":1623962934,"nanos":88000000}}} -{"testStepStarted":{"testCaseStartedId":"0321d88b-ab80-48c7-be65-dcf82361cc02","testStepId":"25075740-f1ab-41a5-8890-82d65c458324","timestamp":{"seconds":1623962934,"nanos":89000000}}} -{"testStepFinished":{"testCaseStartedId":"0321d88b-ab80-48c7-be65-dcf82361cc02","testStepId":"25075740-f1ab-41a5-8890-82d65c458324","testStepResult":{"duration":{"seconds":0,"nanos":21300},"status":"PASSED","willBeRetried":false},"timestamp":{"seconds":1623962934,"nanos":89000000}}} -{"testStepStarted":{"testCaseStartedId":"0321d88b-ab80-48c7-be65-dcf82361cc02","testStepId":"0ab2871c-266d-4540-ace5-d14b5751d867","timestamp":{"seconds":1623962934,"nanos":90000000}}} -{"attachment":{"testStepId":"0ab2871c-266d-4540-ace5-d14b5751d867","testCaseStartedId":"0321d88b-ab80-48c7-be65-dcf82361cc02","mediaType":"application/json","body":"{\"message\": \"The big question\", \"foo\": \"bar\"}","contentEncoding":"IDENTITY"}} -{"testStepFinished":{"testCaseStartedId":"0321d88b-ab80-48c7-be65-dcf82361cc02","testStepId":"0ab2871c-266d-4540-ace5-d14b5751d867","testStepResult":{"duration":{"seconds":0,"nanos":606199},"status":"PASSED","willBeRetried":false},"timestamp":{"seconds":1623962934,"nanos":91000000}}} -{"testCaseFinished":{"testCaseStartedId":"0321d88b-ab80-48c7-be65-dcf82361cc02","timestamp":{"seconds":1623962934,"nanos":92000000}}} -{"testCaseStarted":{"attempt":0,"testCaseId":"7ee3dfd1-36e1-4f08-91c9-0fff76384cc7","id":"101d84d5-2e19-402c-a6ce-64af174b2aa6","timestamp":{"seconds":1623962934,"nanos":92000000}}} -{"testStepStarted":{"testCaseStartedId":"101d84d5-2e19-402c-a6ce-64af174b2aa6","testStepId":"cf576ad4-e7f8-4ec3-9282-fb65c302a670","timestamp":{"seconds":1623962934,"nanos":93000000}}} -{"testStepFinished":{"testCaseStartedId":"101d84d5-2e19-402c-a6ce-64af174b2aa6","testStepId":"cf576ad4-e7f8-4ec3-9282-fb65c302a670","testStepResult":{"duration":{"seconds":0,"nanos":21799},"status":"PASSED","willBeRetried":false},"timestamp":{"seconds":1623962934,"nanos":93000000}}} -{"testStepStarted":{"testCaseStartedId":"101d84d5-2e19-402c-a6ce-64af174b2aa6","testStepId":"27190bfa-cabb-459e-bedc-52b73020e078","timestamp":{"seconds":1623962934,"nanos":94000000}}} -{"attachment":{"testStepId":"27190bfa-cabb-459e-bedc-52b73020e078","testCaseStartedId":"101d84d5-2e19-402c-a6ce-64af174b2aa6","mediaType":"text/x.cucumber.log+plain","body":"hello","contentEncoding":"IDENTITY"}} -{"testStepFinished":{"testCaseStartedId":"101d84d5-2e19-402c-a6ce-64af174b2aa6","testStepId":"27190bfa-cabb-459e-bedc-52b73020e078","testStepResult":{"duration":{"seconds":0,"nanos":653499},"status":"PASSED","willBeRetried":false},"timestamp":{"seconds":1623962934,"nanos":95000000}}} -{"testCaseFinished":{"testCaseStartedId":"101d84d5-2e19-402c-a6ce-64af174b2aa6","timestamp":{"seconds":1623962934,"nanos":96000000}}} -{"testCaseStarted":{"attempt":0,"testCaseId":"8e7d23fc-ccdd-4d62-adae-2132c9998dca","id":"422c8c22-f595-4a40-9289-7927f6ae08c3","timestamp":{"seconds":1623962934,"nanos":96000000}}} -{"testStepStarted":{"testCaseStartedId":"422c8c22-f595-4a40-9289-7927f6ae08c3","testStepId":"c6b10d5b-1b0f-4af1-aef7-33c2495ba973","timestamp":{"seconds":1623962934,"nanos":97000000}}} -{"testStepFinished":{"testCaseStartedId":"422c8c22-f595-4a40-9289-7927f6ae08c3","testStepId":"c6b10d5b-1b0f-4af1-aef7-33c2495ba973","testStepResult":{"duration":{"seconds":0,"nanos":19100},"status":"PASSED","willBeRetried":false},"timestamp":{"seconds":1623962934,"nanos":98000000}}} -{"testStepStarted":{"testCaseStartedId":"422c8c22-f595-4a40-9289-7927f6ae08c3","testStepId":"d072fbd5-3174-44c8-9cbe-bc02aabf72d8","timestamp":{"seconds":1623962934,"nanos":98000000}}} -{"attachment":{"testStepId":"d072fbd5-3174-44c8-9cbe-bc02aabf72d8","testCaseStartedId":"422c8c22-f595-4a40-9289-7927f6ae08c3","mediaType":"text/x.cucumber.log+plain","body":"This displays a \u001b[31mr\u001b[0m\u001b[91ma\u001b[0m\u001b[33mi\u001b[0m\u001b[32mn\u001b[0m\u001b[34mb\u001b[0m\u001b[95mo\u001b[0m\u001b[35mw\u001b[0m","contentEncoding":"IDENTITY"}} -{"testStepFinished":{"testCaseStartedId":"422c8c22-f595-4a40-9289-7927f6ae08c3","testStepId":"d072fbd5-3174-44c8-9cbe-bc02aabf72d8","testStepResult":{"duration":{"seconds":0,"nanos":645500},"status":"PASSED","willBeRetried":false},"timestamp":{"seconds":1623962934,"nanos":99000000}}} -{"testCaseFinished":{"testCaseStartedId":"422c8c22-f595-4a40-9289-7927f6ae08c3","timestamp":{"seconds":1623962934,"nanos":100000000}}} -{"testCaseStarted":{"attempt":0,"testCaseId":"3078fd36-6d39-4d9d-8df4-85e28af7189c","id":"ee70bd9a-3d19-4e3f-9a2c-6f8b2f78ee55","timestamp":{"seconds":1623962934,"nanos":101000000}}} -{"testStepStarted":{"testCaseStartedId":"ee70bd9a-3d19-4e3f-9a2c-6f8b2f78ee55","testStepId":"a90dd5d3-bdaa-440c-96f0-40aa3811c492","timestamp":{"seconds":1623962934,"nanos":101000000}}} -{"testStepFinished":{"testCaseStartedId":"ee70bd9a-3d19-4e3f-9a2c-6f8b2f78ee55","testStepId":"a90dd5d3-bdaa-440c-96f0-40aa3811c492","testStepResult":{"duration":{"seconds":0,"nanos":55999},"status":"PASSED","willBeRetried":false},"timestamp":{"seconds":1623962934,"nanos":102000000}}} -{"testStepStarted":{"testCaseStartedId":"ee70bd9a-3d19-4e3f-9a2c-6f8b2f78ee55","testStepId":"b757718e-b242-4938-9343-494f50542484","timestamp":{"seconds":1623962934,"nanos":102000000}}} -{"attachment":{"testStepId":"b757718e-b242-4938-9343-494f50542484","testCaseStartedId":"ee70bd9a-3d19-4e3f-9a2c-6f8b2f78ee55","mediaType":"text/plain","body":"AAECAwQFBgcICQ==","contentEncoding":"BASE64"}} -{"testStepFinished":{"testCaseStartedId":"ee70bd9a-3d19-4e3f-9a2c-6f8b2f78ee55","testStepId":"b757718e-b242-4938-9343-494f50542484","testStepResult":{"duration":{"seconds":0,"nanos":1108300},"status":"PASSED","willBeRetried":false},"timestamp":{"seconds":1623962934,"nanos":104000000}}} -{"testCaseFinished":{"testCaseStartedId":"ee70bd9a-3d19-4e3f-9a2c-6f8b2f78ee55","timestamp":{"seconds":1623962934,"nanos":105000000}}} -{"testCaseStarted":{"attempt":0,"testCaseId":"09cabae4-dd66-4bc7-8788-feed22bfc0d7","id":"fcb8f362-d003-4341-98ec-8faa5434c43f","timestamp":{"seconds":1623962934,"nanos":105000000}}} -{"testStepStarted":{"testCaseStartedId":"fcb8f362-d003-4341-98ec-8faa5434c43f","testStepId":"a9d43a5a-1074-4a5c-a99f-a69e0e5d2682","timestamp":{"seconds":1623962934,"nanos":106000000}}} -{"testStepFinished":{"testCaseStartedId":"fcb8f362-d003-4341-98ec-8faa5434c43f","testStepId":"a9d43a5a-1074-4a5c-a99f-a69e0e5d2682","testStepResult":{"duration":{"seconds":0,"nanos":23900},"status":"PASSED","willBeRetried":false},"timestamp":{"seconds":1623962934,"nanos":107000000}}} -{"testStepStarted":{"testCaseStartedId":"fcb8f362-d003-4341-98ec-8faa5434c43f","testStepId":"0e778399-3571-4a3a-826a-d8374426cbdb","timestamp":{"seconds":1623962934,"nanos":107000000}}} -{"attachment":{"testStepId":"0e778399-3571-4a3a-826a-d8374426cbdb","testCaseStartedId":"fcb8f362-d003-4341-98ec-8faa5434c43f","mediaType":"image/png","body":"iVBORw0KGgoAAAANSUhEUgAAACkAAAAuCAYAAAC1ZTBOAAAABmJLR0QA/wD/AP+gvaeTAAAGgElEQVRYw81ZeWwUVRgfNF4xalDo7Oy92yYmEkm0nZ22olYtM7Pbbu8t24Ntl960Eo0HRCsW5BCIRLyDQK0pFqt/iCdVPIISQvEIVSxg4h8mEhPEqNE/jNLn972dmd1Ztruz3W11kpftdue995vv+H2/7w3DzPBatChwKcvLd7GCvJn1SG+YPNIp+PwFxm8wzrO89CPrEY/A36/keKRuc4F8PTNX18IC700AaAg2/x0GSXN8B8AfNuf7F8wKuBxBXgybHIzdlKvxE2v/MmLf00Kc77QT16ddxH2sh346320nzn1hYtvcSMyhKsIukWPB/sny4iZ2sXhlVsBZiwJXmHh5Gyz8N25gKvES29ogcX3USXJP9RkfE73EMRgiXF1FLNjTbKEoZATwuqJyC+uRj1FwhTKxPrKM5H7Zkx64+HGyjzj2honJV64ChYcX7565e3npDAVY6Seu9zoyAxc33F+tJNZ766JW5eX+9JKjSMpjBfEnnGxpq6ELZhNg7LBta9SAmjzyA4YAssViDkz4ngLsqSW5J3pnDaAGdEeTCvSfHGGpmBokL+3HCebmSpL7zewDVId1Tb0K9NxC3meaHqBHbqNmLy2jVDJXAOkAj3HBCsXt0lBCgAtuqbiKFaSzeJMD+M1Q8E8CrewKEfvzy0nu1xda3THcQiz3B4hjqMXQeq6xDgIYEOhUDi8WJ3Cz3E/jsL3auIse0lwUmXcy+ptzf5uu2jjfakvX7W/rAObleS+DJziHP7oOtBsGyVX79UBGV2i/mcNVut+wKhmy5mddqjXPI8tEOdEjVtFkgfKVVrCvrtcBQdeq1YUtjKnZ8DdubnRdS1cNnQfCZEtMwkij9GlfWJ4eIUNymcSyaC2vr4hY41CnDjyW0XTWdQy3qnNPqBjnwZezaGL3eHfScmZ/uplYVtUS26YG4j4Sudf9cSfh/OU6kFg6FZcRy31g3cn0q5GpKCJIuGKfI1JdMO2r/MmfbqRVL7tA1WiWh8y2P9VM7M9GPWF7vIE4Xw3PmJLMzZGYhixvYkyCWEefuK826SQM/EQa0fFiaHbIXYl3KJUDAFLqxS/W9cGUZIuJobpRq7e3ezNXRomMsl0tlfIwZvajNGmeaDJMuLYNDcRyT4Bymn13iGZz1kEqnoPqcwAzeyMFCTE1p2UwVYYPKuHFS+8zgHQ1pYmtjcYy72g3LXOYNOgSfGL38eRSzvVhJ00q9Jb9mWbi/iS1qne8pOXAQQY7ORqT0KsknQg0YtvYQNhiWZ888D0ZdbkhXjFudXOA3DExkslApDvqbl56naFtqYGa7Xi5NWF2ozU1QN8m3hStnpAZdk3PDNZ1QTVxtjP2JWXzUXWY7vTpBEJKCoIst22JhggmECf5aLWhAgOUFH0ARZOisFUJWgM5OH09x45AKY3dalk8TQXC2PR9DFoJVQ9XX0ksvXW0ZdWIG8NA2zhiHbNSf81Qhdyfr1TKZRdt5hAAVq1pKxH8n73DF5lfKN2sCoytNHlgs7SzcCSckNy5Cq0bJOaW6qReih9oAGXur0x+/iUUJCeI+bROgrvS7WkukGtvRnQjWlAH/rUVxqvNeiUeeXFE38Ly0hc0EXaG0lJBuuoDca0mD7pVp4QGgobVvqqscgSpVq/MBaky0t/4DJc5umC0ySe2J6MFwX24i5hujVJPrPhIGj5DWoKe0Vwdc6FkG6ec+WDAsDUxGdBKtM+JSwRU+bbHgoZ7HJzPVflVK65N3C0W+W6EG/5CejHajGW1Xj+n8enP1wreq5P03eIaVS8abZ6ycuwyDvFd4lWPXFalOB4YuAhu3EtvBq7CujvrICej5A1ePMoEAhcbO8UVpA/Uoz7n6Oy6HoldcfMfJsF7g+FDK2dJyeUAdJ9WAqGZck9k/+AK67cqpGmrMINrHqiQdXiQRK0ql0V4NEuHWFQPRJX+howOUznP0gJY5LhG2kC2qFJcY+1pd4Kai4FTtd5ckHaiQTI/lwZihX4oDAtO6qoMJJe5o4bkGjzDxJChvZK2BkixrACMy35Q82Ug6/fQfl3ZTO3DkwoHOPzHU2PtGDo11WThAqqg5J8CJCp32qJGj15+4Hjxtjl7r5MMJNZvZIWY1yNTMHbPzy+9hpnLKx4k9jSYteaOav2hlUc6nPHrkExBojvNTZXxLcIU9s0Qv6XMf3mpIHWDFydQxcD7GRfzf7hQ90GzdAheqeyAzxC+oMr2Hv8Cf7uNwHUHEgMAAAAASUVORK5CYII=","contentEncoding":"BASE64"}} -{"testStepFinished":{"testCaseStartedId":"fcb8f362-d003-4341-98ec-8faa5434c43f","testStepId":"0e778399-3571-4a3a-826a-d8374426cbdb","testStepResult":{"duration":{"seconds":0,"nanos":4746199},"status":"PASSED","willBeRetried":false},"timestamp":{"seconds":1623962934,"nanos":113000000}}} -{"testCaseFinished":{"testCaseStartedId":"fcb8f362-d003-4341-98ec-8faa5434c43f","timestamp":{"seconds":1623962934,"nanos":113000000}}} -{"testCaseStarted":{"attempt":0,"testCaseId":"0a8a4bb1-582f-4178-8e6e-746b56047b0c","id":"d2e9104d-20ff-4f36-81d8-fdabb04b7e91","timestamp":{"seconds":1623962934,"nanos":114000000}}} -{"testStepStarted":{"testCaseStartedId":"d2e9104d-20ff-4f36-81d8-fdabb04b7e91","testStepId":"81b8a563-7cf8-4c82-8591-5a268e30280d","timestamp":{"seconds":1623962934,"nanos":114000000}}} -{"testStepFinished":{"testCaseStartedId":"d2e9104d-20ff-4f36-81d8-fdabb04b7e91","testStepId":"81b8a563-7cf8-4c82-8591-5a268e30280d","testStepResult":{"duration":{"seconds":0,"nanos":19499},"status":"PASSED","willBeRetried":false},"timestamp":{"seconds":1623962934,"nanos":115000000}}} -{"testStepStarted":{"testCaseStartedId":"d2e9104d-20ff-4f36-81d8-fdabb04b7e91","testStepId":"d9d19b2a-3e60-434f-99b4-eea822e1c804","timestamp":{"seconds":1623962934,"nanos":116000000}}} -{"attachment":{"testStepId":"d9d19b2a-3e60-434f-99b4-eea822e1c804","testCaseStartedId":"d2e9104d-20ff-4f36-81d8-fdabb04b7e91","mediaType":"image/png","body":"iVBORw0KGgoAAAANSUhEUgAAACkAAAAuCAYAAAC1ZTBOAAAABmJLR0QA/wD/AP+gvaeTAAAGgElEQVRYw81ZeWwUVRgfNF4xalDo7Oy92yYmEkm0nZ22olYtM7Pbbu8t24Ntl960Eo0HRCsW5BCIRLyDQK0pFqt/iCdVPIISQvEIVSxg4h8mEhPEqNE/jNLn972dmd1Ztruz3W11kpftdue995vv+H2/7w3DzPBatChwKcvLd7GCvJn1SG+YPNIp+PwFxm8wzrO89CPrEY/A36/keKRuc4F8PTNX18IC700AaAg2/x0GSXN8B8AfNuf7F8wKuBxBXgybHIzdlKvxE2v/MmLf00Kc77QT16ddxH2sh346320nzn1hYtvcSMyhKsIukWPB/sny4iZ2sXhlVsBZiwJXmHh5Gyz8N25gKvES29ogcX3USXJP9RkfE73EMRgiXF1FLNjTbKEoZATwuqJyC+uRj1FwhTKxPrKM5H7Zkx64+HGyjzj2honJV64ChYcX7565e3npDAVY6Seu9zoyAxc33F+tJNZ766JW5eX+9JKjSMpjBfEnnGxpq6ELZhNg7LBta9SAmjzyA4YAssViDkz4ngLsqSW5J3pnDaAGdEeTCvSfHGGpmBokL+3HCebmSpL7zewDVId1Tb0K9NxC3meaHqBHbqNmLy2jVDJXAOkAj3HBCsXt0lBCgAtuqbiKFaSzeJMD+M1Q8E8CrewKEfvzy0nu1xda3THcQiz3B4hjqMXQeq6xDgIYEOhUDi8WJ3Cz3E/jsL3auIse0lwUmXcy+ptzf5uu2jjfakvX7W/rAObleS+DJziHP7oOtBsGyVX79UBGV2i/mcNVut+wKhmy5mddqjXPI8tEOdEjVtFkgfKVVrCvrtcBQdeq1YUtjKnZ8DdubnRdS1cNnQfCZEtMwkij9GlfWJ4eIUNymcSyaC2vr4hY41CnDjyW0XTWdQy3qnNPqBjnwZezaGL3eHfScmZ/uplYVtUS26YG4j4Sudf9cSfh/OU6kFg6FZcRy31g3cn0q5GpKCJIuGKfI1JdMO2r/MmfbqRVL7tA1WiWh8y2P9VM7M9GPWF7vIE4Xw3PmJLMzZGYhixvYkyCWEefuK826SQM/EQa0fFiaHbIXYl3KJUDAFLqxS/W9cGUZIuJobpRq7e3ezNXRomMsl0tlfIwZvajNGmeaDJMuLYNDcRyT4Bymn13iGZz1kEqnoPqcwAzeyMFCTE1p2UwVYYPKuHFS+8zgHQ1pYmtjcYy72g3LXOYNOgSfGL38eRSzvVhJ00q9Jb9mWbi/iS1qne8pOXAQQY7ORqT0KsknQg0YtvYQNhiWZ888D0ZdbkhXjFudXOA3DExkslApDvqbl56naFtqYGa7Xi5NWF2ozU1QN8m3hStnpAZdk3PDNZ1QTVxtjP2JWXzUXWY7vTpBEJKCoIst22JhggmECf5aLWhAgOUFH0ARZOisFUJWgM5OH09x45AKY3dalk8TQXC2PR9DFoJVQ9XX0ksvXW0ZdWIG8NA2zhiHbNSf81Qhdyfr1TKZRdt5hAAVq1pKxH8n73DF5lfKN2sCoytNHlgs7SzcCSckNy5Cq0bJOaW6qReih9oAGXur0x+/iUUJCeI+bROgrvS7WkukGtvRnQjWlAH/rUVxqvNeiUeeXFE38Ly0hc0EXaG0lJBuuoDca0mD7pVp4QGgobVvqqscgSpVq/MBaky0t/4DJc5umC0ySe2J6MFwX24i5hujVJPrPhIGj5DWoKe0Vwdc6FkG6ec+WDAsDUxGdBKtM+JSwRU+bbHgoZ7HJzPVflVK65N3C0W+W6EG/5CejHajGW1Xj+n8enP1wreq5P03eIaVS8abZ6ycuwyDvFd4lWPXFalOB4YuAhu3EtvBq7CujvrICej5A1ePMoEAhcbO8UVpA/Uoz7n6Oy6HoldcfMfJsF7g+FDK2dJyeUAdJ9WAqGZck9k/+AK67cqpGmrMINrHqiQdXiQRK0ql0V4NEuHWFQPRJX+howOUznP0gJY5LhG2kC2qFJcY+1pd4Kai4FTtd5ckHaiQTI/lwZihX4oDAtO6qoMJJe5o4bkGjzDxJChvZK2BkixrACMy35Q82Ug6/fQfl3ZTO3DkwoHOPzHU2PtGDo11WThAqqg5J8CJCp32qJGj15+4Hjxtjl7r5MMJNZvZIWY1yNTMHbPzy+9hpnLKx4k9jSYteaOav2hlUc6nPHrkExBojvNTZXxLcIU9s0Qv6XMf3mpIHWDFydQxcD7GRfzf7hQ90GzdAheqeyAzxC+oMr2Hv8Cf7uNwHUHEgMAAAAASUVORK5CYII=","contentEncoding":"BASE64"}} -{"testStepFinished":{"testCaseStartedId":"d2e9104d-20ff-4f36-81d8-fdabb04b7e91","testStepId":"d9d19b2a-3e60-434f-99b4-eea822e1c804","testStepResult":{"duration":{"seconds":0,"nanos":2641400},"status":"PASSED","willBeRetried":false},"timestamp":{"seconds":1623962934,"nanos":119000000}}} -{"testCaseFinished":{"testCaseStartedId":"d2e9104d-20ff-4f36-81d8-fdabb04b7e91","timestamp":{"seconds":1623962934,"nanos":120000000}}} -{"testRunFinished":{"timestamp":{"seconds":1623962934,"nanos":120000000},"success":true}} +{"gherkinDocument":{"feature":{"tags":[],"location":{"line":1,"column":1},"language":"en","keyword":"Feature","name":"Attachments","description":" It is sometimes useful to take a screenshot while a scenario runs.\n Or capture some logs.\n\n Cucumber lets you `attach` arbitrary files during execution, and you can\n specify a content type for the contents.\n\n Formatters can then render these attachments in reports.\n\n Attachments must have a body and a content type","children":[{"scenario":{"id":"f2e2df5d-9cb7-40b0-bbf5-61237cbd2586","tags":[],"location":{"line":12,"column":3},"keyword":"Scenario","name":"Strings can be attached with a media type","description":" Beware that some formatters such as @cucumber/react use the media type\n to determine how to display an attachment.","steps":[{"id":"8bc5695e-7a05-4174-973e-a2fe1d240e31","location":{"line":16,"column":5},"keyword":"When ","text":"the string \"hello\" is attached as \"application/octet-stream\""}],"examples":[]}},{"scenario":{"id":"92e55f9e-866d-427f-b173-41ed5067e5a5","tags":[],"location":{"line":18,"column":3},"keyword":"Scenario","name":"Log JSON","description":"","steps":[{"id":"f18f3b61-9b0a-4fbd-90fe-5e0931d972b2","location":{"line":19,"column":6},"keyword":"When ","text":"the following string is attached as \"application/json\":","docString":{"location":{"line":20,"column":8},"content":"{\"message\": \"The big question\", \"foo\": \"bar\"}","delimiter":"```"}}],"examples":[]}},{"scenario":{"id":"b355d6bb-5143-48f6-b71c-bb1bf4f5b96f","tags":[],"location":{"line":24,"column":3},"keyword":"Scenario","name":"Log text","description":"","steps":[{"id":"5b08998f-320a-4784-8301-a8b0380672f3","location":{"line":25,"column":5},"keyword":"When ","text":"the string \"hello\" is logged"}],"examples":[]}},{"scenario":{"id":"a5f47082-0235-41e1-b7a9-c42b2f53a4ee","tags":[],"location":{"line":27,"column":3},"keyword":"Scenario","name":"Log ANSI coloured text","description":"","steps":[{"id":"6e1f7280-7715-471a-95c5-6a2499d8d9b5","location":{"line":28,"column":6},"keyword":"When ","text":"text with ANSI escapes is logged"}],"examples":[]}},{"scenario":{"id":"6b53d4a8-22ee-4fc7-afdb-f4761275da94","tags":[],"location":{"line":30,"column":3},"keyword":"Scenario","name":"Byte arrays are base64-encoded regardless of media type","description":"","steps":[{"id":"ec0bbca1-05c8-4686-a879-a1dd824646c3","location":{"line":31,"column":5},"keyword":"When ","text":"an array with 10 bytes is attached as \"text/plain\""}],"examples":[]}},{"scenario":{"id":"903ec331-5c3b-487b-a044-707d4cfa4430","tags":[],"location":{"line":33,"column":3},"keyword":"Scenario","name":"Streams are always base64-encoded","description":"","steps":[{"id":"9c32ecf3-7abc-4510-95f6-9558c781dbd6","location":{"line":34,"column":5},"keyword":"When ","text":"a JPEG image is attached"}],"examples":[]}},{"scenario":{"id":"3c153342-8407-4c72-833b-20353f74ada1","tags":[],"location":{"line":36,"column":3},"keyword":"Scenario","name":"Attaching images in examples","description":"","steps":[{"id":"93dbd8d6-5e2a-44c8-bbe0-c000cd4faf22","location":{"line":37,"column":5},"keyword":"When ","text":"the png is attached"}],"examples":[{"id":"3d44affc-2664-49cf-a3be-175353f67b42","tags":[],"location":{"line":39,"column":5},"keyword":"Examples","name":"","description":"","tableHeader":{"id":"8f557851-ba46-4260-8ca0-cbf8cb53b76f","location":{"line":40,"column":7},"cells":[{"location":{"line":40,"column":9},"value":"image"}]},"tableBody":[{"id":"8d6a1e51-381a-442a-8c74-00497d583c4e","location":{"line":41,"column":7},"cells":[{"location":{"line":41,"column":9},"value":"cucumber.png"}]}]}]}}]},"comments":[],"uri":"features/attachments/attachments.feature"}} +{"pickle":{"id":"b4235645-c8aa-45fa-988c-53e6f418cf7b","uri":"features/attachments/attachments.feature","astNodeIds":["f2e2df5d-9cb7-40b0-bbf5-61237cbd2586"],"tags":[],"name":"Strings can be attached with a media type","language":"en","steps":[{"id":"4fda54ce-6dfc-4414-9ca7-194f2cab5f41","text":"the string \"hello\" is attached as \"application/octet-stream\"","astNodeIds":["8bc5695e-7a05-4174-973e-a2fe1d240e31"]}]}} +{"pickle":{"id":"877a7c65-9b9b-46e4-aa59-27f26c8d720c","uri":"features/attachments/attachments.feature","astNodeIds":["92e55f9e-866d-427f-b173-41ed5067e5a5"],"tags":[],"name":"Log JSON","language":"en","steps":[{"id":"bf26469a-a47d-4d26-a756-d3514cfd01ff","text":"the following string is attached as \"application/json\":","argument":{"docString":{"content":"{\"message\": \"The big question\", \"foo\": \"bar\"}"}},"astNodeIds":["f18f3b61-9b0a-4fbd-90fe-5e0931d972b2"]}]}} +{"pickle":{"id":"ad776c85-b236-4441-95dd-ffd574baa4b2","uri":"features/attachments/attachments.feature","astNodeIds":["b355d6bb-5143-48f6-b71c-bb1bf4f5b96f"],"tags":[],"name":"Log text","language":"en","steps":[{"id":"bfcbcbbc-30d7-4f94-a53d-3a5cbcf2002f","text":"the string \"hello\" is logged","astNodeIds":["5b08998f-320a-4784-8301-a8b0380672f3"]}]}} +{"pickle":{"id":"96e7d431-a68c-41ff-bca1-3e7b8ff0314b","uri":"features/attachments/attachments.feature","astNodeIds":["a5f47082-0235-41e1-b7a9-c42b2f53a4ee"],"tags":[],"name":"Log ANSI coloured text","language":"en","steps":[{"id":"9aa11a1d-165c-489a-a578-bac18d8988f5","text":"text with ANSI escapes is logged","astNodeIds":["6e1f7280-7715-471a-95c5-6a2499d8d9b5"]}]}} +{"pickle":{"id":"873b7374-04d4-4aff-8e24-f7be94ff093a","uri":"features/attachments/attachments.feature","astNodeIds":["6b53d4a8-22ee-4fc7-afdb-f4761275da94"],"tags":[],"name":"Byte arrays are base64-encoded regardless of media type","language":"en","steps":[{"id":"c17db877-611e-48d7-8aad-d9c163d17a55","text":"an array with 10 bytes is attached as \"text/plain\"","astNodeIds":["ec0bbca1-05c8-4686-a879-a1dd824646c3"]}]}} +{"pickle":{"id":"c70f9f19-4ce7-4567-858f-92d11e630cb5","uri":"features/attachments/attachments.feature","astNodeIds":["903ec331-5c3b-487b-a044-707d4cfa4430"],"tags":[],"name":"Streams are always base64-encoded","language":"en","steps":[{"id":"98a6d4bd-9343-4c42-8266-4ec32cb253ab","text":"a JPEG image is attached","astNodeIds":["9c32ecf3-7abc-4510-95f6-9558c781dbd6"]}]}} +{"pickle":{"id":"d27afb63-991d-41b8-94fc-77692d2281e0","uri":"features/attachments/attachments.feature","astNodeIds":["3c153342-8407-4c72-833b-20353f74ada1","8d6a1e51-381a-442a-8c74-00497d583c4e"],"name":"Attaching images in examples","language":"en","steps":[{"id":"9fffb1aa-f442-4fbc-a311-e50bdd4630f2","text":"the cucumber.png png is attached","astNodeIds":["93dbd8d6-5e2a-44c8-bbe0-c000cd4faf22","8d6a1e51-381a-442a-8c74-00497d583c4e"]}],"tags":[]}} +{"stepDefinition":{"id":"98b14039-51f6-478a-b4d8-6a254f18ba34","pattern":{"type":"CUCUMBER_EXPRESSION","source":"the string {string} is attached as {string}"},"sourceReference":{"uri":"features/attachments/attachments.feature.ts","location":{"line":8}}}} +{"stepDefinition":{"id":"b7277d15-00ac-4b76-a5f1-9f21d183f00d","pattern":{"type":"CUCUMBER_EXPRESSION","source":"the string {string} is logged"},"sourceReference":{"uri":"features/attachments/attachments.feature.ts","location":{"line":12}}}} +{"stepDefinition":{"id":"89f1bc00-7ae5-48dc-874b-5052b94d7b3d","pattern":{"type":"CUCUMBER_EXPRESSION","source":"text with ANSI escapes is logged"},"sourceReference":{"uri":"features/attachments/attachments.feature.ts","location":{"line":16}}}} +{"stepDefinition":{"id":"32d6cfdb-9b50-480c-b449-2045af3225b4","pattern":{"type":"CUCUMBER_EXPRESSION","source":"the following string is attached as {string}:"},"sourceReference":{"uri":"features/attachments/attachments.feature.ts","location":{"line":22}}}} +{"stepDefinition":{"id":"c54b370c-14f2-48c4-9fd5-c0f75f69a404","pattern":{"type":"CUCUMBER_EXPRESSION","source":"an array with {int} bytes is attached as {string}"},"sourceReference":{"uri":"features/attachments/attachments.feature.ts","location":{"line":26}}}} +{"stepDefinition":{"id":"cc13057f-e151-467c-8383-26da2e80faf1","pattern":{"type":"CUCUMBER_EXPRESSION","source":"a stream with {int} bytes are attached as {string}"},"sourceReference":{"uri":"features/attachments/attachments.feature.ts","location":{"line":35}}}} +{"stepDefinition":{"id":"3be499e5-6ea9-46e4-836a-476fc3b807f8","pattern":{"type":"CUCUMBER_EXPRESSION","source":"a JPEG image is attached"},"sourceReference":{"uri":"features/attachments/attachments.feature.ts","location":{"line":48}}}} +{"stepDefinition":{"id":"de4b9b39-0b59-4ced-a555-fe970c3db7c3","pattern":{"type":"CUCUMBER_EXPRESSION","source":"the {word} png is attached"},"sourceReference":{"uri":"features/attachments/attachments.feature.ts","location":{"line":52}}}} +{"hook":{"id":"651cea4c-8570-477a-be20-067c5e29723c","sourceReference":{"uri":"features/attachments/attachments.feature.ts","location":{"line":6}}}} +{"testRunStarted":{"timestamp":{"seconds":1624564792,"nanos":657000000}}} +{"testCase":{"id":"240379a1-08b1-40b8-a144-d107f644f8fa","pickleId":"b4235645-c8aa-45fa-988c-53e6f418cf7b","testSteps":[{"id":"93989e36-5d85-4759-957e-5da2cb4898d4","hookId":"651cea4c-8570-477a-be20-067c5e29723c"},{"id":"64bc950c-23a5-4bab-b738-d092e09b8df2","pickleStepId":"4fda54ce-6dfc-4414-9ca7-194f2cab5f41","stepDefinitionIds":["98b14039-51f6-478a-b4d8-6a254f18ba34"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"value":"\"hello\"","start":11,"children":[{"value":"hello","start":12,"children":[{"children":[]}]},{"children":[{"children":[]}]}]},"parameterTypeName":"string"},{"group":{"value":"\"application/octet-stream\"","start":34,"children":[{"value":"application/octet-stream","start":35,"children":[{"children":[]}]},{"children":[{"children":[]}]}]},"parameterTypeName":"string"}]}]}]}} +{"testCase":{"id":"72485472-bfe7-42fd-8170-2234f97bd16f","pickleId":"877a7c65-9b9b-46e4-aa59-27f26c8d720c","testSteps":[{"id":"39322cf4-44f7-46f3-aa28-7389d2e1ed1e","hookId":"651cea4c-8570-477a-be20-067c5e29723c"},{"id":"6b477eda-d9cf-413e-b677-7c07e1cacf2f","pickleStepId":"bf26469a-a47d-4d26-a756-d3514cfd01ff","stepDefinitionIds":["32d6cfdb-9b50-480c-b449-2045af3225b4"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"value":"\"application/json\"","start":36,"children":[{"value":"application/json","start":37,"children":[{"children":[]}]},{"children":[{"children":[]}]}]},"parameterTypeName":"string"}]}]}]}} +{"testCase":{"id":"0bf597ac-73da-462d-9cc1-6e97b07e911f","pickleId":"ad776c85-b236-4441-95dd-ffd574baa4b2","testSteps":[{"id":"ad8459b9-eba5-4d7a-be5a-05f5de6252df","hookId":"651cea4c-8570-477a-be20-067c5e29723c"},{"id":"ff75f9eb-62b7-4570-b324-f0c4d2935fa5","pickleStepId":"bfcbcbbc-30d7-4f94-a53d-3a5cbcf2002f","stepDefinitionIds":["b7277d15-00ac-4b76-a5f1-9f21d183f00d"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"value":"\"hello\"","start":11,"children":[{"value":"hello","start":12,"children":[{"children":[]}]},{"children":[{"children":[]}]}]},"parameterTypeName":"string"}]}]}]}} +{"testCase":{"id":"1d503ca0-4077-49d3-81da-9fc926701e3b","pickleId":"96e7d431-a68c-41ff-bca1-3e7b8ff0314b","testSteps":[{"id":"58631eb5-5cd7-4134-8633-543946a92586","hookId":"651cea4c-8570-477a-be20-067c5e29723c"},{"id":"218d422b-3421-4377-9512-ee50a048567b","pickleStepId":"9aa11a1d-165c-489a-a578-bac18d8988f5","stepDefinitionIds":["89f1bc00-7ae5-48dc-874b-5052b94d7b3d"],"stepMatchArgumentsLists":[{"stepMatchArguments":[]}]}]}} +{"testCase":{"id":"6f1ee2fc-de6e-4e87-87ab-ce64c930c95a","pickleId":"873b7374-04d4-4aff-8e24-f7be94ff093a","testSteps":[{"id":"a09754f9-fd95-4833-a26f-e79c1de7faf4","hookId":"651cea4c-8570-477a-be20-067c5e29723c"},{"id":"b6958014-de7c-4938-bb6d-413d336aced0","pickleStepId":"c17db877-611e-48d7-8aad-d9c163d17a55","stepDefinitionIds":["c54b370c-14f2-48c4-9fd5-c0f75f69a404"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"value":"10","start":14,"children":[]},"parameterTypeName":"int"},{"group":{"value":"\"text/plain\"","start":38,"children":[{"value":"text/plain","start":39,"children":[{"children":[]}]},{"children":[{"children":[]}]}]},"parameterTypeName":"string"}]}]}]}} +{"testCase":{"id":"1c61a8cd-901d-41ca-96f3-c13f8e141b28","pickleId":"c70f9f19-4ce7-4567-858f-92d11e630cb5","testSteps":[{"id":"dbaed71c-a128-4024-b198-8f8c9bce6302","hookId":"651cea4c-8570-477a-be20-067c5e29723c"},{"id":"b58a4190-ded7-4bbe-b206-23b9a91fc7fd","pickleStepId":"98a6d4bd-9343-4c42-8266-4ec32cb253ab","stepDefinitionIds":["3be499e5-6ea9-46e4-836a-476fc3b807f8"],"stepMatchArgumentsLists":[{"stepMatchArguments":[]}]}]}} +{"testCase":{"id":"d0275a09-04aa-4191-97d0-89f14b074dad","pickleId":"d27afb63-991d-41b8-94fc-77692d2281e0","testSteps":[{"id":"cef64275-0314-44e4-8a86-f6f620e6de07","hookId":"651cea4c-8570-477a-be20-067c5e29723c"},{"id":"ac0b82d5-efbb-4d34-975f-c7769cc2ecdd","pickleStepId":"9fffb1aa-f442-4fbc-a311-e50bdd4630f2","stepDefinitionIds":["de4b9b39-0b59-4ced-a555-fe970c3db7c3"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"value":"cucumber.png","start":4,"children":[]},"parameterTypeName":"word"}]}]}]}} +{"testCaseStarted":{"attempt":0,"testCaseId":"240379a1-08b1-40b8-a144-d107f644f8fa","id":"ed89ee89-804f-4be7-a078-34c3ec1f1280","timestamp":{"seconds":1624564792,"nanos":658000000}}} +{"testStepStarted":{"testCaseStartedId":"ed89ee89-804f-4be7-a078-34c3ec1f1280","testStepId":"93989e36-5d85-4759-957e-5da2cb4898d4","timestamp":{"seconds":1624564792,"nanos":658000000}}} +{"testStepFinished":{"testCaseStartedId":"ed89ee89-804f-4be7-a078-34c3ec1f1280","testStepId":"93989e36-5d85-4759-957e-5da2cb4898d4","testStepResult":{"duration":{"seconds":0,"nanos":141712},"status":"PASSED"},"timestamp":{"seconds":1624564792,"nanos":659000000}}} +{"testStepStarted":{"testCaseStartedId":"ed89ee89-804f-4be7-a078-34c3ec1f1280","testStepId":"64bc950c-23a5-4bab-b738-d092e09b8df2","timestamp":{"seconds":1624564792,"nanos":659000000}}} +{"attachment":{"testStepId":"64bc950c-23a5-4bab-b738-d092e09b8df2","testCaseStartedId":"ed89ee89-804f-4be7-a078-34c3ec1f1280","mediaType":"application/octet-stream","body":"hello","contentEncoding":"IDENTITY"}} +{"testStepFinished":{"testCaseStartedId":"ed89ee89-804f-4be7-a078-34c3ec1f1280","testStepId":"64bc950c-23a5-4bab-b738-d092e09b8df2","testStepResult":{"duration":{"seconds":0,"nanos":235532},"status":"PASSED"},"timestamp":{"seconds":1624564792,"nanos":659000000}}} +{"testCaseFinished":{"testCaseStartedId":"ed89ee89-804f-4be7-a078-34c3ec1f1280","timestamp":{"seconds":1624564792,"nanos":659000000},"willBeRetried":false}} +{"testCaseStarted":{"attempt":0,"testCaseId":"72485472-bfe7-42fd-8170-2234f97bd16f","id":"8e715af3-c40f-4921-8af4-e8085b725ac0","timestamp":{"seconds":1624564792,"nanos":659000000}}} +{"testStepStarted":{"testCaseStartedId":"8e715af3-c40f-4921-8af4-e8085b725ac0","testStepId":"39322cf4-44f7-46f3-aa28-7389d2e1ed1e","timestamp":{"seconds":1624564792,"nanos":659000000}}} +{"testStepFinished":{"testCaseStartedId":"8e715af3-c40f-4921-8af4-e8085b725ac0","testStepId":"39322cf4-44f7-46f3-aa28-7389d2e1ed1e","testStepResult":{"duration":{"seconds":0,"nanos":8869},"status":"PASSED"},"timestamp":{"seconds":1624564792,"nanos":660000000}}} +{"testStepStarted":{"testCaseStartedId":"8e715af3-c40f-4921-8af4-e8085b725ac0","testStepId":"6b477eda-d9cf-413e-b677-7c07e1cacf2f","timestamp":{"seconds":1624564792,"nanos":660000000}}} +{"attachment":{"testStepId":"6b477eda-d9cf-413e-b677-7c07e1cacf2f","testCaseStartedId":"8e715af3-c40f-4921-8af4-e8085b725ac0","mediaType":"application/json","body":"{\"message\": \"The big question\", \"foo\": \"bar\"}","contentEncoding":"IDENTITY"}} +{"testStepFinished":{"testCaseStartedId":"8e715af3-c40f-4921-8af4-e8085b725ac0","testStepId":"6b477eda-d9cf-413e-b677-7c07e1cacf2f","testStepResult":{"duration":{"seconds":0,"nanos":59653},"status":"PASSED"},"timestamp":{"seconds":1624564792,"nanos":660000000}}} +{"testCaseFinished":{"testCaseStartedId":"8e715af3-c40f-4921-8af4-e8085b725ac0","timestamp":{"seconds":1624564792,"nanos":660000000},"willBeRetried":false}} +{"testCaseStarted":{"attempt":0,"testCaseId":"0bf597ac-73da-462d-9cc1-6e97b07e911f","id":"74c8f31d-199e-4f8a-8dbd-f8409548c53f","timestamp":{"seconds":1624564792,"nanos":660000000}}} +{"testStepStarted":{"testCaseStartedId":"74c8f31d-199e-4f8a-8dbd-f8409548c53f","testStepId":"ad8459b9-eba5-4d7a-be5a-05f5de6252df","timestamp":{"seconds":1624564792,"nanos":660000000}}} +{"testStepFinished":{"testCaseStartedId":"74c8f31d-199e-4f8a-8dbd-f8409548c53f","testStepId":"ad8459b9-eba5-4d7a-be5a-05f5de6252df","testStepResult":{"duration":{"seconds":0,"nanos":12245},"status":"PASSED"},"timestamp":{"seconds":1624564792,"nanos":660000000}}} +{"testStepStarted":{"testCaseStartedId":"74c8f31d-199e-4f8a-8dbd-f8409548c53f","testStepId":"ff75f9eb-62b7-4570-b324-f0c4d2935fa5","timestamp":{"seconds":1624564792,"nanos":660000000}}} +{"attachment":{"testStepId":"ff75f9eb-62b7-4570-b324-f0c4d2935fa5","testCaseStartedId":"74c8f31d-199e-4f8a-8dbd-f8409548c53f","mediaType":"text/x.cucumber.log+plain","body":"hello","contentEncoding":"IDENTITY"}} +{"testStepFinished":{"testCaseStartedId":"74c8f31d-199e-4f8a-8dbd-f8409548c53f","testStepId":"ff75f9eb-62b7-4570-b324-f0c4d2935fa5","testStepResult":{"duration":{"seconds":0,"nanos":82212},"status":"PASSED"},"timestamp":{"seconds":1624564792,"nanos":660000000}}} +{"testCaseFinished":{"testCaseStartedId":"74c8f31d-199e-4f8a-8dbd-f8409548c53f","timestamp":{"seconds":1624564792,"nanos":660000000},"willBeRetried":false}} +{"testCaseStarted":{"attempt":0,"testCaseId":"1d503ca0-4077-49d3-81da-9fc926701e3b","id":"d41aa053-5f52-40d3-860d-2afa3d482495","timestamp":{"seconds":1624564792,"nanos":660000000}}} +{"testStepStarted":{"testCaseStartedId":"d41aa053-5f52-40d3-860d-2afa3d482495","testStepId":"58631eb5-5cd7-4134-8633-543946a92586","timestamp":{"seconds":1624564792,"nanos":660000000}}} +{"testStepFinished":{"testCaseStartedId":"d41aa053-5f52-40d3-860d-2afa3d482495","testStepId":"58631eb5-5cd7-4134-8633-543946a92586","testStepResult":{"duration":{"seconds":0,"nanos":8800},"status":"PASSED"},"timestamp":{"seconds":1624564792,"nanos":660000000}}} +{"testStepStarted":{"testCaseStartedId":"d41aa053-5f52-40d3-860d-2afa3d482495","testStepId":"218d422b-3421-4377-9512-ee50a048567b","timestamp":{"seconds":1624564792,"nanos":660000000}}} +{"attachment":{"testStepId":"218d422b-3421-4377-9512-ee50a048567b","testCaseStartedId":"d41aa053-5f52-40d3-860d-2afa3d482495","mediaType":"text/x.cucumber.log+plain","body":"This displays a \u001b[31mr\u001b[0m\u001b[91ma\u001b[0m\u001b[33mi\u001b[0m\u001b[32mn\u001b[0m\u001b[34mb\u001b[0m\u001b[95mo\u001b[0m\u001b[35mw\u001b[0m","contentEncoding":"IDENTITY"}} +{"testStepFinished":{"testCaseStartedId":"d41aa053-5f52-40d3-860d-2afa3d482495","testStepId":"218d422b-3421-4377-9512-ee50a048567b","testStepResult":{"duration":{"seconds":0,"nanos":51467},"status":"PASSED"},"timestamp":{"seconds":1624564792,"nanos":660000000}}} +{"testCaseFinished":{"testCaseStartedId":"d41aa053-5f52-40d3-860d-2afa3d482495","timestamp":{"seconds":1624564792,"nanos":660000000},"willBeRetried":false}} +{"testCaseStarted":{"attempt":0,"testCaseId":"6f1ee2fc-de6e-4e87-87ab-ce64c930c95a","id":"0f9cab7f-fa22-4640-8820-7089074bee3a","timestamp":{"seconds":1624564792,"nanos":660000000}}} +{"testStepStarted":{"testCaseStartedId":"0f9cab7f-fa22-4640-8820-7089074bee3a","testStepId":"a09754f9-fd95-4833-a26f-e79c1de7faf4","timestamp":{"seconds":1624564792,"nanos":660000000}}} +{"testStepFinished":{"testCaseStartedId":"0f9cab7f-fa22-4640-8820-7089074bee3a","testStepId":"a09754f9-fd95-4833-a26f-e79c1de7faf4","testStepResult":{"duration":{"seconds":0,"nanos":7522},"status":"PASSED"},"timestamp":{"seconds":1624564792,"nanos":660000000}}} +{"testStepStarted":{"testCaseStartedId":"0f9cab7f-fa22-4640-8820-7089074bee3a","testStepId":"b6958014-de7c-4938-bb6d-413d336aced0","timestamp":{"seconds":1624564792,"nanos":660000000}}} +{"attachment":{"testStepId":"b6958014-de7c-4938-bb6d-413d336aced0","testCaseStartedId":"0f9cab7f-fa22-4640-8820-7089074bee3a","mediaType":"text/plain","body":"AAECAwQFBgcICQ==","contentEncoding":"BASE64"}} +{"testStepFinished":{"testCaseStartedId":"0f9cab7f-fa22-4640-8820-7089074bee3a","testStepId":"b6958014-de7c-4938-bb6d-413d336aced0","testStepResult":{"duration":{"seconds":0,"nanos":175633},"status":"PASSED"},"timestamp":{"seconds":1624564792,"nanos":661000000}}} +{"testCaseFinished":{"testCaseStartedId":"0f9cab7f-fa22-4640-8820-7089074bee3a","timestamp":{"seconds":1624564792,"nanos":661000000},"willBeRetried":false}} +{"testCaseStarted":{"attempt":0,"testCaseId":"1c61a8cd-901d-41ca-96f3-c13f8e141b28","id":"760a74ba-9145-4597-8eb4-08ab58c9bebf","timestamp":{"seconds":1624564792,"nanos":661000000}}} +{"testStepStarted":{"testCaseStartedId":"760a74ba-9145-4597-8eb4-08ab58c9bebf","testStepId":"dbaed71c-a128-4024-b198-8f8c9bce6302","timestamp":{"seconds":1624564792,"nanos":661000000}}} +{"testStepFinished":{"testCaseStartedId":"760a74ba-9145-4597-8eb4-08ab58c9bebf","testStepId":"dbaed71c-a128-4024-b198-8f8c9bce6302","testStepResult":{"duration":{"seconds":0,"nanos":7397},"status":"PASSED"},"timestamp":{"seconds":1624564792,"nanos":661000000}}} +{"testStepStarted":{"testCaseStartedId":"760a74ba-9145-4597-8eb4-08ab58c9bebf","testStepId":"b58a4190-ded7-4bbe-b206-23b9a91fc7fd","timestamp":{"seconds":1624564792,"nanos":661000000}}} +{"attachment":{"testStepId":"b58a4190-ded7-4bbe-b206-23b9a91fc7fd","testCaseStartedId":"760a74ba-9145-4597-8eb4-08ab58c9bebf","mediaType":"image/png","body":"iVBORw0KGgoAAAANSUhEUgAAACkAAAAuCAYAAAC1ZTBOAAAABmJLR0QA/wD/AP+gvaeTAAAGgElEQVRYw81ZeWwUVRgfNF4xalDo7Oy92yYmEkm0nZ22olYtM7Pbbu8t24Ntl960Eo0HRCsW5BCIRLyDQK0pFqt/iCdVPIISQvEIVSxg4h8mEhPEqNE/jNLn972dmd1Ztruz3W11kpftdue995vv+H2/7w3DzPBatChwKcvLd7GCvJn1SG+YPNIp+PwFxm8wzrO89CPrEY/A36/keKRuc4F8PTNX18IC700AaAg2/x0GSXN8B8AfNuf7F8wKuBxBXgybHIzdlKvxE2v/MmLf00Kc77QT16ddxH2sh346320nzn1hYtvcSMyhKsIukWPB/sny4iZ2sXhlVsBZiwJXmHh5Gyz8N25gKvES29ogcX3USXJP9RkfE73EMRgiXF1FLNjTbKEoZATwuqJyC+uRj1FwhTKxPrKM5H7Zkx64+HGyjzj2honJV64ChYcX7565e3npDAVY6Seu9zoyAxc33F+tJNZ766JW5eX+9JKjSMpjBfEnnGxpq6ELZhNg7LBta9SAmjzyA4YAssViDkz4ngLsqSW5J3pnDaAGdEeTCvSfHGGpmBokL+3HCebmSpL7zewDVId1Tb0K9NxC3meaHqBHbqNmLy2jVDJXAOkAj3HBCsXt0lBCgAtuqbiKFaSzeJMD+M1Q8E8CrewKEfvzy0nu1xda3THcQiz3B4hjqMXQeq6xDgIYEOhUDi8WJ3Cz3E/jsL3auIse0lwUmXcy+ptzf5uu2jjfakvX7W/rAObleS+DJziHP7oOtBsGyVX79UBGV2i/mcNVut+wKhmy5mddqjXPI8tEOdEjVtFkgfKVVrCvrtcBQdeq1YUtjKnZ8DdubnRdS1cNnQfCZEtMwkij9GlfWJ4eIUNymcSyaC2vr4hY41CnDjyW0XTWdQy3qnNPqBjnwZezaGL3eHfScmZ/uplYVtUS26YG4j4Sudf9cSfh/OU6kFg6FZcRy31g3cn0q5GpKCJIuGKfI1JdMO2r/MmfbqRVL7tA1WiWh8y2P9VM7M9GPWF7vIE4Xw3PmJLMzZGYhixvYkyCWEefuK826SQM/EQa0fFiaHbIXYl3KJUDAFLqxS/W9cGUZIuJobpRq7e3ezNXRomMsl0tlfIwZvajNGmeaDJMuLYNDcRyT4Bymn13iGZz1kEqnoPqcwAzeyMFCTE1p2UwVYYPKuHFS+8zgHQ1pYmtjcYy72g3LXOYNOgSfGL38eRSzvVhJ00q9Jb9mWbi/iS1qne8pOXAQQY7ORqT0KsknQg0YtvYQNhiWZ888D0ZdbkhXjFudXOA3DExkslApDvqbl56naFtqYGa7Xi5NWF2ozU1QN8m3hStnpAZdk3PDNZ1QTVxtjP2JWXzUXWY7vTpBEJKCoIst22JhggmECf5aLWhAgOUFH0ARZOisFUJWgM5OH09x45AKY3dalk8TQXC2PR9DFoJVQ9XX0ksvXW0ZdWIG8NA2zhiHbNSf81Qhdyfr1TKZRdt5hAAVq1pKxH8n73DF5lfKN2sCoytNHlgs7SzcCSckNy5Cq0bJOaW6qReih9oAGXur0x+/iUUJCeI+bROgrvS7WkukGtvRnQjWlAH/rUVxqvNeiUeeXFE38Ly0hc0EXaG0lJBuuoDca0mD7pVp4QGgobVvqqscgSpVq/MBaky0t/4DJc5umC0ySe2J6MFwX24i5hujVJPrPhIGj5DWoKe0Vwdc6FkG6ec+WDAsDUxGdBKtM+JSwRU+bbHgoZ7HJzPVflVK65N3C0W+W6EG/5CejHajGW1Xj+n8enP1wreq5P03eIaVS8abZ6ycuwyDvFd4lWPXFalOB4YuAhu3EtvBq7CujvrICej5A1ePMoEAhcbO8UVpA/Uoz7n6Oy6HoldcfMfJsF7g+FDK2dJyeUAdJ9WAqGZck9k/+AK67cqpGmrMINrHqiQdXiQRK0ql0V4NEuHWFQPRJX+howOUznP0gJY5LhG2kC2qFJcY+1pd4Kai4FTtd5ckHaiQTI/lwZihX4oDAtO6qoMJJe5o4bkGjzDxJChvZK2BkixrACMy35Q82Ug6/fQfl3ZTO3DkwoHOPzHU2PtGDo11WThAqqg5J8CJCp32qJGj15+4Hjxtjl7r5MMJNZvZIWY1yNTMHbPzy+9hpnLKx4k9jSYteaOav2hlUc6nPHrkExBojvNTZXxLcIU9s0Qv6XMf3mpIHWDFydQxcD7GRfzf7hQ90GzdAheqeyAzxC+oMr2Hv8Cf7uNwHUHEgMAAAAASUVORK5CYII=","contentEncoding":"BASE64"}} +{"testStepFinished":{"testCaseStartedId":"760a74ba-9145-4597-8eb4-08ab58c9bebf","testStepId":"b58a4190-ded7-4bbe-b206-23b9a91fc7fd","testStepResult":{"duration":{"seconds":0,"nanos":907615},"status":"PASSED"},"timestamp":{"seconds":1624564792,"nanos":662000000}}} +{"testCaseFinished":{"testCaseStartedId":"760a74ba-9145-4597-8eb4-08ab58c9bebf","timestamp":{"seconds":1624564792,"nanos":662000000},"willBeRetried":false}} +{"testCaseStarted":{"attempt":0,"testCaseId":"d0275a09-04aa-4191-97d0-89f14b074dad","id":"b46e20fe-5954-451d-beb2-2be0b64bb38d","timestamp":{"seconds":1624564792,"nanos":662000000}}} +{"testStepStarted":{"testCaseStartedId":"b46e20fe-5954-451d-beb2-2be0b64bb38d","testStepId":"cef64275-0314-44e4-8a86-f6f620e6de07","timestamp":{"seconds":1624564792,"nanos":662000000}}} +{"testStepFinished":{"testCaseStartedId":"b46e20fe-5954-451d-beb2-2be0b64bb38d","testStepId":"cef64275-0314-44e4-8a86-f6f620e6de07","testStepResult":{"duration":{"seconds":0,"nanos":9309},"status":"PASSED"},"timestamp":{"seconds":1624564792,"nanos":662000000}}} +{"testStepStarted":{"testCaseStartedId":"b46e20fe-5954-451d-beb2-2be0b64bb38d","testStepId":"ac0b82d5-efbb-4d34-975f-c7769cc2ecdd","timestamp":{"seconds":1624564792,"nanos":662000000}}} +{"attachment":{"testStepId":"ac0b82d5-efbb-4d34-975f-c7769cc2ecdd","testCaseStartedId":"b46e20fe-5954-451d-beb2-2be0b64bb38d","mediaType":"image/png","body":"iVBORw0KGgoAAAANSUhEUgAAACkAAAAuCAYAAAC1ZTBOAAAABmJLR0QA/wD/AP+gvaeTAAAGgElEQVRYw81ZeWwUVRgfNF4xalDo7Oy92yYmEkm0nZ22olYtM7Pbbu8t24Ntl960Eo0HRCsW5BCIRLyDQK0pFqt/iCdVPIISQvEIVSxg4h8mEhPEqNE/jNLn972dmd1Ztruz3W11kpftdue995vv+H2/7w3DzPBatChwKcvLd7GCvJn1SG+YPNIp+PwFxm8wzrO89CPrEY/A36/keKRuc4F8PTNX18IC700AaAg2/x0GSXN8B8AfNuf7F8wKuBxBXgybHIzdlKvxE2v/MmLf00Kc77QT16ddxH2sh346320nzn1hYtvcSMyhKsIukWPB/sny4iZ2sXhlVsBZiwJXmHh5Gyz8N25gKvES29ogcX3USXJP9RkfE73EMRgiXF1FLNjTbKEoZATwuqJyC+uRj1FwhTKxPrKM5H7Zkx64+HGyjzj2honJV64ChYcX7565e3npDAVY6Seu9zoyAxc33F+tJNZ766JW5eX+9JKjSMpjBfEnnGxpq6ELZhNg7LBta9SAmjzyA4YAssViDkz4ngLsqSW5J3pnDaAGdEeTCvSfHGGpmBokL+3HCebmSpL7zewDVId1Tb0K9NxC3meaHqBHbqNmLy2jVDJXAOkAj3HBCsXt0lBCgAtuqbiKFaSzeJMD+M1Q8E8CrewKEfvzy0nu1xda3THcQiz3B4hjqMXQeq6xDgIYEOhUDi8WJ3Cz3E/jsL3auIse0lwUmXcy+ptzf5uu2jjfakvX7W/rAObleS+DJziHP7oOtBsGyVX79UBGV2i/mcNVut+wKhmy5mddqjXPI8tEOdEjVtFkgfKVVrCvrtcBQdeq1YUtjKnZ8DdubnRdS1cNnQfCZEtMwkij9GlfWJ4eIUNymcSyaC2vr4hY41CnDjyW0XTWdQy3qnNPqBjnwZezaGL3eHfScmZ/uplYVtUS26YG4j4Sudf9cSfh/OU6kFg6FZcRy31g3cn0q5GpKCJIuGKfI1JdMO2r/MmfbqRVL7tA1WiWh8y2P9VM7M9GPWF7vIE4Xw3PmJLMzZGYhixvYkyCWEefuK826SQM/EQa0fFiaHbIXYl3KJUDAFLqxS/W9cGUZIuJobpRq7e3ezNXRomMsl0tlfIwZvajNGmeaDJMuLYNDcRyT4Bymn13iGZz1kEqnoPqcwAzeyMFCTE1p2UwVYYPKuHFS+8zgHQ1pYmtjcYy72g3LXOYNOgSfGL38eRSzvVhJ00q9Jb9mWbi/iS1qne8pOXAQQY7ORqT0KsknQg0YtvYQNhiWZ888D0ZdbkhXjFudXOA3DExkslApDvqbl56naFtqYGa7Xi5NWF2ozU1QN8m3hStnpAZdk3PDNZ1QTVxtjP2JWXzUXWY7vTpBEJKCoIst22JhggmECf5aLWhAgOUFH0ARZOisFUJWgM5OH09x45AKY3dalk8TQXC2PR9DFoJVQ9XX0ksvXW0ZdWIG8NA2zhiHbNSf81Qhdyfr1TKZRdt5hAAVq1pKxH8n73DF5lfKN2sCoytNHlgs7SzcCSckNy5Cq0bJOaW6qReih9oAGXur0x+/iUUJCeI+bROgrvS7WkukGtvRnQjWlAH/rUVxqvNeiUeeXFE38Ly0hc0EXaG0lJBuuoDca0mD7pVp4QGgobVvqqscgSpVq/MBaky0t/4DJc5umC0ySe2J6MFwX24i5hujVJPrPhIGj5DWoKe0Vwdc6FkG6ec+WDAsDUxGdBKtM+JSwRU+bbHgoZ7HJzPVflVK65N3C0W+W6EG/5CejHajGW1Xj+n8enP1wreq5P03eIaVS8abZ6ycuwyDvFd4lWPXFalOB4YuAhu3EtvBq7CujvrICej5A1ePMoEAhcbO8UVpA/Uoz7n6Oy6HoldcfMfJsF7g+FDK2dJyeUAdJ9WAqGZck9k/+AK67cqpGmrMINrHqiQdXiQRK0ql0V4NEuHWFQPRJX+howOUznP0gJY5LhG2kC2qFJcY+1pd4Kai4FTtd5ckHaiQTI/lwZihX4oDAtO6qoMJJe5o4bkGjzDxJChvZK2BkixrACMy35Q82Ug6/fQfl3ZTO3DkwoHOPzHU2PtGDo11WThAqqg5J8CJCp32qJGj15+4Hjxtjl7r5MMJNZvZIWY1yNTMHbPzy+9hpnLKx4k9jSYteaOav2hlUc6nPHrkExBojvNTZXxLcIU9s0Qv6XMf3mpIHWDFydQxcD7GRfzf7hQ90GzdAheqeyAzxC+oMr2Hv8Cf7uNwHUHEgMAAAAASUVORK5CYII=","contentEncoding":"BASE64"}} +{"testStepFinished":{"testCaseStartedId":"b46e20fe-5954-451d-beb2-2be0b64bb38d","testStepId":"ac0b82d5-efbb-4d34-975f-c7769cc2ecdd","testStepResult":{"duration":{"seconds":0,"nanos":424394},"status":"PASSED"},"timestamp":{"seconds":1624564792,"nanos":662000000}}} +{"testCaseFinished":{"testCaseStartedId":"b46e20fe-5954-451d-beb2-2be0b64bb38d","timestamp":{"seconds":1624564792,"nanos":662000000},"willBeRetried":false}} +{"testRunFinished":{"timestamp":{"seconds":1624564792,"nanos":662000000},"success":true}} diff --git a/compatibility-kit/javascript/features/data-tables/data-tables.feature.ndjson b/compatibility-kit/javascript/features/data-tables/data-tables.feature.ndjson index 51ca38ec80..edb1a1f53f 100644 --- a/compatibility-kit/javascript/features/data-tables/data-tables.feature.ndjson +++ b/compatibility-kit/javascript/features/data-tables/data-tables.feature.ndjson @@ -1,15 +1,15 @@ -{"meta":{"protocolVersion":"16.0.1","implementation":{"name":"fake-cucumber","version":"12.0.2"},"cpu":{"name":"x64"},"os":{"name":"linux","version":"5.10.25-linuxkit"},"runtime":{"name":"node.js","version":"12.16.2"}}} +{"meta":{"protocolVersion":"16.0.1","implementation":{"name":"fake-cucumber","version":"12.0.2"},"cpu":{"name":"x64"},"os":{"name":"darwin","version":"19.6.0"},"runtime":{"name":"node.js","version":"12.22.1"}}} {"source":{"data":"Feature: Data Tables\n Data Tables can be places underneath a step and will be passed as the last\n argument to the step definition. They can be used to represent richer data\n structures, and can also be transformed to other types.\n\n Scenario: transposed table\n When the following table is transposed:\n | a | b |\n | 1 | 2 |\n Then it should be:\n | a | 1 |\n | b | 2 |\n","uri":"features/data-tables/data-tables.feature","mediaType":"text/x.cucumber.gherkin+plain"}} -{"gherkinDocument":{"feature":{"tags":[],"location":{"line":1,"column":1},"language":"en","keyword":"Feature","name":"Data Tables","description":" Data Tables can be places underneath a step and will be passed as the last\n argument to the step definition. They can be used to represent richer data\n structures, and can also be transformed to other types.","children":[{"scenario":{"id":"5701b673-f807-4191-ba35-f397ad2c5aac","tags":[],"location":{"line":6,"column":3},"keyword":"Scenario","name":"transposed table","description":"","steps":[{"id":"e465b664-be82-4f8a-ba10-3b71fd84d0b6","location":{"line":7,"column":5},"keyword":"When ","text":"the following table is transposed:","dataTable":{"location":{"line":8,"column":7},"rows":[{"id":"c14298e6-6af0-4002-844e-0a1c5d95dcb7","location":{"line":8,"column":7},"cells":[{"location":{"line":8,"column":9},"value":"a"},{"location":{"line":8,"column":13},"value":"b"}]},{"id":"414c6c5f-6d20-4b9c-9c78-9b01c1c16b66","location":{"line":9,"column":7},"cells":[{"location":{"line":9,"column":9},"value":"1"},{"location":{"line":9,"column":13},"value":"2"}]}]}},{"id":"90c9de7f-f032-4873-84a6-5a68110f1bb6","location":{"line":10,"column":5},"keyword":"Then ","text":"it should be:","dataTable":{"location":{"line":11,"column":7},"rows":[{"id":"23a094ab-ff9d-4653-b524-5d6bfda9dfb8","location":{"line":11,"column":7},"cells":[{"location":{"line":11,"column":9},"value":"a"},{"location":{"line":11,"column":13},"value":"1"}]},{"id":"99dec49b-9cbb-410d-b52a-2be096d1bc10","location":{"line":12,"column":7},"cells":[{"location":{"line":12,"column":9},"value":"b"},{"location":{"line":12,"column":13},"value":"2"}]}]}}],"examples":[]}}]},"comments":[],"uri":"features/data-tables/data-tables.feature"}} -{"pickle":{"id":"41935011-5dc1-4152-aaff-7af50edaf4dc","uri":"features/data-tables/data-tables.feature","astNodeIds":["5701b673-f807-4191-ba35-f397ad2c5aac"],"tags":[],"name":"transposed table","language":"en","steps":[{"id":"424fff5d-36db-4fcf-9e03-3676669e2931","text":"the following table is transposed:","argument":{"dataTable":{"rows":[{"cells":[{"value":"a"},{"value":"b"}]},{"cells":[{"value":"1"},{"value":"2"}]}]}},"astNodeIds":["e465b664-be82-4f8a-ba10-3b71fd84d0b6"]},{"id":"5f5f5a16-74ad-4298-ad07-cac1f2989498","text":"it should be:","argument":{"dataTable":{"rows":[{"cells":[{"value":"a"},{"value":"1"}]},{"cells":[{"value":"b"},{"value":"2"}]}]}},"astNodeIds":["90c9de7f-f032-4873-84a6-5a68110f1bb6"]}]}} -{"stepDefinition":{"id":"85373b38-35a7-4c97-a1ef-c85bdebaadac","pattern":{"type":"CUCUMBER_EXPRESSION","source":"the following table is transposed:"},"sourceReference":{"uri":"features/data-tables/data-tables.feature.ts","location":{"line":5}}}} -{"stepDefinition":{"id":"424d72f2-666c-4bfd-aaaa-994411781a26","pattern":{"type":"CUCUMBER_EXPRESSION","source":"it should be:"},"sourceReference":{"uri":"features/data-tables/data-tables.feature.ts","location":{"line":9}}}} -{"testRunStarted":{"timestamp":{"seconds":1623962935,"nanos":860000000}}} -{"testCase":{"id":"b9930351-27bd-4f63-b1be-ec4374a6fb49","pickleId":"41935011-5dc1-4152-aaff-7af50edaf4dc","testSteps":[{"id":"9a3e191f-3fb3-47b7-964e-d14efbda2e9f","pickleStepId":"424fff5d-36db-4fcf-9e03-3676669e2931","stepDefinitionIds":["85373b38-35a7-4c97-a1ef-c85bdebaadac"],"stepMatchArgumentsLists":[{"stepMatchArguments":[]}]},{"id":"9bcdf873-ca81-4399-9a04-a098598adabb","pickleStepId":"5f5f5a16-74ad-4298-ad07-cac1f2989498","stepDefinitionIds":["424d72f2-666c-4bfd-aaaa-994411781a26"],"stepMatchArgumentsLists":[{"stepMatchArguments":[]}]}]}} -{"testCaseStarted":{"attempt":0,"testCaseId":"b9930351-27bd-4f63-b1be-ec4374a6fb49","id":"f4958a57-181d-4ee6-8c6f-74716d14a6b1","timestamp":{"seconds":1623962935,"nanos":862000000}}} -{"testStepStarted":{"testCaseStartedId":"f4958a57-181d-4ee6-8c6f-74716d14a6b1","testStepId":"9a3e191f-3fb3-47b7-964e-d14efbda2e9f","timestamp":{"seconds":1623962935,"nanos":863000000}}} -{"testStepFinished":{"testCaseStartedId":"f4958a57-181d-4ee6-8c6f-74716d14a6b1","testStepId":"9a3e191f-3fb3-47b7-964e-d14efbda2e9f","testStepResult":{"duration":{"seconds":0,"nanos":913100},"status":"PASSED","willBeRetried":false},"timestamp":{"seconds":1623962935,"nanos":865000000}}} -{"testStepStarted":{"testCaseStartedId":"f4958a57-181d-4ee6-8c6f-74716d14a6b1","testStepId":"9bcdf873-ca81-4399-9a04-a098598adabb","timestamp":{"seconds":1623962935,"nanos":865000000}}} -{"testStepFinished":{"testCaseStartedId":"f4958a57-181d-4ee6-8c6f-74716d14a6b1","testStepId":"9bcdf873-ca81-4399-9a04-a098598adabb","testStepResult":{"duration":{"seconds":0,"nanos":128400},"status":"PASSED","willBeRetried":false},"timestamp":{"seconds":1623962935,"nanos":866000000}}} -{"testCaseFinished":{"testCaseStartedId":"f4958a57-181d-4ee6-8c6f-74716d14a6b1","timestamp":{"seconds":1623962935,"nanos":867000000}}} -{"testRunFinished":{"timestamp":{"seconds":1623962935,"nanos":867000000},"success":true}} +{"gherkinDocument":{"feature":{"tags":[],"location":{"line":1,"column":1},"language":"en","keyword":"Feature","name":"Data Tables","description":" Data Tables can be places underneath a step and will be passed as the last\n argument to the step definition. They can be used to represent richer data\n structures, and can also be transformed to other types.","children":[{"scenario":{"id":"b8da163b-1bf8-41ae-b000-74ed14de3659","tags":[],"location":{"line":6,"column":3},"keyword":"Scenario","name":"transposed table","description":"","steps":[{"id":"90fe869b-a1d2-44e9-981f-6b05ff25d435","location":{"line":7,"column":5},"keyword":"When ","text":"the following table is transposed:","dataTable":{"location":{"line":8,"column":7},"rows":[{"id":"09afe980-92e2-44e2-b444-6935d15e6aa6","location":{"line":8,"column":7},"cells":[{"location":{"line":8,"column":9},"value":"a"},{"location":{"line":8,"column":13},"value":"b"}]},{"id":"45e788c0-c306-44f3-9c2f-f5e5b51e85f7","location":{"line":9,"column":7},"cells":[{"location":{"line":9,"column":9},"value":"1"},{"location":{"line":9,"column":13},"value":"2"}]}]}},{"id":"383874e9-5f2b-44b8-bc9e-314ed0e86695","location":{"line":10,"column":5},"keyword":"Then ","text":"it should be:","dataTable":{"location":{"line":11,"column":7},"rows":[{"id":"9f6e6df6-c06d-4a3d-98ab-fedaabd8bd15","location":{"line":11,"column":7},"cells":[{"location":{"line":11,"column":9},"value":"a"},{"location":{"line":11,"column":13},"value":"1"}]},{"id":"3f0857b6-7dab-4dc9-9b08-e1e4d173728d","location":{"line":12,"column":7},"cells":[{"location":{"line":12,"column":9},"value":"b"},{"location":{"line":12,"column":13},"value":"2"}]}]}}],"examples":[]}}]},"comments":[],"uri":"features/data-tables/data-tables.feature"}} +{"pickle":{"id":"d4ad29d1-fe03-4630-8778-420187bed150","uri":"features/data-tables/data-tables.feature","astNodeIds":["b8da163b-1bf8-41ae-b000-74ed14de3659"],"tags":[],"name":"transposed table","language":"en","steps":[{"id":"0778a92b-6f63-4d75-b2ba-a07ee33c7e3f","text":"the following table is transposed:","argument":{"dataTable":{"rows":[{"cells":[{"value":"a"},{"value":"b"}]},{"cells":[{"value":"1"},{"value":"2"}]}]}},"astNodeIds":["90fe869b-a1d2-44e9-981f-6b05ff25d435"]},{"id":"42f6a9cc-2954-4fda-80ea-a8915a481c3e","text":"it should be:","argument":{"dataTable":{"rows":[{"cells":[{"value":"a"},{"value":"1"}]},{"cells":[{"value":"b"},{"value":"2"}]}]}},"astNodeIds":["383874e9-5f2b-44b8-bc9e-314ed0e86695"]}]}} +{"stepDefinition":{"id":"0d5f8da7-9322-4acc-af2b-75197ddd00b6","pattern":{"type":"CUCUMBER_EXPRESSION","source":"the following table is transposed:"},"sourceReference":{"uri":"features/data-tables/data-tables.feature.ts","location":{"line":5}}}} +{"stepDefinition":{"id":"1644f9d1-165e-4364-9c20-4cb0f70d591d","pattern":{"type":"CUCUMBER_EXPRESSION","source":"it should be:"},"sourceReference":{"uri":"features/data-tables/data-tables.feature.ts","location":{"line":9}}}} +{"testRunStarted":{"timestamp":{"seconds":1624564793,"nanos":107000000}}} +{"testCase":{"id":"255521cf-03a7-4f37-9f1f-32ec7644275e","pickleId":"d4ad29d1-fe03-4630-8778-420187bed150","testSteps":[{"id":"574bcbeb-3388-4a08-981e-809022ff0332","pickleStepId":"0778a92b-6f63-4d75-b2ba-a07ee33c7e3f","stepDefinitionIds":["0d5f8da7-9322-4acc-af2b-75197ddd00b6"],"stepMatchArgumentsLists":[{"stepMatchArguments":[]}]},{"id":"b2056698-0f5f-4cbd-a3e3-79fffbd92a16","pickleStepId":"42f6a9cc-2954-4fda-80ea-a8915a481c3e","stepDefinitionIds":["1644f9d1-165e-4364-9c20-4cb0f70d591d"],"stepMatchArgumentsLists":[{"stepMatchArguments":[]}]}]}} +{"testCaseStarted":{"attempt":0,"testCaseId":"255521cf-03a7-4f37-9f1f-32ec7644275e","id":"55916432-55d9-42a8-8c23-0f891ef490de","timestamp":{"seconds":1624564793,"nanos":108000000}}} +{"testStepStarted":{"testCaseStartedId":"55916432-55d9-42a8-8c23-0f891ef490de","testStepId":"574bcbeb-3388-4a08-981e-809022ff0332","timestamp":{"seconds":1624564793,"nanos":108000000}}} +{"testStepFinished":{"testCaseStartedId":"55916432-55d9-42a8-8c23-0f891ef490de","testStepId":"574bcbeb-3388-4a08-981e-809022ff0332","testStepResult":{"duration":{"seconds":0,"nanos":206264},"status":"PASSED"},"timestamp":{"seconds":1624564793,"nanos":108000000}}} +{"testStepStarted":{"testCaseStartedId":"55916432-55d9-42a8-8c23-0f891ef490de","testStepId":"b2056698-0f5f-4cbd-a3e3-79fffbd92a16","timestamp":{"seconds":1624564793,"nanos":108000000}}} +{"testStepFinished":{"testCaseStartedId":"55916432-55d9-42a8-8c23-0f891ef490de","testStepId":"b2056698-0f5f-4cbd-a3e3-79fffbd92a16","testStepResult":{"duration":{"seconds":0,"nanos":35730},"status":"PASSED"},"timestamp":{"seconds":1624564793,"nanos":108000000}}} +{"testCaseFinished":{"testCaseStartedId":"55916432-55d9-42a8-8c23-0f891ef490de","timestamp":{"seconds":1624564793,"nanos":109000000},"willBeRetried":false}} +{"testRunFinished":{"timestamp":{"seconds":1624564793,"nanos":109000000},"success":true}} diff --git a/compatibility-kit/javascript/features/examples-tables/examples-tables.feature.ndjson b/compatibility-kit/javascript/features/examples-tables/examples-tables.feature.ndjson index 57d4a614af..de772d4914 100644 --- a/compatibility-kit/javascript/features/examples-tables/examples-tables.feature.ndjson +++ b/compatibility-kit/javascript/features/examples-tables/examples-tables.feature.ndjson @@ -1,68 +1,68 @@ -{"meta":{"protocolVersion":"16.0.1","implementation":{"name":"fake-cucumber","version":"12.0.2"},"cpu":{"name":"x64"},"os":{"name":"linux","version":"5.10.25-linuxkit"},"runtime":{"name":"node.js","version":"12.16.2"}}} +{"meta":{"protocolVersion":"16.0.1","implementation":{"name":"fake-cucumber","version":"12.0.2"},"cpu":{"name":"x64"},"os":{"name":"darwin","version":"19.6.0"},"runtime":{"name":"node.js","version":"12.22.1"}}} {"source":{"data":"Feature: Examples Tables\n Sometimes it can be desireable to run the same scenario multiple times\n with different data each time. This can be done by placing an Examples\n section with an Examples Table underneath a Scenario, and use \n in the Scenario, matching the table headers.\n\n Scenario Outline: eating cucumbers\n Given there are cucumbers\n When I eat cucumbers\n Then I should have cucumbers\n\n @passing\n Examples: These are passing\n | start | eat | left |\n | 12 | 5 | 7 |\n | 20 | 5 | 15 |\n\n @failing\n Examples: These are failing\n | start | eat | left |\n | 12 | 20 | 0 |\n | 0 | 1 | 0 |\n\n @undefined\n Examples: These are undefined because the value is not an {int}\n | start | eat | left |\n | 12 | banana | 12 |\n | 0 | 1 | apple |\n","uri":"features/examples-tables/examples-tables.feature","mediaType":"text/x.cucumber.gherkin+plain"}} -{"gherkinDocument":{"feature":{"tags":[],"location":{"line":1,"column":1},"language":"en","keyword":"Feature","name":"Examples Tables","description":" Sometimes it can be desireable to run the same scenario multiple times\n with different data each time. This can be done by placing an Examples\n section with an Examples Table underneath a Scenario, and use \n in the Scenario, matching the table headers.","children":[{"scenario":{"id":"31920804-ca04-4281-9c1f-958d971277c6","tags":[],"location":{"line":7,"column":3},"keyword":"Scenario Outline","name":"eating cucumbers","description":"","steps":[{"id":"2e7c62f9-7de4-4f96-8e30-f85f0934c40a","location":{"line":8,"column":5},"keyword":"Given ","text":"there are cucumbers"},{"id":"43c48535-8854-469e-8b3a-13ff97b023a0","location":{"line":9,"column":5},"keyword":"When ","text":"I eat cucumbers"},{"id":"6e5e5200-58cb-4915-8918-2ff09de35825","location":{"line":10,"column":5},"keyword":"Then ","text":"I should have cucumbers"}],"examples":[{"id":"98acf82c-e58c-41ef-8bc2-362adbad32ce","tags":[{"location":{"line":12,"column":5},"name":"@passing","id":"379ebe46-e75a-47df-99c7-6c680986b9e8"}],"location":{"line":13,"column":5},"keyword":"Examples","name":"These are passing","description":"","tableHeader":{"id":"15fca74f-972d-4504-b6d5-313368a63c01","location":{"line":14,"column":7},"cells":[{"location":{"line":14,"column":9},"value":"start"},{"location":{"line":14,"column":17},"value":"eat"},{"location":{"line":14,"column":23},"value":"left"}]},"tableBody":[{"id":"d50275b0-1cf3-4f3d-ad4b-1e261be79d90","location":{"line":15,"column":7},"cells":[{"location":{"line":15,"column":12},"value":"12"},{"location":{"line":15,"column":19},"value":"5"},{"location":{"line":15,"column":26},"value":"7"}]},{"id":"09657d7a-0880-4301-a9a8-850f9404748e","location":{"line":16,"column":7},"cells":[{"location":{"line":16,"column":12},"value":"20"},{"location":{"line":16,"column":19},"value":"5"},{"location":{"line":16,"column":25},"value":"15"}]}]},{"id":"1b4265cf-3aa2-407d-9d87-60052fb31e9a","tags":[{"location":{"line":18,"column":5},"name":"@failing","id":"0da9031a-29ea-4e7c-9afc-6eae506a720e"}],"location":{"line":19,"column":5},"keyword":"Examples","name":"These are failing","description":"","tableHeader":{"id":"32008bba-b16d-47cf-b0df-9eca6faa7f0e","location":{"line":20,"column":7},"cells":[{"location":{"line":20,"column":9},"value":"start"},{"location":{"line":20,"column":17},"value":"eat"},{"location":{"line":20,"column":23},"value":"left"}]},"tableBody":[{"id":"7e09acc3-8f14-46a3-a330-2ac3e921eee8","location":{"line":21,"column":7},"cells":[{"location":{"line":21,"column":12},"value":"12"},{"location":{"line":21,"column":18},"value":"20"},{"location":{"line":21,"column":26},"value":"0"}]},{"id":"9660a425-82e8-49d5-9258-e10bcf5b6f31","location":{"line":22,"column":7},"cells":[{"location":{"line":22,"column":13},"value":"0"},{"location":{"line":22,"column":19},"value":"1"},{"location":{"line":22,"column":26},"value":"0"}]}]},{"id":"91c33e43-a7b0-425a-bec4-1861ce1b3833","tags":[{"location":{"line":24,"column":5},"name":"@undefined","id":"11c42ac9-a4e9-4007-b89b-379939d8ad2f"}],"location":{"line":25,"column":5},"keyword":"Examples","name":"These are undefined because the value is not an {int}","description":"","tableHeader":{"id":"17182803-30d8-49d3-96ab-5e78f1825a6d","location":{"line":26,"column":7},"cells":[{"location":{"line":26,"column":9},"value":"start"},{"location":{"line":26,"column":17},"value":"eat"},{"location":{"line":26,"column":26},"value":"left"}]},"tableBody":[{"id":"626bd875-d7fb-463b-91d8-cac01e085367","location":{"line":27,"column":7},"cells":[{"location":{"line":27,"column":12},"value":"12"},{"location":{"line":27,"column":17},"value":"banana"},{"location":{"line":27,"column":29},"value":"12"}]},{"id":"12584785-f4e1-45b8-bd21-32eea03c8320","location":{"line":28,"column":7},"cells":[{"location":{"line":28,"column":13},"value":"0"},{"location":{"line":28,"column":22},"value":"1"},{"location":{"line":28,"column":26},"value":"apple"}]}]}]}}]},"comments":[],"uri":"features/examples-tables/examples-tables.feature"}} -{"pickle":{"id":"61e50a08-0804-43ea-aed6-6c0b7ce7858e","uri":"features/examples-tables/examples-tables.feature","astNodeIds":["31920804-ca04-4281-9c1f-958d971277c6","d50275b0-1cf3-4f3d-ad4b-1e261be79d90"],"name":"eating cucumbers","language":"en","steps":[{"id":"4ab310b5-8184-4c2a-b534-4cb9c294113a","text":"there are 12 cucumbers","astNodeIds":["2e7c62f9-7de4-4f96-8e30-f85f0934c40a","d50275b0-1cf3-4f3d-ad4b-1e261be79d90"]},{"id":"f10132f5-efdd-4028-b9f7-0ac5ecc992f5","text":"I eat 5 cucumbers","astNodeIds":["43c48535-8854-469e-8b3a-13ff97b023a0","d50275b0-1cf3-4f3d-ad4b-1e261be79d90"]},{"id":"6080564e-a2eb-4a6c-8518-51a4139426c5","text":"I should have 7 cucumbers","astNodeIds":["6e5e5200-58cb-4915-8918-2ff09de35825","d50275b0-1cf3-4f3d-ad4b-1e261be79d90"]}],"tags":[{"name":"@passing","astNodeId":"379ebe46-e75a-47df-99c7-6c680986b9e8"}]}} -{"pickle":{"id":"6ce37f67-342f-473b-9c50-f12a06800b5d","uri":"features/examples-tables/examples-tables.feature","astNodeIds":["31920804-ca04-4281-9c1f-958d971277c6","09657d7a-0880-4301-a9a8-850f9404748e"],"name":"eating cucumbers","language":"en","steps":[{"id":"9d850682-dde1-4965-9692-94b5531cdb90","text":"there are 20 cucumbers","astNodeIds":["2e7c62f9-7de4-4f96-8e30-f85f0934c40a","09657d7a-0880-4301-a9a8-850f9404748e"]},{"id":"6d4aebd5-427d-4018-8850-67c977ba50ab","text":"I eat 5 cucumbers","astNodeIds":["43c48535-8854-469e-8b3a-13ff97b023a0","09657d7a-0880-4301-a9a8-850f9404748e"]},{"id":"fee84d9d-05df-487e-a1bc-f5f55d40ed37","text":"I should have 15 cucumbers","astNodeIds":["6e5e5200-58cb-4915-8918-2ff09de35825","09657d7a-0880-4301-a9a8-850f9404748e"]}],"tags":[{"name":"@passing","astNodeId":"379ebe46-e75a-47df-99c7-6c680986b9e8"}]}} -{"pickle":{"id":"61695a19-e0e2-4c92-9540-c978b55b9692","uri":"features/examples-tables/examples-tables.feature","astNodeIds":["31920804-ca04-4281-9c1f-958d971277c6","7e09acc3-8f14-46a3-a330-2ac3e921eee8"],"name":"eating cucumbers","language":"en","steps":[{"id":"abdccf2b-cb87-45fd-8813-bc8725099c99","text":"there are 12 cucumbers","astNodeIds":["2e7c62f9-7de4-4f96-8e30-f85f0934c40a","7e09acc3-8f14-46a3-a330-2ac3e921eee8"]},{"id":"959f0d33-7685-4728-a603-fdfb58b685b1","text":"I eat 20 cucumbers","astNodeIds":["43c48535-8854-469e-8b3a-13ff97b023a0","7e09acc3-8f14-46a3-a330-2ac3e921eee8"]},{"id":"4da35fb0-5258-455a-ab8f-7f1623cfbe3d","text":"I should have 0 cucumbers","astNodeIds":["6e5e5200-58cb-4915-8918-2ff09de35825","7e09acc3-8f14-46a3-a330-2ac3e921eee8"]}],"tags":[{"name":"@failing","astNodeId":"0da9031a-29ea-4e7c-9afc-6eae506a720e"}]}} -{"pickle":{"id":"ed812a59-1e50-47fe-9ac4-7c8c1d433176","uri":"features/examples-tables/examples-tables.feature","astNodeIds":["31920804-ca04-4281-9c1f-958d971277c6","9660a425-82e8-49d5-9258-e10bcf5b6f31"],"name":"eating cucumbers","language":"en","steps":[{"id":"42a36c05-da4b-466e-a30b-a4c88662bdad","text":"there are 0 cucumbers","astNodeIds":["2e7c62f9-7de4-4f96-8e30-f85f0934c40a","9660a425-82e8-49d5-9258-e10bcf5b6f31"]},{"id":"dd1f4fde-ad7c-427f-9770-6f19b798a295","text":"I eat 1 cucumbers","astNodeIds":["43c48535-8854-469e-8b3a-13ff97b023a0","9660a425-82e8-49d5-9258-e10bcf5b6f31"]},{"id":"421d88c2-b9db-48e5-95fd-b0e7702d2c60","text":"I should have 0 cucumbers","astNodeIds":["6e5e5200-58cb-4915-8918-2ff09de35825","9660a425-82e8-49d5-9258-e10bcf5b6f31"]}],"tags":[{"name":"@failing","astNodeId":"0da9031a-29ea-4e7c-9afc-6eae506a720e"}]}} -{"pickle":{"id":"3c8317e0-ccf1-4887-afe3-1cb62ac90f89","uri":"features/examples-tables/examples-tables.feature","astNodeIds":["31920804-ca04-4281-9c1f-958d971277c6","626bd875-d7fb-463b-91d8-cac01e085367"],"name":"eating cucumbers","language":"en","steps":[{"id":"3e7ec158-2706-45f6-9b39-2caf67f5d3b5","text":"there are 12 cucumbers","astNodeIds":["2e7c62f9-7de4-4f96-8e30-f85f0934c40a","626bd875-d7fb-463b-91d8-cac01e085367"]},{"id":"9cf90d76-3fd9-4bb2-8364-bba985f0f1ac","text":"I eat banana cucumbers","astNodeIds":["43c48535-8854-469e-8b3a-13ff97b023a0","626bd875-d7fb-463b-91d8-cac01e085367"]},{"id":"ed79221d-963a-4c9b-9622-c05d930bca1e","text":"I should have 12 cucumbers","astNodeIds":["6e5e5200-58cb-4915-8918-2ff09de35825","626bd875-d7fb-463b-91d8-cac01e085367"]}],"tags":[{"name":"@undefined","astNodeId":"11c42ac9-a4e9-4007-b89b-379939d8ad2f"}]}} -{"pickle":{"id":"1f5fd01a-cba2-4d3a-9800-a11e657e7442","uri":"features/examples-tables/examples-tables.feature","astNodeIds":["31920804-ca04-4281-9c1f-958d971277c6","12584785-f4e1-45b8-bd21-32eea03c8320"],"name":"eating cucumbers","language":"en","steps":[{"id":"f124f542-4eb5-4a23-b61c-fe0225c060a9","text":"there are 0 cucumbers","astNodeIds":["2e7c62f9-7de4-4f96-8e30-f85f0934c40a","12584785-f4e1-45b8-bd21-32eea03c8320"]},{"id":"f5afc24c-2417-4989-8a67-b892be957f87","text":"I eat 1 cucumbers","astNodeIds":["43c48535-8854-469e-8b3a-13ff97b023a0","12584785-f4e1-45b8-bd21-32eea03c8320"]},{"id":"2f767558-d7ae-4491-a196-de58f7ac74eb","text":"I should have apple cucumbers","astNodeIds":["6e5e5200-58cb-4915-8918-2ff09de35825","12584785-f4e1-45b8-bd21-32eea03c8320"]}],"tags":[{"name":"@undefined","astNodeId":"11c42ac9-a4e9-4007-b89b-379939d8ad2f"}]}} -{"stepDefinition":{"id":"9b403473-0949-4362-9cdd-0860e694d988","pattern":{"type":"CUCUMBER_EXPRESSION","source":"there are {int} cucumbers"},"sourceReference":{"uri":"features/examples-tables/examples-tables.feature.ts","location":{"line":4}}}} -{"stepDefinition":{"id":"6b411aec-1010-42a0-ba31-5592f4557010","pattern":{"type":"CUCUMBER_EXPRESSION","source":"I eat {int} cucumbers"},"sourceReference":{"uri":"features/examples-tables/examples-tables.feature.ts","location":{"line":8}}}} -{"stepDefinition":{"id":"e2fbc2e3-7853-4fb8-be61-4cc0e168f1b3","pattern":{"type":"CUCUMBER_EXPRESSION","source":"I should have {int} cucumbers"},"sourceReference":{"uri":"features/examples-tables/examples-tables.feature.ts","location":{"line":12}}}} -{"testRunStarted":{"timestamp":{"seconds":1623962937,"nanos":513000000}}} -{"testCase":{"id":"8abd739b-6026-4425-b72b-bbcadc058717","pickleId":"61e50a08-0804-43ea-aed6-6c0b7ce7858e","testSteps":[{"id":"f4c2e93e-f8c5-4034-b29f-766f48971b38","pickleStepId":"4ab310b5-8184-4c2a-b534-4cb9c294113a","stepDefinitionIds":["9b403473-0949-4362-9cdd-0860e694d988"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"value":"12","start":10,"children":[]},"parameterTypeName":"int"}]}]},{"id":"ab4f32a6-6d86-4c87-9df2-5ec2ee2b079e","pickleStepId":"f10132f5-efdd-4028-b9f7-0ac5ecc992f5","stepDefinitionIds":["6b411aec-1010-42a0-ba31-5592f4557010"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"value":"5","start":6,"children":[]},"parameterTypeName":"int"}]}]},{"id":"53ddb224-2eb9-4010-993a-8d3924b1699f","pickleStepId":"6080564e-a2eb-4a6c-8518-51a4139426c5","stepDefinitionIds":["e2fbc2e3-7853-4fb8-be61-4cc0e168f1b3"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"value":"7","start":14,"children":[]},"parameterTypeName":"int"}]}]}]}} -{"testCase":{"id":"f7e40d54-e5ff-42f1-8739-c8e1dc605e7e","pickleId":"6ce37f67-342f-473b-9c50-f12a06800b5d","testSteps":[{"id":"bec92afe-5767-41d1-b132-52828805eb09","pickleStepId":"9d850682-dde1-4965-9692-94b5531cdb90","stepDefinitionIds":["9b403473-0949-4362-9cdd-0860e694d988"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"value":"20","start":10,"children":[]},"parameterTypeName":"int"}]}]},{"id":"c2349541-fd77-4994-8e30-befe3735c363","pickleStepId":"6d4aebd5-427d-4018-8850-67c977ba50ab","stepDefinitionIds":["6b411aec-1010-42a0-ba31-5592f4557010"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"value":"5","start":6,"children":[]},"parameterTypeName":"int"}]}]},{"id":"96893459-eeeb-428a-a733-0e1edd887e71","pickleStepId":"fee84d9d-05df-487e-a1bc-f5f55d40ed37","stepDefinitionIds":["e2fbc2e3-7853-4fb8-be61-4cc0e168f1b3"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"value":"15","start":14,"children":[]},"parameterTypeName":"int"}]}]}]}} -{"testCase":{"id":"f48d0abd-eebc-4ec8-b7d1-ce525b87d5bb","pickleId":"61695a19-e0e2-4c92-9540-c978b55b9692","testSteps":[{"id":"c34a9ded-bd7f-4a04-9878-1d21311a5c8c","pickleStepId":"abdccf2b-cb87-45fd-8813-bc8725099c99","stepDefinitionIds":["9b403473-0949-4362-9cdd-0860e694d988"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"value":"12","start":10,"children":[]},"parameterTypeName":"int"}]}]},{"id":"0915aa9c-6fc7-4e94-8570-c9f88c6a485c","pickleStepId":"959f0d33-7685-4728-a603-fdfb58b685b1","stepDefinitionIds":["6b411aec-1010-42a0-ba31-5592f4557010"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"value":"20","start":6,"children":[]},"parameterTypeName":"int"}]}]},{"id":"9cf04b24-2d8c-4562-8227-1a709a877f73","pickleStepId":"4da35fb0-5258-455a-ab8f-7f1623cfbe3d","stepDefinitionIds":["e2fbc2e3-7853-4fb8-be61-4cc0e168f1b3"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"value":"0","start":14,"children":[]},"parameterTypeName":"int"}]}]}]}} -{"testCase":{"id":"802a3592-7f58-40f6-83bc-c7d1bfe331fa","pickleId":"ed812a59-1e50-47fe-9ac4-7c8c1d433176","testSteps":[{"id":"b893a5b0-e10e-4422-86c3-272c8b034b47","pickleStepId":"42a36c05-da4b-466e-a30b-a4c88662bdad","stepDefinitionIds":["9b403473-0949-4362-9cdd-0860e694d988"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"value":"0","start":10,"children":[]},"parameterTypeName":"int"}]}]},{"id":"054a0e40-f1cb-42ca-b5df-7c12d46c87f3","pickleStepId":"dd1f4fde-ad7c-427f-9770-6f19b798a295","stepDefinitionIds":["6b411aec-1010-42a0-ba31-5592f4557010"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"value":"1","start":6,"children":[]},"parameterTypeName":"int"}]}]},{"id":"81746949-0f60-4145-9223-d392063b77c4","pickleStepId":"421d88c2-b9db-48e5-95fd-b0e7702d2c60","stepDefinitionIds":["e2fbc2e3-7853-4fb8-be61-4cc0e168f1b3"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"value":"0","start":14,"children":[]},"parameterTypeName":"int"}]}]}]}} -{"testCase":{"id":"b71c31cb-6cb7-4a23-ad6a-fc251447452e","pickleId":"3c8317e0-ccf1-4887-afe3-1cb62ac90f89","testSteps":[{"id":"657a5ca0-3c03-4f14-8fd4-be26e2a5b9aa","pickleStepId":"3e7ec158-2706-45f6-9b39-2caf67f5d3b5","stepDefinitionIds":["9b403473-0949-4362-9cdd-0860e694d988"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"value":"12","start":10,"children":[]},"parameterTypeName":"int"}]}]},{"id":"ccc0fb01-708f-42f8-83a0-8e6dc3aef8e7","pickleStepId":"9cf90d76-3fd9-4bb2-8364-bba985f0f1ac","stepDefinitionIds":[],"stepMatchArgumentsLists":[]},{"id":"d4ffdfb6-307c-4f25-93fa-51a2cd6dc414","pickleStepId":"ed79221d-963a-4c9b-9622-c05d930bca1e","stepDefinitionIds":["e2fbc2e3-7853-4fb8-be61-4cc0e168f1b3"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"value":"12","start":14,"children":[]},"parameterTypeName":"int"}]}]}]}} -{"testCase":{"id":"6582b333-0095-4565-ba43-d833f019080c","pickleId":"1f5fd01a-cba2-4d3a-9800-a11e657e7442","testSteps":[{"id":"ecd2219f-c09a-453d-9cb4-90849b1775e1","pickleStepId":"f124f542-4eb5-4a23-b61c-fe0225c060a9","stepDefinitionIds":["9b403473-0949-4362-9cdd-0860e694d988"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"value":"0","start":10,"children":[]},"parameterTypeName":"int"}]}]},{"id":"784ba7f5-07e7-4ef6-ac6b-4169c64297ec","pickleStepId":"f5afc24c-2417-4989-8a67-b892be957f87","stepDefinitionIds":["6b411aec-1010-42a0-ba31-5592f4557010"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"value":"1","start":6,"children":[]},"parameterTypeName":"int"}]}]},{"id":"a33303be-9651-42e6-a010-4bb823b4b712","pickleStepId":"2f767558-d7ae-4491-a196-de58f7ac74eb","stepDefinitionIds":[],"stepMatchArgumentsLists":[]}]}} -{"testCaseStarted":{"attempt":0,"testCaseId":"8abd739b-6026-4425-b72b-bbcadc058717","id":"4d77a312-9c67-4def-9c0f-bc4d29a73996","timestamp":{"seconds":1623962937,"nanos":518000000}}} -{"testStepStarted":{"testCaseStartedId":"4d77a312-9c67-4def-9c0f-bc4d29a73996","testStepId":"f4c2e93e-f8c5-4034-b29f-766f48971b38","timestamp":{"seconds":1623962937,"nanos":520000000}}} -{"testStepFinished":{"testCaseStartedId":"4d77a312-9c67-4def-9c0f-bc4d29a73996","testStepId":"f4c2e93e-f8c5-4034-b29f-766f48971b38","testStepResult":{"duration":{"seconds":0,"nanos":966700},"status":"PASSED","willBeRetried":false},"timestamp":{"seconds":1623962937,"nanos":521000000}}} -{"testStepStarted":{"testCaseStartedId":"4d77a312-9c67-4def-9c0f-bc4d29a73996","testStepId":"ab4f32a6-6d86-4c87-9df2-5ec2ee2b079e","timestamp":{"seconds":1623962937,"nanos":522000000}}} -{"testStepFinished":{"testCaseStartedId":"4d77a312-9c67-4def-9c0f-bc4d29a73996","testStepId":"ab4f32a6-6d86-4c87-9df2-5ec2ee2b079e","testStepResult":{"duration":{"seconds":0,"nanos":82900},"status":"PASSED","willBeRetried":false},"timestamp":{"seconds":1623962937,"nanos":523000000}}} -{"testStepStarted":{"testCaseStartedId":"4d77a312-9c67-4def-9c0f-bc4d29a73996","testStepId":"53ddb224-2eb9-4010-993a-8d3924b1699f","timestamp":{"seconds":1623962937,"nanos":523000000}}} -{"testStepFinished":{"testCaseStartedId":"4d77a312-9c67-4def-9c0f-bc4d29a73996","testStepId":"53ddb224-2eb9-4010-993a-8d3924b1699f","testStepResult":{"duration":{"seconds":0,"nanos":146299},"status":"PASSED","willBeRetried":false},"timestamp":{"seconds":1623962937,"nanos":524000000}}} -{"testCaseFinished":{"testCaseStartedId":"4d77a312-9c67-4def-9c0f-bc4d29a73996","timestamp":{"seconds":1623962937,"nanos":524000000}}} -{"testCaseStarted":{"attempt":0,"testCaseId":"f7e40d54-e5ff-42f1-8739-c8e1dc605e7e","id":"ad97980c-4995-403e-94e3-9308feef4a38","timestamp":{"seconds":1623962937,"nanos":525000000}}} -{"testStepStarted":{"testCaseStartedId":"ad97980c-4995-403e-94e3-9308feef4a38","testStepId":"bec92afe-5767-41d1-b132-52828805eb09","timestamp":{"seconds":1623962937,"nanos":526000000}}} -{"testStepFinished":{"testCaseStartedId":"ad97980c-4995-403e-94e3-9308feef4a38","testStepId":"bec92afe-5767-41d1-b132-52828805eb09","testStepResult":{"duration":{"seconds":0,"nanos":24999},"status":"PASSED","willBeRetried":false},"timestamp":{"seconds":1623962937,"nanos":526000000}}} -{"testStepStarted":{"testCaseStartedId":"ad97980c-4995-403e-94e3-9308feef4a38","testStepId":"c2349541-fd77-4994-8e30-befe3735c363","timestamp":{"seconds":1623962937,"nanos":527000000}}} -{"testStepFinished":{"testCaseStartedId":"ad97980c-4995-403e-94e3-9308feef4a38","testStepId":"c2349541-fd77-4994-8e30-befe3735c363","testStepResult":{"duration":{"seconds":0,"nanos":27599},"status":"PASSED","willBeRetried":false},"timestamp":{"seconds":1623962937,"nanos":528000000}}} -{"testStepStarted":{"testCaseStartedId":"ad97980c-4995-403e-94e3-9308feef4a38","testStepId":"96893459-eeeb-428a-a733-0e1edd887e71","timestamp":{"seconds":1623962937,"nanos":528000000}}} -{"testStepFinished":{"testCaseStartedId":"ad97980c-4995-403e-94e3-9308feef4a38","testStepId":"96893459-eeeb-428a-a733-0e1edd887e71","testStepResult":{"duration":{"seconds":0,"nanos":24199},"status":"PASSED","willBeRetried":false},"timestamp":{"seconds":1623962937,"nanos":529000000}}} -{"testCaseFinished":{"testCaseStartedId":"ad97980c-4995-403e-94e3-9308feef4a38","timestamp":{"seconds":1623962937,"nanos":529000000}}} -{"testCaseStarted":{"attempt":0,"testCaseId":"f48d0abd-eebc-4ec8-b7d1-ce525b87d5bb","id":"79c879fe-2ea8-44a8-b7d6-fa0a514e2c67","timestamp":{"seconds":1623962937,"nanos":530000000}}} -{"testStepStarted":{"testCaseStartedId":"79c879fe-2ea8-44a8-b7d6-fa0a514e2c67","testStepId":"c34a9ded-bd7f-4a04-9878-1d21311a5c8c","timestamp":{"seconds":1623962937,"nanos":530000000}}} -{"testStepFinished":{"testCaseStartedId":"79c879fe-2ea8-44a8-b7d6-fa0a514e2c67","testStepId":"c34a9ded-bd7f-4a04-9878-1d21311a5c8c","testStepResult":{"duration":{"seconds":0,"nanos":25900},"status":"PASSED","willBeRetried":false},"timestamp":{"seconds":1623962937,"nanos":531000000}}} -{"testStepStarted":{"testCaseStartedId":"79c879fe-2ea8-44a8-b7d6-fa0a514e2c67","testStepId":"0915aa9c-6fc7-4e94-8570-c9f88c6a485c","timestamp":{"seconds":1623962937,"nanos":531000000}}} -{"testStepFinished":{"testCaseStartedId":"79c879fe-2ea8-44a8-b7d6-fa0a514e2c67","testStepId":"0915aa9c-6fc7-4e94-8570-c9f88c6a485c","testStepResult":{"duration":{"seconds":0,"nanos":25999},"status":"PASSED","willBeRetried":false},"timestamp":{"seconds":1623962937,"nanos":532000000}}} -{"testStepStarted":{"testCaseStartedId":"79c879fe-2ea8-44a8-b7d6-fa0a514e2c67","testStepId":"9cf04b24-2d8c-4562-8227-1a709a877f73","timestamp":{"seconds":1623962937,"nanos":532000000}}} -{"testStepFinished":{"testCaseStartedId":"79c879fe-2ea8-44a8-b7d6-fa0a514e2c67","testStepId":"9cf04b24-2d8c-4562-8227-1a709a877f73","testStepResult":{"duration":{"seconds":0,"nanos":28673500},"status":"FAILED","willBeRetried":false,"message":"Expected values to be strictly equal:\n\n-8 !== 0\n\n at -8 !== 0\n at Object. (features/examples-tables/examples-tables.feature.ts:13:10)\n at Generator.next ()\n at new Promise ()\n at Generator.next ()\n at features/examples-tables/examples-tables.feature:10\n at features/examples-tables/examples-tables.feature:21"},"timestamp":{"seconds":1623962937,"nanos":570000000}}} -{"testCaseFinished":{"testCaseStartedId":"79c879fe-2ea8-44a8-b7d6-fa0a514e2c67","timestamp":{"seconds":1623962937,"nanos":571000000}}} -{"testCaseStarted":{"attempt":0,"testCaseId":"802a3592-7f58-40f6-83bc-c7d1bfe331fa","id":"a03e9255-629a-4194-9471-65277f9cb1fb","timestamp":{"seconds":1623962937,"nanos":572000000}}} -{"testStepStarted":{"testCaseStartedId":"a03e9255-629a-4194-9471-65277f9cb1fb","testStepId":"b893a5b0-e10e-4422-86c3-272c8b034b47","timestamp":{"seconds":1623962937,"nanos":573000000}}} -{"testStepFinished":{"testCaseStartedId":"a03e9255-629a-4194-9471-65277f9cb1fb","testStepId":"b893a5b0-e10e-4422-86c3-272c8b034b47","testStepResult":{"duration":{"seconds":0,"nanos":27499},"status":"PASSED","willBeRetried":false},"timestamp":{"seconds":1623962937,"nanos":573000000}}} -{"testStepStarted":{"testCaseStartedId":"a03e9255-629a-4194-9471-65277f9cb1fb","testStepId":"054a0e40-f1cb-42ca-b5df-7c12d46c87f3","timestamp":{"seconds":1623962937,"nanos":574000000}}} -{"testStepFinished":{"testCaseStartedId":"a03e9255-629a-4194-9471-65277f9cb1fb","testStepId":"054a0e40-f1cb-42ca-b5df-7c12d46c87f3","testStepResult":{"duration":{"seconds":0,"nanos":24200},"status":"PASSED","willBeRetried":false},"timestamp":{"seconds":1623962937,"nanos":575000000}}} -{"testStepStarted":{"testCaseStartedId":"a03e9255-629a-4194-9471-65277f9cb1fb","testStepId":"81746949-0f60-4145-9223-d392063b77c4","timestamp":{"seconds":1623962937,"nanos":575000000}}} -{"testStepFinished":{"testCaseStartedId":"a03e9255-629a-4194-9471-65277f9cb1fb","testStepId":"81746949-0f60-4145-9223-d392063b77c4","testStepResult":{"duration":{"seconds":0,"nanos":448600},"status":"FAILED","willBeRetried":false,"message":"Expected values to be strictly equal:\n\n-1 !== 0\n\n at -1 !== 0\n at Object. (features/examples-tables/examples-tables.feature.ts:13:10)\n at Generator.next ()\n at new Promise ()\n at Generator.next ()\n at features/examples-tables/examples-tables.feature:10\n at features/examples-tables/examples-tables.feature:22"},"timestamp":{"seconds":1623962937,"nanos":577000000}}} -{"testCaseFinished":{"testCaseStartedId":"a03e9255-629a-4194-9471-65277f9cb1fb","timestamp":{"seconds":1623962937,"nanos":577000000}}} -{"testCaseStarted":{"attempt":0,"testCaseId":"b71c31cb-6cb7-4a23-ad6a-fc251447452e","id":"33dd443f-3d4f-44da-a229-ae7f82c2d265","timestamp":{"seconds":1623962937,"nanos":578000000}}} -{"testStepStarted":{"testCaseStartedId":"33dd443f-3d4f-44da-a229-ae7f82c2d265","testStepId":"657a5ca0-3c03-4f14-8fd4-be26e2a5b9aa","timestamp":{"seconds":1623962937,"nanos":578000000}}} -{"testStepFinished":{"testCaseStartedId":"33dd443f-3d4f-44da-a229-ae7f82c2d265","testStepId":"657a5ca0-3c03-4f14-8fd4-be26e2a5b9aa","testStepResult":{"duration":{"seconds":0,"nanos":27199},"status":"PASSED","willBeRetried":false},"timestamp":{"seconds":1623962937,"nanos":579000000}}} -{"testStepStarted":{"testCaseStartedId":"33dd443f-3d4f-44da-a229-ae7f82c2d265","testStepId":"ccc0fb01-708f-42f8-83a0-8e6dc3aef8e7","timestamp":{"seconds":1623962937,"nanos":579000000}}} -{"testStepFinished":{"testCaseStartedId":"33dd443f-3d4f-44da-a229-ae7f82c2d265","testStepId":"ccc0fb01-708f-42f8-83a0-8e6dc3aef8e7","testStepResult":{"duration":{"seconds":0,"nanos":0},"status":"UNDEFINED","willBeRetried":false},"timestamp":{"seconds":1623962937,"nanos":580000000}}} -{"testStepStarted":{"testCaseStartedId":"33dd443f-3d4f-44da-a229-ae7f82c2d265","testStepId":"d4ffdfb6-307c-4f25-93fa-51a2cd6dc414","timestamp":{"seconds":1623962937,"nanos":580000000}}} -{"testStepFinished":{"testCaseStartedId":"33dd443f-3d4f-44da-a229-ae7f82c2d265","testStepId":"d4ffdfb6-307c-4f25-93fa-51a2cd6dc414","testStepResult":{"duration":{"seconds":0,"nanos":0},"status":"SKIPPED","willBeRetried":false},"timestamp":{"seconds":1623962937,"nanos":581000000}}} -{"testCaseFinished":{"testCaseStartedId":"33dd443f-3d4f-44da-a229-ae7f82c2d265","timestamp":{"seconds":1623962937,"nanos":582000000}}} -{"testCaseStarted":{"attempt":0,"testCaseId":"6582b333-0095-4565-ba43-d833f019080c","id":"643fffdd-753a-4ac0-8892-29a3613a8027","timestamp":{"seconds":1623962937,"nanos":582000000}}} -{"testStepStarted":{"testCaseStartedId":"643fffdd-753a-4ac0-8892-29a3613a8027","testStepId":"ecd2219f-c09a-453d-9cb4-90849b1775e1","timestamp":{"seconds":1623962937,"nanos":583000000}}} -{"testStepFinished":{"testCaseStartedId":"643fffdd-753a-4ac0-8892-29a3613a8027","testStepId":"ecd2219f-c09a-453d-9cb4-90849b1775e1","testStepResult":{"duration":{"seconds":0,"nanos":26500},"status":"PASSED","willBeRetried":false},"timestamp":{"seconds":1623962937,"nanos":583000000}}} -{"testStepStarted":{"testCaseStartedId":"643fffdd-753a-4ac0-8892-29a3613a8027","testStepId":"784ba7f5-07e7-4ef6-ac6b-4169c64297ec","timestamp":{"seconds":1623962937,"nanos":584000000}}} -{"testStepFinished":{"testCaseStartedId":"643fffdd-753a-4ac0-8892-29a3613a8027","testStepId":"784ba7f5-07e7-4ef6-ac6b-4169c64297ec","testStepResult":{"duration":{"seconds":0,"nanos":20799},"status":"PASSED","willBeRetried":false},"timestamp":{"seconds":1623962937,"nanos":584000000}}} -{"testStepStarted":{"testCaseStartedId":"643fffdd-753a-4ac0-8892-29a3613a8027","testStepId":"a33303be-9651-42e6-a010-4bb823b4b712","timestamp":{"seconds":1623962937,"nanos":585000000}}} -{"testStepFinished":{"testCaseStartedId":"643fffdd-753a-4ac0-8892-29a3613a8027","testStepId":"a33303be-9651-42e6-a010-4bb823b4b712","testStepResult":{"duration":{"seconds":0,"nanos":0},"status":"UNDEFINED","willBeRetried":false},"timestamp":{"seconds":1623962937,"nanos":585000000}}} -{"testCaseFinished":{"testCaseStartedId":"643fffdd-753a-4ac0-8892-29a3613a8027","timestamp":{"seconds":1623962937,"nanos":586000000}}} -{"testRunFinished":{"timestamp":{"seconds":1623962937,"nanos":587000000},"success":false}} +{"gherkinDocument":{"feature":{"tags":[],"location":{"line":1,"column":1},"language":"en","keyword":"Feature","name":"Examples Tables","description":" Sometimes it can be desireable to run the same scenario multiple times\n with different data each time. This can be done by placing an Examples\n section with an Examples Table underneath a Scenario, and use \n in the Scenario, matching the table headers.","children":[{"scenario":{"id":"18823fb1-abcf-48d5-ad1b-1952f83d0c9f","tags":[],"location":{"line":7,"column":3},"keyword":"Scenario Outline","name":"eating cucumbers","description":"","steps":[{"id":"aa74badc-bc00-430c-b574-75d388fe9d20","location":{"line":8,"column":5},"keyword":"Given ","text":"there are cucumbers"},{"id":"4c4be5e9-34b9-4c69-95e1-d3d0c7081a16","location":{"line":9,"column":5},"keyword":"When ","text":"I eat cucumbers"},{"id":"cc42915e-f08b-4c9c-ad0f-43be91ddfc73","location":{"line":10,"column":5},"keyword":"Then ","text":"I should have cucumbers"}],"examples":[{"id":"ec5d3b34-bf19-47e4-8224-0a25e03f7d9d","tags":[{"location":{"line":12,"column":5},"name":"@passing","id":"57e2e544-5e82-4ca6-ad08-b1697b308bb3"}],"location":{"line":13,"column":5},"keyword":"Examples","name":"These are passing","description":"","tableHeader":{"id":"bde03e69-61e3-45a6-876d-c71790a897da","location":{"line":14,"column":7},"cells":[{"location":{"line":14,"column":9},"value":"start"},{"location":{"line":14,"column":17},"value":"eat"},{"location":{"line":14,"column":23},"value":"left"}]},"tableBody":[{"id":"428c374b-5909-440a-98ce-062c40738002","location":{"line":15,"column":7},"cells":[{"location":{"line":15,"column":12},"value":"12"},{"location":{"line":15,"column":19},"value":"5"},{"location":{"line":15,"column":26},"value":"7"}]},{"id":"53084b03-2cbf-45bb-9df9-abf8759e0a95","location":{"line":16,"column":7},"cells":[{"location":{"line":16,"column":12},"value":"20"},{"location":{"line":16,"column":19},"value":"5"},{"location":{"line":16,"column":25},"value":"15"}]}]},{"id":"64e0d0ba-0502-469b-9efa-677a764aafe9","tags":[{"location":{"line":18,"column":5},"name":"@failing","id":"94b58c94-d170-4a81-8850-0391551daf8b"}],"location":{"line":19,"column":5},"keyword":"Examples","name":"These are failing","description":"","tableHeader":{"id":"c1912862-de0c-4c33-ab33-5e9ba4b361f4","location":{"line":20,"column":7},"cells":[{"location":{"line":20,"column":9},"value":"start"},{"location":{"line":20,"column":17},"value":"eat"},{"location":{"line":20,"column":23},"value":"left"}]},"tableBody":[{"id":"af0d93a2-a6f8-4f87-b941-a13e8c893e68","location":{"line":21,"column":7},"cells":[{"location":{"line":21,"column":12},"value":"12"},{"location":{"line":21,"column":18},"value":"20"},{"location":{"line":21,"column":26},"value":"0"}]},{"id":"d2ac15a2-472b-4a34-ba95-0f1ed192a963","location":{"line":22,"column":7},"cells":[{"location":{"line":22,"column":13},"value":"0"},{"location":{"line":22,"column":19},"value":"1"},{"location":{"line":22,"column":26},"value":"0"}]}]},{"id":"291b8587-ff43-4954-b8bf-f27f4eaea0e1","tags":[{"location":{"line":24,"column":5},"name":"@undefined","id":"f72724fa-634b-4229-9440-8d00fcdaf786"}],"location":{"line":25,"column":5},"keyword":"Examples","name":"These are undefined because the value is not an {int}","description":"","tableHeader":{"id":"9dbe2c2a-aed2-43c9-9c99-af6928f237e0","location":{"line":26,"column":7},"cells":[{"location":{"line":26,"column":9},"value":"start"},{"location":{"line":26,"column":17},"value":"eat"},{"location":{"line":26,"column":26},"value":"left"}]},"tableBody":[{"id":"c83f29e7-e536-4f94-84de-7f31e9677ece","location":{"line":27,"column":7},"cells":[{"location":{"line":27,"column":12},"value":"12"},{"location":{"line":27,"column":17},"value":"banana"},{"location":{"line":27,"column":29},"value":"12"}]},{"id":"f3d33103-d91d-4714-9b07-ec3e10ba01c9","location":{"line":28,"column":7},"cells":[{"location":{"line":28,"column":13},"value":"0"},{"location":{"line":28,"column":22},"value":"1"},{"location":{"line":28,"column":26},"value":"apple"}]}]}]}}]},"comments":[],"uri":"features/examples-tables/examples-tables.feature"}} +{"pickle":{"id":"7f5f12e5-f7db-4758-a0f2-374598e3079c","uri":"features/examples-tables/examples-tables.feature","astNodeIds":["18823fb1-abcf-48d5-ad1b-1952f83d0c9f","428c374b-5909-440a-98ce-062c40738002"],"name":"eating cucumbers","language":"en","steps":[{"id":"0f938f33-a3d4-4993-96a2-beafbebda858","text":"there are 12 cucumbers","astNodeIds":["aa74badc-bc00-430c-b574-75d388fe9d20","428c374b-5909-440a-98ce-062c40738002"]},{"id":"afe70ad8-36b0-43a3-ac9b-90d4fb0b8b0a","text":"I eat 5 cucumbers","astNodeIds":["4c4be5e9-34b9-4c69-95e1-d3d0c7081a16","428c374b-5909-440a-98ce-062c40738002"]},{"id":"22d24635-959e-4f44-b83e-8a13b91bdb26","text":"I should have 7 cucumbers","astNodeIds":["cc42915e-f08b-4c9c-ad0f-43be91ddfc73","428c374b-5909-440a-98ce-062c40738002"]}],"tags":[{"name":"@passing","astNodeId":"57e2e544-5e82-4ca6-ad08-b1697b308bb3"}]}} +{"pickle":{"id":"359d5b53-5071-423c-abb9-9a0adaab8fea","uri":"features/examples-tables/examples-tables.feature","astNodeIds":["18823fb1-abcf-48d5-ad1b-1952f83d0c9f","53084b03-2cbf-45bb-9df9-abf8759e0a95"],"name":"eating cucumbers","language":"en","steps":[{"id":"d5f1c086-b213-478e-ac64-45d5181269ad","text":"there are 20 cucumbers","astNodeIds":["aa74badc-bc00-430c-b574-75d388fe9d20","53084b03-2cbf-45bb-9df9-abf8759e0a95"]},{"id":"8ea363dc-6d93-457a-ae83-d95a7c344a5e","text":"I eat 5 cucumbers","astNodeIds":["4c4be5e9-34b9-4c69-95e1-d3d0c7081a16","53084b03-2cbf-45bb-9df9-abf8759e0a95"]},{"id":"a3aeb2ae-f32b-4934-a595-1ed63ecbaf48","text":"I should have 15 cucumbers","astNodeIds":["cc42915e-f08b-4c9c-ad0f-43be91ddfc73","53084b03-2cbf-45bb-9df9-abf8759e0a95"]}],"tags":[{"name":"@passing","astNodeId":"57e2e544-5e82-4ca6-ad08-b1697b308bb3"}]}} +{"pickle":{"id":"a907ce0f-fa2e-471b-acc8-76193f797d34","uri":"features/examples-tables/examples-tables.feature","astNodeIds":["18823fb1-abcf-48d5-ad1b-1952f83d0c9f","af0d93a2-a6f8-4f87-b941-a13e8c893e68"],"name":"eating cucumbers","language":"en","steps":[{"id":"69adc06f-2e27-4a08-b5a6-5bebfd198be7","text":"there are 12 cucumbers","astNodeIds":["aa74badc-bc00-430c-b574-75d388fe9d20","af0d93a2-a6f8-4f87-b941-a13e8c893e68"]},{"id":"3386a5d6-2155-47cc-bb53-fcc7f3db9645","text":"I eat 20 cucumbers","astNodeIds":["4c4be5e9-34b9-4c69-95e1-d3d0c7081a16","af0d93a2-a6f8-4f87-b941-a13e8c893e68"]},{"id":"4e36b13b-bb27-494f-a231-94e97ba7590b","text":"I should have 0 cucumbers","astNodeIds":["cc42915e-f08b-4c9c-ad0f-43be91ddfc73","af0d93a2-a6f8-4f87-b941-a13e8c893e68"]}],"tags":[{"name":"@failing","astNodeId":"94b58c94-d170-4a81-8850-0391551daf8b"}]}} +{"pickle":{"id":"62c84f7a-1ce8-4152-b25f-7294ac5e95ac","uri":"features/examples-tables/examples-tables.feature","astNodeIds":["18823fb1-abcf-48d5-ad1b-1952f83d0c9f","d2ac15a2-472b-4a34-ba95-0f1ed192a963"],"name":"eating cucumbers","language":"en","steps":[{"id":"dcf1c702-11ce-4b67-bd6c-60072406259b","text":"there are 0 cucumbers","astNodeIds":["aa74badc-bc00-430c-b574-75d388fe9d20","d2ac15a2-472b-4a34-ba95-0f1ed192a963"]},{"id":"a6bb1826-a60c-459d-8b99-5378b85a8ca6","text":"I eat 1 cucumbers","astNodeIds":["4c4be5e9-34b9-4c69-95e1-d3d0c7081a16","d2ac15a2-472b-4a34-ba95-0f1ed192a963"]},{"id":"123a01c6-d5db-4661-856b-a00b36d4db2a","text":"I should have 0 cucumbers","astNodeIds":["cc42915e-f08b-4c9c-ad0f-43be91ddfc73","d2ac15a2-472b-4a34-ba95-0f1ed192a963"]}],"tags":[{"name":"@failing","astNodeId":"94b58c94-d170-4a81-8850-0391551daf8b"}]}} +{"pickle":{"id":"9da04bae-1130-4e8a-a99e-818ea6396b40","uri":"features/examples-tables/examples-tables.feature","astNodeIds":["18823fb1-abcf-48d5-ad1b-1952f83d0c9f","c83f29e7-e536-4f94-84de-7f31e9677ece"],"name":"eating cucumbers","language":"en","steps":[{"id":"3ef203ed-e3aa-45a5-95e8-0f05fbbdf4d2","text":"there are 12 cucumbers","astNodeIds":["aa74badc-bc00-430c-b574-75d388fe9d20","c83f29e7-e536-4f94-84de-7f31e9677ece"]},{"id":"f822cbcf-1e98-4d64-b502-79cc1389858e","text":"I eat banana cucumbers","astNodeIds":["4c4be5e9-34b9-4c69-95e1-d3d0c7081a16","c83f29e7-e536-4f94-84de-7f31e9677ece"]},{"id":"ccc8a4b3-d75a-4359-885f-2658bdc9d7a3","text":"I should have 12 cucumbers","astNodeIds":["cc42915e-f08b-4c9c-ad0f-43be91ddfc73","c83f29e7-e536-4f94-84de-7f31e9677ece"]}],"tags":[{"name":"@undefined","astNodeId":"f72724fa-634b-4229-9440-8d00fcdaf786"}]}} +{"pickle":{"id":"c842b4f3-5def-4335-9913-46a6c8e6d1cf","uri":"features/examples-tables/examples-tables.feature","astNodeIds":["18823fb1-abcf-48d5-ad1b-1952f83d0c9f","f3d33103-d91d-4714-9b07-ec3e10ba01c9"],"name":"eating cucumbers","language":"en","steps":[{"id":"8df192b4-1290-4469-85ae-25b5ae03b6f5","text":"there are 0 cucumbers","astNodeIds":["aa74badc-bc00-430c-b574-75d388fe9d20","f3d33103-d91d-4714-9b07-ec3e10ba01c9"]},{"id":"6694b971-cabf-47e7-8e08-49de4f4dd425","text":"I eat 1 cucumbers","astNodeIds":["4c4be5e9-34b9-4c69-95e1-d3d0c7081a16","f3d33103-d91d-4714-9b07-ec3e10ba01c9"]},{"id":"b53130ef-fbe6-4ab4-a9ca-40765300ed28","text":"I should have apple cucumbers","astNodeIds":["cc42915e-f08b-4c9c-ad0f-43be91ddfc73","f3d33103-d91d-4714-9b07-ec3e10ba01c9"]}],"tags":[{"name":"@undefined","astNodeId":"f72724fa-634b-4229-9440-8d00fcdaf786"}]}} +{"stepDefinition":{"id":"1721d218-ee7d-4845-8873-a1d363363bdf","pattern":{"type":"CUCUMBER_EXPRESSION","source":"there are {int} cucumbers"},"sourceReference":{"uri":"features/examples-tables/examples-tables.feature.ts","location":{"line":4}}}} +{"stepDefinition":{"id":"67f1df59-5277-4879-9e7d-9772ba0ee8e7","pattern":{"type":"CUCUMBER_EXPRESSION","source":"I eat {int} cucumbers"},"sourceReference":{"uri":"features/examples-tables/examples-tables.feature.ts","location":{"line":8}}}} +{"stepDefinition":{"id":"9ad87c16-2d85-475f-8e97-168791da350b","pattern":{"type":"CUCUMBER_EXPRESSION","source":"I should have {int} cucumbers"},"sourceReference":{"uri":"features/examples-tables/examples-tables.feature.ts","location":{"line":12}}}} +{"testRunStarted":{"timestamp":{"seconds":1624564793,"nanos":559000000}}} +{"testCase":{"id":"194aaa56-7930-4fd1-95b5-16520447cf5f","pickleId":"7f5f12e5-f7db-4758-a0f2-374598e3079c","testSteps":[{"id":"34b8a7fe-6a7e-45ae-b0d8-99fd8ecbb50a","pickleStepId":"0f938f33-a3d4-4993-96a2-beafbebda858","stepDefinitionIds":["1721d218-ee7d-4845-8873-a1d363363bdf"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"value":"12","start":10,"children":[]},"parameterTypeName":"int"}]}]},{"id":"7bc4904f-e06a-4b73-b206-eccb7ad36e32","pickleStepId":"afe70ad8-36b0-43a3-ac9b-90d4fb0b8b0a","stepDefinitionIds":["67f1df59-5277-4879-9e7d-9772ba0ee8e7"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"value":"5","start":6,"children":[]},"parameterTypeName":"int"}]}]},{"id":"37fe34a3-d595-4799-b1ab-bb7d5977c492","pickleStepId":"22d24635-959e-4f44-b83e-8a13b91bdb26","stepDefinitionIds":["9ad87c16-2d85-475f-8e97-168791da350b"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"value":"7","start":14,"children":[]},"parameterTypeName":"int"}]}]}]}} +{"testCase":{"id":"c329bf23-805d-47cd-afb4-dc13989c1c0a","pickleId":"359d5b53-5071-423c-abb9-9a0adaab8fea","testSteps":[{"id":"636a250f-2dee-4248-8a53-f721bbfbee1d","pickleStepId":"d5f1c086-b213-478e-ac64-45d5181269ad","stepDefinitionIds":["1721d218-ee7d-4845-8873-a1d363363bdf"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"value":"20","start":10,"children":[]},"parameterTypeName":"int"}]}]},{"id":"8eea257e-2bb1-46f2-9236-166697eeb674","pickleStepId":"8ea363dc-6d93-457a-ae83-d95a7c344a5e","stepDefinitionIds":["67f1df59-5277-4879-9e7d-9772ba0ee8e7"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"value":"5","start":6,"children":[]},"parameterTypeName":"int"}]}]},{"id":"6fd2259b-831b-45cd-adce-8bbdcf50eafb","pickleStepId":"a3aeb2ae-f32b-4934-a595-1ed63ecbaf48","stepDefinitionIds":["9ad87c16-2d85-475f-8e97-168791da350b"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"value":"15","start":14,"children":[]},"parameterTypeName":"int"}]}]}]}} +{"testCase":{"id":"e1dcb77d-2dc6-47c4-82fc-f9eb290be87b","pickleId":"a907ce0f-fa2e-471b-acc8-76193f797d34","testSteps":[{"id":"67f06bc6-fe6a-4040-aecf-977fb0340a00","pickleStepId":"69adc06f-2e27-4a08-b5a6-5bebfd198be7","stepDefinitionIds":["1721d218-ee7d-4845-8873-a1d363363bdf"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"value":"12","start":10,"children":[]},"parameterTypeName":"int"}]}]},{"id":"8814852c-1ddd-4a63-95ff-e42c87b41465","pickleStepId":"3386a5d6-2155-47cc-bb53-fcc7f3db9645","stepDefinitionIds":["67f1df59-5277-4879-9e7d-9772ba0ee8e7"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"value":"20","start":6,"children":[]},"parameterTypeName":"int"}]}]},{"id":"03983522-ea0e-44b3-9617-09227db0be1c","pickleStepId":"4e36b13b-bb27-494f-a231-94e97ba7590b","stepDefinitionIds":["9ad87c16-2d85-475f-8e97-168791da350b"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"value":"0","start":14,"children":[]},"parameterTypeName":"int"}]}]}]}} +{"testCase":{"id":"fbcb7393-4f87-49b4-af30-84df23c43890","pickleId":"62c84f7a-1ce8-4152-b25f-7294ac5e95ac","testSteps":[{"id":"1a2ae801-c009-46e9-bb6d-460199a9cfec","pickleStepId":"dcf1c702-11ce-4b67-bd6c-60072406259b","stepDefinitionIds":["1721d218-ee7d-4845-8873-a1d363363bdf"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"value":"0","start":10,"children":[]},"parameterTypeName":"int"}]}]},{"id":"27a7ee9a-6e3a-455e-bf1f-4358890a6f01","pickleStepId":"a6bb1826-a60c-459d-8b99-5378b85a8ca6","stepDefinitionIds":["67f1df59-5277-4879-9e7d-9772ba0ee8e7"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"value":"1","start":6,"children":[]},"parameterTypeName":"int"}]}]},{"id":"25bb21d4-347c-4a0f-b21a-6f467aa9feb5","pickleStepId":"123a01c6-d5db-4661-856b-a00b36d4db2a","stepDefinitionIds":["9ad87c16-2d85-475f-8e97-168791da350b"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"value":"0","start":14,"children":[]},"parameterTypeName":"int"}]}]}]}} +{"testCase":{"id":"2ad58387-d533-4e60-9b87-07001d63929e","pickleId":"9da04bae-1130-4e8a-a99e-818ea6396b40","testSteps":[{"id":"79cadb6f-1c83-456b-9b8d-7b43704ef07f","pickleStepId":"3ef203ed-e3aa-45a5-95e8-0f05fbbdf4d2","stepDefinitionIds":["1721d218-ee7d-4845-8873-a1d363363bdf"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"value":"12","start":10,"children":[]},"parameterTypeName":"int"}]}]},{"id":"32e392be-e887-4eae-96e8-6f2f8febaa4a","pickleStepId":"f822cbcf-1e98-4d64-b502-79cc1389858e","stepDefinitionIds":[],"stepMatchArgumentsLists":[]},{"id":"f90e0416-de2f-4262-bc1c-5a0e5d8f7715","pickleStepId":"ccc8a4b3-d75a-4359-885f-2658bdc9d7a3","stepDefinitionIds":["9ad87c16-2d85-475f-8e97-168791da350b"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"value":"12","start":14,"children":[]},"parameterTypeName":"int"}]}]}]}} +{"testCase":{"id":"baa16c6a-6a64-4133-94d2-0fa1a3dcca2b","pickleId":"c842b4f3-5def-4335-9913-46a6c8e6d1cf","testSteps":[{"id":"7832cf3d-8cc5-40d7-bd63-c33b8a0550c7","pickleStepId":"8df192b4-1290-4469-85ae-25b5ae03b6f5","stepDefinitionIds":["1721d218-ee7d-4845-8873-a1d363363bdf"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"value":"0","start":10,"children":[]},"parameterTypeName":"int"}]}]},{"id":"e87d5669-6196-448a-b93d-fa61ddb55695","pickleStepId":"6694b971-cabf-47e7-8e08-49de4f4dd425","stepDefinitionIds":["67f1df59-5277-4879-9e7d-9772ba0ee8e7"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"value":"1","start":6,"children":[]},"parameterTypeName":"int"}]}]},{"id":"96ccfae0-90a4-4ef1-88c3-b70f89e44170","pickleStepId":"b53130ef-fbe6-4ab4-a9ca-40765300ed28","stepDefinitionIds":[],"stepMatchArgumentsLists":[]}]}} +{"testCaseStarted":{"attempt":0,"testCaseId":"194aaa56-7930-4fd1-95b5-16520447cf5f","id":"17f6bddd-3389-454a-b2c6-ea381888a1ca","timestamp":{"seconds":1624564793,"nanos":560000000}}} +{"testStepStarted":{"testCaseStartedId":"17f6bddd-3389-454a-b2c6-ea381888a1ca","testStepId":"34b8a7fe-6a7e-45ae-b0d8-99fd8ecbb50a","timestamp":{"seconds":1624564793,"nanos":560000000}}} +{"testStepFinished":{"testCaseStartedId":"17f6bddd-3389-454a-b2c6-ea381888a1ca","testStepId":"34b8a7fe-6a7e-45ae-b0d8-99fd8ecbb50a","testStepResult":{"duration":{"seconds":0,"nanos":217875},"status":"PASSED"},"timestamp":{"seconds":1624564793,"nanos":561000000}}} +{"testStepStarted":{"testCaseStartedId":"17f6bddd-3389-454a-b2c6-ea381888a1ca","testStepId":"7bc4904f-e06a-4b73-b206-eccb7ad36e32","timestamp":{"seconds":1624564793,"nanos":561000000}}} +{"testStepFinished":{"testCaseStartedId":"17f6bddd-3389-454a-b2c6-ea381888a1ca","testStepId":"7bc4904f-e06a-4b73-b206-eccb7ad36e32","testStepResult":{"duration":{"seconds":0,"nanos":26207},"status":"PASSED"},"timestamp":{"seconds":1624564793,"nanos":561000000}}} +{"testStepStarted":{"testCaseStartedId":"17f6bddd-3389-454a-b2c6-ea381888a1ca","testStepId":"37fe34a3-d595-4799-b1ab-bb7d5977c492","timestamp":{"seconds":1624564793,"nanos":561000000}}} +{"testStepFinished":{"testCaseStartedId":"17f6bddd-3389-454a-b2c6-ea381888a1ca","testStepId":"37fe34a3-d595-4799-b1ab-bb7d5977c492","testStepResult":{"duration":{"seconds":0,"nanos":55555},"status":"PASSED"},"timestamp":{"seconds":1624564793,"nanos":561000000}}} +{"testCaseFinished":{"testCaseStartedId":"17f6bddd-3389-454a-b2c6-ea381888a1ca","timestamp":{"seconds":1624564793,"nanos":561000000},"willBeRetried":false}} +{"testCaseStarted":{"attempt":0,"testCaseId":"c329bf23-805d-47cd-afb4-dc13989c1c0a","id":"2dc204fd-27ef-4b6d-94eb-75c521ddd190","timestamp":{"seconds":1624564793,"nanos":561000000}}} +{"testStepStarted":{"testCaseStartedId":"2dc204fd-27ef-4b6d-94eb-75c521ddd190","testStepId":"636a250f-2dee-4248-8a53-f721bbfbee1d","timestamp":{"seconds":1624564793,"nanos":561000000}}} +{"testStepFinished":{"testCaseStartedId":"2dc204fd-27ef-4b6d-94eb-75c521ddd190","testStepId":"636a250f-2dee-4248-8a53-f721bbfbee1d","testStepResult":{"duration":{"seconds":0,"nanos":13424},"status":"PASSED"},"timestamp":{"seconds":1624564793,"nanos":561000000}}} +{"testStepStarted":{"testCaseStartedId":"2dc204fd-27ef-4b6d-94eb-75c521ddd190","testStepId":"8eea257e-2bb1-46f2-9236-166697eeb674","timestamp":{"seconds":1624564793,"nanos":561000000}}} +{"testStepFinished":{"testCaseStartedId":"2dc204fd-27ef-4b6d-94eb-75c521ddd190","testStepId":"8eea257e-2bb1-46f2-9236-166697eeb674","testStepResult":{"duration":{"seconds":0,"nanos":14522},"status":"PASSED"},"timestamp":{"seconds":1624564793,"nanos":561000000}}} +{"testStepStarted":{"testCaseStartedId":"2dc204fd-27ef-4b6d-94eb-75c521ddd190","testStepId":"6fd2259b-831b-45cd-adce-8bbdcf50eafb","timestamp":{"seconds":1624564793,"nanos":561000000}}} +{"testStepFinished":{"testCaseStartedId":"2dc204fd-27ef-4b6d-94eb-75c521ddd190","testStepId":"6fd2259b-831b-45cd-adce-8bbdcf50eafb","testStepResult":{"duration":{"seconds":0,"nanos":11224},"status":"PASSED"},"timestamp":{"seconds":1624564793,"nanos":561000000}}} +{"testCaseFinished":{"testCaseStartedId":"2dc204fd-27ef-4b6d-94eb-75c521ddd190","timestamp":{"seconds":1624564793,"nanos":561000000},"willBeRetried":false}} +{"testCaseStarted":{"attempt":0,"testCaseId":"e1dcb77d-2dc6-47c4-82fc-f9eb290be87b","id":"832596f3-b752-42da-b329-e5c99689afdf","timestamp":{"seconds":1624564793,"nanos":561000000}}} +{"testStepStarted":{"testCaseStartedId":"832596f3-b752-42da-b329-e5c99689afdf","testStepId":"67f06bc6-fe6a-4040-aecf-977fb0340a00","timestamp":{"seconds":1624564793,"nanos":561000000}}} +{"testStepFinished":{"testCaseStartedId":"832596f3-b752-42da-b329-e5c99689afdf","testStepId":"67f06bc6-fe6a-4040-aecf-977fb0340a00","testStepResult":{"duration":{"seconds":0,"nanos":9422},"status":"PASSED"},"timestamp":{"seconds":1624564793,"nanos":561000000}}} +{"testStepStarted":{"testCaseStartedId":"832596f3-b752-42da-b329-e5c99689afdf","testStepId":"8814852c-1ddd-4a63-95ff-e42c87b41465","timestamp":{"seconds":1624564793,"nanos":562000000}}} +{"testStepFinished":{"testCaseStartedId":"832596f3-b752-42da-b329-e5c99689afdf","testStepId":"8814852c-1ddd-4a63-95ff-e42c87b41465","testStepResult":{"duration":{"seconds":0,"nanos":6969},"status":"PASSED"},"timestamp":{"seconds":1624564793,"nanos":562000000}}} +{"testStepStarted":{"testCaseStartedId":"832596f3-b752-42da-b329-e5c99689afdf","testStepId":"03983522-ea0e-44b3-9617-09227db0be1c","timestamp":{"seconds":1624564793,"nanos":562000000}}} +{"testStepFinished":{"testCaseStartedId":"832596f3-b752-42da-b329-e5c99689afdf","testStepId":"03983522-ea0e-44b3-9617-09227db0be1c","testStepResult":{"duration":{"seconds":0,"nanos":6204837},"status":"FAILED","message":"Expected values to be strictly equal:\n\n-8 !== 0\n\n at -8 !== 0\n at Object. (features/examples-tables/examples-tables.feature.ts:13:10)\n at Generator.next ()\n at new Promise ()\n at Generator.next ()\n at features/examples-tables/examples-tables.feature:10\n at features/examples-tables/examples-tables.feature:21"},"timestamp":{"seconds":1624564793,"nanos":571000000}}} +{"testCaseFinished":{"testCaseStartedId":"832596f3-b752-42da-b329-e5c99689afdf","timestamp":{"seconds":1624564793,"nanos":571000000},"willBeRetried":false}} +{"testCaseStarted":{"attempt":0,"testCaseId":"fbcb7393-4f87-49b4-af30-84df23c43890","id":"7d4aa877-08b0-4ab2-9f07-9ad5cf2e74d7","timestamp":{"seconds":1624564793,"nanos":571000000}}} +{"testStepStarted":{"testCaseStartedId":"7d4aa877-08b0-4ab2-9f07-9ad5cf2e74d7","testStepId":"1a2ae801-c009-46e9-bb6d-460199a9cfec","timestamp":{"seconds":1624564793,"nanos":571000000}}} +{"testStepFinished":{"testCaseStartedId":"7d4aa877-08b0-4ab2-9f07-9ad5cf2e74d7","testStepId":"1a2ae801-c009-46e9-bb6d-460199a9cfec","testStepResult":{"duration":{"seconds":0,"nanos":18209},"status":"PASSED"},"timestamp":{"seconds":1624564793,"nanos":571000000}}} +{"testStepStarted":{"testCaseStartedId":"7d4aa877-08b0-4ab2-9f07-9ad5cf2e74d7","testStepId":"27a7ee9a-6e3a-455e-bf1f-4358890a6f01","timestamp":{"seconds":1624564793,"nanos":571000000}}} +{"testStepFinished":{"testCaseStartedId":"7d4aa877-08b0-4ab2-9f07-9ad5cf2e74d7","testStepId":"27a7ee9a-6e3a-455e-bf1f-4358890a6f01","testStepResult":{"duration":{"seconds":0,"nanos":9764},"status":"PASSED"},"timestamp":{"seconds":1624564793,"nanos":571000000}}} +{"testStepStarted":{"testCaseStartedId":"7d4aa877-08b0-4ab2-9f07-9ad5cf2e74d7","testStepId":"25bb21d4-347c-4a0f-b21a-6f467aa9feb5","timestamp":{"seconds":1624564793,"nanos":571000000}}} +{"testStepFinished":{"testCaseStartedId":"7d4aa877-08b0-4ab2-9f07-9ad5cf2e74d7","testStepId":"25bb21d4-347c-4a0f-b21a-6f467aa9feb5","testStepResult":{"duration":{"seconds":0,"nanos":510168},"status":"FAILED","message":"Expected values to be strictly equal:\n\n-1 !== 0\n\n at -1 !== 0\n at Object. (features/examples-tables/examples-tables.feature.ts:13:10)\n at Generator.next ()\n at new Promise ()\n at Generator.next ()\n at features/examples-tables/examples-tables.feature:10\n at features/examples-tables/examples-tables.feature:22"},"timestamp":{"seconds":1624564793,"nanos":572000000}}} +{"testCaseFinished":{"testCaseStartedId":"7d4aa877-08b0-4ab2-9f07-9ad5cf2e74d7","timestamp":{"seconds":1624564793,"nanos":572000000},"willBeRetried":false}} +{"testCaseStarted":{"attempt":0,"testCaseId":"2ad58387-d533-4e60-9b87-07001d63929e","id":"1995413e-83e2-4216-9eaf-8aeee40ea376","timestamp":{"seconds":1624564793,"nanos":572000000}}} +{"testStepStarted":{"testCaseStartedId":"1995413e-83e2-4216-9eaf-8aeee40ea376","testStepId":"79cadb6f-1c83-456b-9b8d-7b43704ef07f","timestamp":{"seconds":1624564793,"nanos":573000000}}} +{"testStepFinished":{"testCaseStartedId":"1995413e-83e2-4216-9eaf-8aeee40ea376","testStepId":"79cadb6f-1c83-456b-9b8d-7b43704ef07f","testStepResult":{"duration":{"seconds":0,"nanos":16240},"status":"PASSED"},"timestamp":{"seconds":1624564793,"nanos":573000000}}} +{"testStepStarted":{"testCaseStartedId":"1995413e-83e2-4216-9eaf-8aeee40ea376","testStepId":"32e392be-e887-4eae-96e8-6f2f8febaa4a","timestamp":{"seconds":1624564793,"nanos":573000000}}} +{"testStepFinished":{"testCaseStartedId":"1995413e-83e2-4216-9eaf-8aeee40ea376","testStepId":"32e392be-e887-4eae-96e8-6f2f8febaa4a","testStepResult":{"duration":{"seconds":0,"nanos":0},"status":"UNDEFINED"},"timestamp":{"seconds":1624564793,"nanos":573000000}}} +{"testStepStarted":{"testCaseStartedId":"1995413e-83e2-4216-9eaf-8aeee40ea376","testStepId":"f90e0416-de2f-4262-bc1c-5a0e5d8f7715","timestamp":{"seconds":1624564793,"nanos":573000000}}} +{"testStepFinished":{"testCaseStartedId":"1995413e-83e2-4216-9eaf-8aeee40ea376","testStepId":"f90e0416-de2f-4262-bc1c-5a0e5d8f7715","testStepResult":{"duration":{"seconds":0,"nanos":0},"status":"SKIPPED"},"timestamp":{"seconds":1624564793,"nanos":573000000}}} +{"testCaseFinished":{"testCaseStartedId":"1995413e-83e2-4216-9eaf-8aeee40ea376","timestamp":{"seconds":1624564793,"nanos":573000000},"willBeRetried":false}} +{"testCaseStarted":{"attempt":0,"testCaseId":"baa16c6a-6a64-4133-94d2-0fa1a3dcca2b","id":"a48ec637-99e2-42bb-9fa6-31f6eb1ed386","timestamp":{"seconds":1624564793,"nanos":573000000}}} +{"testStepStarted":{"testCaseStartedId":"a48ec637-99e2-42bb-9fa6-31f6eb1ed386","testStepId":"7832cf3d-8cc5-40d7-bd63-c33b8a0550c7","timestamp":{"seconds":1624564793,"nanos":573000000}}} +{"testStepFinished":{"testCaseStartedId":"a48ec637-99e2-42bb-9fa6-31f6eb1ed386","testStepId":"7832cf3d-8cc5-40d7-bd63-c33b8a0550c7","testStepResult":{"duration":{"seconds":0,"nanos":9654},"status":"PASSED"},"timestamp":{"seconds":1624564793,"nanos":573000000}}} +{"testStepStarted":{"testCaseStartedId":"a48ec637-99e2-42bb-9fa6-31f6eb1ed386","testStepId":"e87d5669-6196-448a-b93d-fa61ddb55695","timestamp":{"seconds":1624564793,"nanos":573000000}}} +{"testStepFinished":{"testCaseStartedId":"a48ec637-99e2-42bb-9fa6-31f6eb1ed386","testStepId":"e87d5669-6196-448a-b93d-fa61ddb55695","testStepResult":{"duration":{"seconds":0,"nanos":8037},"status":"PASSED"},"timestamp":{"seconds":1624564793,"nanos":573000000}}} +{"testStepStarted":{"testCaseStartedId":"a48ec637-99e2-42bb-9fa6-31f6eb1ed386","testStepId":"96ccfae0-90a4-4ef1-88c3-b70f89e44170","timestamp":{"seconds":1624564793,"nanos":573000000}}} +{"testStepFinished":{"testCaseStartedId":"a48ec637-99e2-42bb-9fa6-31f6eb1ed386","testStepId":"96ccfae0-90a4-4ef1-88c3-b70f89e44170","testStepResult":{"duration":{"seconds":0,"nanos":0},"status":"UNDEFINED"},"timestamp":{"seconds":1624564793,"nanos":573000000}}} +{"testCaseFinished":{"testCaseStartedId":"a48ec637-99e2-42bb-9fa6-31f6eb1ed386","timestamp":{"seconds":1624564793,"nanos":573000000},"willBeRetried":false}} +{"testRunFinished":{"timestamp":{"seconds":1624564793,"nanos":573000000},"success":false}} diff --git a/compatibility-kit/javascript/features/hooks/hooks.feature.ndjson b/compatibility-kit/javascript/features/hooks/hooks.feature.ndjson index e0e4eed0f6..25a65ad412 100644 --- a/compatibility-kit/javascript/features/hooks/hooks.feature.ndjson +++ b/compatibility-kit/javascript/features/hooks/hooks.feature.ndjson @@ -1,66 +1,66 @@ -{"meta":{"protocolVersion":"16.0.1","implementation":{"name":"fake-cucumber","version":"12.0.2"},"cpu":{"name":"x64"},"os":{"name":"linux","version":"5.10.25-linuxkit"},"runtime":{"name":"node.js","version":"12.16.2"}}} +{"meta":{"protocolVersion":"16.0.1","implementation":{"name":"fake-cucumber","version":"12.0.2"},"cpu":{"name":"x64"},"os":{"name":"darwin","version":"19.6.0"},"runtime":{"name":"node.js","version":"12.22.1"}}} {"source":{"data":"Feature: Hooks\n Hooks are special steps that run before or after each scenario's steps.\n They can also conditionally target specific scenarios, using tag expressions\n\n Scenario: no tags, passed step\n When a step passes\n\n Scenario: no tags, failed step\n When a step throws an exception\n\n Scenario: no tags, undefined step\n When a step throws an exception\n\n @some-tag\n Scenario: with a tag, passed step\n When a step passes\n\n @with-attachment\n Scenario: with an attachment in the hook\n When a step passes","uri":"features/hooks/hooks.feature","mediaType":"text/x.cucumber.gherkin+plain"}} -{"gherkinDocument":{"feature":{"tags":[],"location":{"line":1,"column":1},"language":"en","keyword":"Feature","name":"Hooks","description":" Hooks are special steps that run before or after each scenario's steps.\n They can also conditionally target specific scenarios, using tag expressions","children":[{"scenario":{"id":"7c27f037-1fb9-451c-b011-1dc63c0bb582","tags":[],"location":{"line":5,"column":3},"keyword":"Scenario","name":"no tags, passed step","description":"","steps":[{"id":"58b36565-6e80-4be3-aa57-42a01e52c844","location":{"line":6,"column":5},"keyword":"When ","text":"a step passes"}],"examples":[]}},{"scenario":{"id":"bab113d5-5d09-4d9d-868a-d1a663b65ac4","tags":[],"location":{"line":8,"column":3},"keyword":"Scenario","name":"no tags, failed step","description":"","steps":[{"id":"86f0c376-21f4-41bd-9e56-152ae206e4bc","location":{"line":9,"column":5},"keyword":"When ","text":"a step throws an exception"}],"examples":[]}},{"scenario":{"id":"96a29179-c4f3-42cf-974b-62b4039eb9e3","tags":[],"location":{"line":11,"column":3},"keyword":"Scenario","name":"no tags, undefined step","description":"","steps":[{"id":"7bf463ba-6eac-4a53-accc-bdc3247cc2a1","location":{"line":12,"column":5},"keyword":"When ","text":"a step throws an exception"}],"examples":[]}},{"scenario":{"id":"e9411110-62a6-40a8-be6b-e1ae0023c44b","tags":[{"location":{"line":14,"column":3},"name":"@some-tag","id":"c7ca01c6-cd54-4869-ba86-1a9b3802d4c3"}],"location":{"line":15,"column":3},"keyword":"Scenario","name":"with a tag, passed step","description":"","steps":[{"id":"0f032430-cbd1-462e-bcac-498090ff6313","location":{"line":16,"column":5},"keyword":"When ","text":"a step passes"}],"examples":[]}},{"scenario":{"id":"2387607e-0184-4d50-8928-5a11f2fcc39c","tags":[{"location":{"line":18,"column":3},"name":"@with-attachment","id":"aabce136-e7f5-4f6c-9dee-e13b5e8e0773"}],"location":{"line":19,"column":3},"keyword":"Scenario","name":"with an attachment in the hook","description":"","steps":[{"id":"c3535b94-41c4-4f30-b262-35a7cc040e74","location":{"line":20,"column":5},"keyword":"When ","text":"a step passes"}],"examples":[]}}]},"comments":[],"uri":"features/hooks/hooks.feature"}} -{"pickle":{"id":"a30b01d3-fe44-4761-8412-2321f3024fbf","uri":"features/hooks/hooks.feature","astNodeIds":["7c27f037-1fb9-451c-b011-1dc63c0bb582"],"tags":[],"name":"no tags, passed step","language":"en","steps":[{"id":"9c6f9dff-5b04-48af-bab5-af31e04ea6bc","text":"a step passes","astNodeIds":["58b36565-6e80-4be3-aa57-42a01e52c844"]}]}} -{"pickle":{"id":"b8be8b1a-b2ea-403c-9cda-98219d903a5b","uri":"features/hooks/hooks.feature","astNodeIds":["bab113d5-5d09-4d9d-868a-d1a663b65ac4"],"tags":[],"name":"no tags, failed step","language":"en","steps":[{"id":"142889df-fc1b-4150-a3f0-fe3f43398bc0","text":"a step throws an exception","astNodeIds":["86f0c376-21f4-41bd-9e56-152ae206e4bc"]}]}} -{"pickle":{"id":"52bec7e4-9ae4-4409-a967-a1ca2c425890","uri":"features/hooks/hooks.feature","astNodeIds":["96a29179-c4f3-42cf-974b-62b4039eb9e3"],"tags":[],"name":"no tags, undefined step","language":"en","steps":[{"id":"dfce2f9a-6d49-43ae-9975-76cabef574d4","text":"a step throws an exception","astNodeIds":["7bf463ba-6eac-4a53-accc-bdc3247cc2a1"]}]}} -{"pickle":{"id":"5a699305-1c28-4bcf-9496-8b98e68d6c55","uri":"features/hooks/hooks.feature","astNodeIds":["e9411110-62a6-40a8-be6b-e1ae0023c44b"],"tags":[{"name":"@some-tag","astNodeId":"c7ca01c6-cd54-4869-ba86-1a9b3802d4c3"}],"name":"with a tag, passed step","language":"en","steps":[{"id":"c2f2a93f-4180-4439-93f1-d53aa66f09d9","text":"a step passes","astNodeIds":["0f032430-cbd1-462e-bcac-498090ff6313"]}]}} -{"pickle":{"id":"46f8848b-826f-4e65-b613-7aebfa97b485","uri":"features/hooks/hooks.feature","astNodeIds":["2387607e-0184-4d50-8928-5a11f2fcc39c"],"tags":[{"name":"@with-attachment","astNodeId":"aabce136-e7f5-4f6c-9dee-e13b5e8e0773"}],"name":"with an attachment in the hook","language":"en","steps":[{"id":"a1922df0-3abb-4ca8-b6f0-f5b280fe5b26","text":"a step passes","astNodeIds":["c3535b94-41c4-4f30-b262-35a7cc040e74"]}]}} -{"stepDefinition":{"id":"584701b0-c884-4125-99a6-0ae612bdae17","pattern":{"type":"CUCUMBER_EXPRESSION","source":"a step passes"},"sourceReference":{"uri":"features/hooks/hooks.feature.ts","location":{"line":8}}}} -{"stepDefinition":{"id":"5a6ca727-dd89-46e0-9e40-26d9f72768c6","pattern":{"type":"CUCUMBER_EXPRESSION","source":"a step throws an exception"},"sourceReference":{"uri":"features/hooks/hooks.feature.ts","location":{"line":12}}}} -{"hook":{"id":"d67393b5-1cb3-407d-a559-b272c7a42634","sourceReference":{"uri":"features/hooks/hooks.feature.ts","location":{"line":4}}}} -{"hook":{"id":"6859d79b-7767-49e7-8a7a-1d3db93e8113","sourceReference":{"uri":"features/hooks/hooks.feature.ts","location":{"line":16}}}} -{"hook":{"id":"8bb68d8d-3ed3-4c9b-990f-72259e8a92c3","sourceReference":{"uri":"features/hooks/hooks.feature.ts","location":{"line":20}},"tagExpression":"@some-tag or @some-other-tag"}} -{"hook":{"id":"5730b2c9-30c4-4d42-b32e-817678dbe499","sourceReference":{"uri":"features/hooks/hooks.feature.ts","location":{"line":24}},"tagExpression":"@with-attachment"}} -{"testRunStarted":{"timestamp":{"seconds":1623962939,"nanos":176000000}}} -{"testCase":{"id":"b6fc066b-34aa-4e80-9422-84a79efbcde3","pickleId":"a30b01d3-fe44-4761-8412-2321f3024fbf","testSteps":[{"id":"fa58b0e5-cb38-4c93-a57c-6c5475e4a9dc","hookId":"d67393b5-1cb3-407d-a559-b272c7a42634"},{"id":"e33d4f34-d0fe-496a-ad26-63a44f35f986","pickleStepId":"9c6f9dff-5b04-48af-bab5-af31e04ea6bc","stepDefinitionIds":["584701b0-c884-4125-99a6-0ae612bdae17"],"stepMatchArgumentsLists":[{"stepMatchArguments":[]}]},{"id":"59428931-dc7a-40f0-b8d6-5c9c4ebd2490","hookId":"6859d79b-7767-49e7-8a7a-1d3db93e8113"}]}} -{"testCase":{"id":"4a86cd61-e0db-45dd-bdbf-5281553cdccf","pickleId":"b8be8b1a-b2ea-403c-9cda-98219d903a5b","testSteps":[{"id":"46caed39-0877-4331-91e2-1685415d2c8b","hookId":"d67393b5-1cb3-407d-a559-b272c7a42634"},{"id":"7b774b49-547b-46f4-8964-d4c643ac03bd","pickleStepId":"142889df-fc1b-4150-a3f0-fe3f43398bc0","stepDefinitionIds":["5a6ca727-dd89-46e0-9e40-26d9f72768c6"],"stepMatchArgumentsLists":[{"stepMatchArguments":[]}]},{"id":"51cf57d6-2649-4620-99f0-f04b81ad4767","hookId":"6859d79b-7767-49e7-8a7a-1d3db93e8113"}]}} -{"testCase":{"id":"c0f8d903-3437-4d85-801c-5ec7d69a2dfc","pickleId":"52bec7e4-9ae4-4409-a967-a1ca2c425890","testSteps":[{"id":"38dfcf4b-ecc2-4ee1-bbb9-a9da75bbc429","hookId":"d67393b5-1cb3-407d-a559-b272c7a42634"},{"id":"b353b17d-c0ad-439d-9b1d-38400d837e4a","pickleStepId":"dfce2f9a-6d49-43ae-9975-76cabef574d4","stepDefinitionIds":["5a6ca727-dd89-46e0-9e40-26d9f72768c6"],"stepMatchArgumentsLists":[{"stepMatchArguments":[]}]},{"id":"a8b4f013-eef2-4520-a1bc-73615032df96","hookId":"6859d79b-7767-49e7-8a7a-1d3db93e8113"}]}} -{"testCase":{"id":"515fc234-dccb-4a83-ae04-d487ab1e7df7","pickleId":"5a699305-1c28-4bcf-9496-8b98e68d6c55","testSteps":[{"id":"698ac00e-e36f-4f61-ab04-ffbbfe697acd","hookId":"d67393b5-1cb3-407d-a559-b272c7a42634"},{"id":"038b8010-b345-4d53-89d8-c60326d1de23","pickleStepId":"c2f2a93f-4180-4439-93f1-d53aa66f09d9","stepDefinitionIds":["584701b0-c884-4125-99a6-0ae612bdae17"],"stepMatchArgumentsLists":[{"stepMatchArguments":[]}]},{"id":"db6b090b-c798-48dc-abbb-fe0899f5accd","hookId":"8bb68d8d-3ed3-4c9b-990f-72259e8a92c3"},{"id":"c54388b9-2f0c-4090-a298-2d5c12382951","hookId":"6859d79b-7767-49e7-8a7a-1d3db93e8113"}]}} -{"testCase":{"id":"8af5dbe3-5bd3-47f7-a0e1-a5bb46884d24","pickleId":"46f8848b-826f-4e65-b613-7aebfa97b485","testSteps":[{"id":"faa2bdff-6fda-454a-93cf-cfc2b4d6482d","hookId":"d67393b5-1cb3-407d-a559-b272c7a42634"},{"id":"59682386-ce89-48b9-815a-d4620eb6be4c","pickleStepId":"a1922df0-3abb-4ca8-b6f0-f5b280fe5b26","stepDefinitionIds":["584701b0-c884-4125-99a6-0ae612bdae17"],"stepMatchArgumentsLists":[{"stepMatchArguments":[]}]},{"id":"042e0cf5-7aae-457e-9572-004fc827663b","hookId":"5730b2c9-30c4-4d42-b32e-817678dbe499"},{"id":"2f4ad29a-4da3-4b82-ad3b-b5b61cddbfa6","hookId":"6859d79b-7767-49e7-8a7a-1d3db93e8113"}]}} -{"testCaseStarted":{"attempt":0,"testCaseId":"b6fc066b-34aa-4e80-9422-84a79efbcde3","id":"36a1cad7-00e0-4f5c-8c5c-9789e60684c8","timestamp":{"seconds":1623962939,"nanos":180000000}}} -{"testStepStarted":{"testCaseStartedId":"36a1cad7-00e0-4f5c-8c5c-9789e60684c8","testStepId":"fa58b0e5-cb38-4c93-a57c-6c5475e4a9dc","timestamp":{"seconds":1623962939,"nanos":181000000}}} -{"testStepFinished":{"testCaseStartedId":"36a1cad7-00e0-4f5c-8c5c-9789e60684c8","testStepId":"fa58b0e5-cb38-4c93-a57c-6c5475e4a9dc","testStepResult":{"duration":{"seconds":0,"nanos":633799},"status":"PASSED","willBeRetried":false},"timestamp":{"seconds":1623962939,"nanos":182000000}}} -{"testStepStarted":{"testCaseStartedId":"36a1cad7-00e0-4f5c-8c5c-9789e60684c8","testStepId":"e33d4f34-d0fe-496a-ad26-63a44f35f986","timestamp":{"seconds":1623962939,"nanos":183000000}}} -{"testStepFinished":{"testCaseStartedId":"36a1cad7-00e0-4f5c-8c5c-9789e60684c8","testStepId":"e33d4f34-d0fe-496a-ad26-63a44f35f986","testStepResult":{"duration":{"seconds":0,"nanos":66900},"status":"PASSED","willBeRetried":false},"timestamp":{"seconds":1623962939,"nanos":184000000}}} -{"testStepStarted":{"testCaseStartedId":"36a1cad7-00e0-4f5c-8c5c-9789e60684c8","testStepId":"59428931-dc7a-40f0-b8d6-5c9c4ebd2490","timestamp":{"seconds":1623962939,"nanos":184000000}}} -{"testStepFinished":{"testCaseStartedId":"36a1cad7-00e0-4f5c-8c5c-9789e60684c8","testStepId":"59428931-dc7a-40f0-b8d6-5c9c4ebd2490","testStepResult":{"duration":{"seconds":0,"nanos":94199},"status":"FAILED","willBeRetried":false,"message":"Exception in hook\n at Object. (features/hooks/hooks.feature.ts:17:9)\n at Generator.next ()\n at new Promise ()\n at Generator.next ()\n at features/hooks/hooks.feature:5"},"timestamp":{"seconds":1623962939,"nanos":222000000}}} -{"testCaseFinished":{"testCaseStartedId":"36a1cad7-00e0-4f5c-8c5c-9789e60684c8","timestamp":{"seconds":1623962939,"nanos":223000000}}} -{"testCaseStarted":{"attempt":0,"testCaseId":"4a86cd61-e0db-45dd-bdbf-5281553cdccf","id":"a3493550-2f3c-4364-9755-78732ba7b0fe","timestamp":{"seconds":1623962939,"nanos":224000000}}} -{"testStepStarted":{"testCaseStartedId":"a3493550-2f3c-4364-9755-78732ba7b0fe","testStepId":"46caed39-0877-4331-91e2-1685415d2c8b","timestamp":{"seconds":1623962939,"nanos":225000000}}} -{"testStepFinished":{"testCaseStartedId":"a3493550-2f3c-4364-9755-78732ba7b0fe","testStepId":"46caed39-0877-4331-91e2-1685415d2c8b","testStepResult":{"duration":{"seconds":0,"nanos":50000},"status":"PASSED","willBeRetried":false},"timestamp":{"seconds":1623962939,"nanos":225000000}}} -{"testStepStarted":{"testCaseStartedId":"a3493550-2f3c-4364-9755-78732ba7b0fe","testStepId":"7b774b49-547b-46f4-8964-d4c643ac03bd","timestamp":{"seconds":1623962939,"nanos":226000000}}} -{"testStepFinished":{"testCaseStartedId":"a3493550-2f3c-4364-9755-78732ba7b0fe","testStepId":"7b774b49-547b-46f4-8964-d4c643ac03bd","testStepResult":{"duration":{"seconds":0,"nanos":85500},"status":"FAILED","willBeRetried":false,"message":"Exception in step\n at Object. (features/hooks/hooks.feature.ts:13:9)\n at Generator.next ()\n at new Promise ()\n at Generator.next ()\n at features/hooks/hooks.feature:9"},"timestamp":{"seconds":1623962939,"nanos":227000000}}} -{"testStepStarted":{"testCaseStartedId":"a3493550-2f3c-4364-9755-78732ba7b0fe","testStepId":"51cf57d6-2649-4620-99f0-f04b81ad4767","timestamp":{"seconds":1623962939,"nanos":228000000}}} -{"testStepFinished":{"testCaseStartedId":"a3493550-2f3c-4364-9755-78732ba7b0fe","testStepId":"51cf57d6-2649-4620-99f0-f04b81ad4767","testStepResult":{"duration":{"seconds":0,"nanos":34600},"status":"FAILED","willBeRetried":false,"message":"Exception in hook\n at Object. (features/hooks/hooks.feature.ts:17:9)\n at Generator.next ()\n at new Promise ()\n at Generator.next ()\n at features/hooks/hooks.feature:8"},"timestamp":{"seconds":1623962939,"nanos":229000000}}} -{"testCaseFinished":{"testCaseStartedId":"a3493550-2f3c-4364-9755-78732ba7b0fe","timestamp":{"seconds":1623962939,"nanos":229000000}}} -{"testCaseStarted":{"attempt":0,"testCaseId":"c0f8d903-3437-4d85-801c-5ec7d69a2dfc","id":"e2292f54-1490-432b-bbb1-7add4399bd0c","timestamp":{"seconds":1623962939,"nanos":230000000}}} -{"testStepStarted":{"testCaseStartedId":"e2292f54-1490-432b-bbb1-7add4399bd0c","testStepId":"38dfcf4b-ecc2-4ee1-bbb9-a9da75bbc429","timestamp":{"seconds":1623962939,"nanos":230000000}}} -{"testStepFinished":{"testCaseStartedId":"e2292f54-1490-432b-bbb1-7add4399bd0c","testStepId":"38dfcf4b-ecc2-4ee1-bbb9-a9da75bbc429","testStepResult":{"duration":{"seconds":0,"nanos":18900},"status":"PASSED","willBeRetried":false},"timestamp":{"seconds":1623962939,"nanos":231000000}}} -{"testStepStarted":{"testCaseStartedId":"e2292f54-1490-432b-bbb1-7add4399bd0c","testStepId":"b353b17d-c0ad-439d-9b1d-38400d837e4a","timestamp":{"seconds":1623962939,"nanos":231000000}}} -{"testStepFinished":{"testCaseStartedId":"e2292f54-1490-432b-bbb1-7add4399bd0c","testStepId":"b353b17d-c0ad-439d-9b1d-38400d837e4a","testStepResult":{"duration":{"seconds":0,"nanos":28400},"status":"FAILED","willBeRetried":false,"message":"Exception in step\n at Object. (features/hooks/hooks.feature.ts:13:9)\n at Generator.next ()\n at new Promise ()\n at Generator.next ()\n at features/hooks/hooks.feature:12"},"timestamp":{"seconds":1623962939,"nanos":232000000}}} -{"testStepStarted":{"testCaseStartedId":"e2292f54-1490-432b-bbb1-7add4399bd0c","testStepId":"a8b4f013-eef2-4520-a1bc-73615032df96","timestamp":{"seconds":1623962939,"nanos":233000000}}} -{"testStepFinished":{"testCaseStartedId":"e2292f54-1490-432b-bbb1-7add4399bd0c","testStepId":"a8b4f013-eef2-4520-a1bc-73615032df96","testStepResult":{"duration":{"seconds":0,"nanos":22100},"status":"FAILED","willBeRetried":false,"message":"Exception in hook\n at Object. (features/hooks/hooks.feature.ts:17:9)\n at Generator.next ()\n at new Promise ()\n at Generator.next ()\n at features/hooks/hooks.feature:11"},"timestamp":{"seconds":1623962939,"nanos":234000000}}} -{"testCaseFinished":{"testCaseStartedId":"e2292f54-1490-432b-bbb1-7add4399bd0c","timestamp":{"seconds":1623962939,"nanos":234000000}}} -{"testCaseStarted":{"attempt":0,"testCaseId":"515fc234-dccb-4a83-ae04-d487ab1e7df7","id":"4a196d7a-748c-4c4f-8695-1c78b83281d9","timestamp":{"seconds":1623962939,"nanos":235000000}}} -{"testStepStarted":{"testCaseStartedId":"4a196d7a-748c-4c4f-8695-1c78b83281d9","testStepId":"698ac00e-e36f-4f61-ab04-ffbbfe697acd","timestamp":{"seconds":1623962939,"nanos":235000000}}} -{"testStepFinished":{"testCaseStartedId":"4a196d7a-748c-4c4f-8695-1c78b83281d9","testStepId":"698ac00e-e36f-4f61-ab04-ffbbfe697acd","testStepResult":{"duration":{"seconds":0,"nanos":18400},"status":"PASSED","willBeRetried":false},"timestamp":{"seconds":1623962939,"nanos":236000000}}} -{"testStepStarted":{"testCaseStartedId":"4a196d7a-748c-4c4f-8695-1c78b83281d9","testStepId":"038b8010-b345-4d53-89d8-c60326d1de23","timestamp":{"seconds":1623962939,"nanos":236000000}}} -{"testStepFinished":{"testCaseStartedId":"4a196d7a-748c-4c4f-8695-1c78b83281d9","testStepId":"038b8010-b345-4d53-89d8-c60326d1de23","testStepResult":{"duration":{"seconds":0,"nanos":22599},"status":"PASSED","willBeRetried":false},"timestamp":{"seconds":1623962939,"nanos":237000000}}} -{"testStepStarted":{"testCaseStartedId":"4a196d7a-748c-4c4f-8695-1c78b83281d9","testStepId":"db6b090b-c798-48dc-abbb-fe0899f5accd","timestamp":{"seconds":1623962939,"nanos":237000000}}} -{"testStepFinished":{"testCaseStartedId":"4a196d7a-748c-4c4f-8695-1c78b83281d9","testStepId":"db6b090b-c798-48dc-abbb-fe0899f5accd","testStepResult":{"duration":{"seconds":0,"nanos":82000},"status":"FAILED","willBeRetried":false,"message":"Exception in conditional hook\n at Object. (features/hooks/hooks.feature.ts:21:9)\n at Generator.next ()\n at new Promise ()\n at Generator.next ()\n at features/hooks/hooks.feature:15"},"timestamp":{"seconds":1623962939,"nanos":238000000}}} -{"testStepStarted":{"testCaseStartedId":"4a196d7a-748c-4c4f-8695-1c78b83281d9","testStepId":"c54388b9-2f0c-4090-a298-2d5c12382951","timestamp":{"seconds":1623962939,"nanos":239000000}}} -{"testStepFinished":{"testCaseStartedId":"4a196d7a-748c-4c4f-8695-1c78b83281d9","testStepId":"c54388b9-2f0c-4090-a298-2d5c12382951","testStepResult":{"duration":{"seconds":0,"nanos":25499},"status":"FAILED","willBeRetried":false,"message":"Exception in hook\n at Object. (features/hooks/hooks.feature.ts:17:9)\n at Generator.next ()\n at new Promise ()\n at Generator.next ()\n at features/hooks/hooks.feature:15"},"timestamp":{"seconds":1623962939,"nanos":240000000}}} -{"testCaseFinished":{"testCaseStartedId":"4a196d7a-748c-4c4f-8695-1c78b83281d9","timestamp":{"seconds":1623962939,"nanos":241000000}}} -{"testCaseStarted":{"attempt":0,"testCaseId":"8af5dbe3-5bd3-47f7-a0e1-a5bb46884d24","id":"a17b8527-df8b-490c-ab67-a1e0d3337c89","timestamp":{"seconds":1623962939,"nanos":242000000}}} -{"testStepStarted":{"testCaseStartedId":"a17b8527-df8b-490c-ab67-a1e0d3337c89","testStepId":"faa2bdff-6fda-454a-93cf-cfc2b4d6482d","timestamp":{"seconds":1623962939,"nanos":242000000}}} -{"testStepFinished":{"testCaseStartedId":"a17b8527-df8b-490c-ab67-a1e0d3337c89","testStepId":"faa2bdff-6fda-454a-93cf-cfc2b4d6482d","testStepResult":{"duration":{"seconds":0,"nanos":17100},"status":"PASSED","willBeRetried":false},"timestamp":{"seconds":1623962939,"nanos":243000000}}} -{"testStepStarted":{"testCaseStartedId":"a17b8527-df8b-490c-ab67-a1e0d3337c89","testStepId":"59682386-ce89-48b9-815a-d4620eb6be4c","timestamp":{"seconds":1623962939,"nanos":243000000}}} -{"testStepFinished":{"testCaseStartedId":"a17b8527-df8b-490c-ab67-a1e0d3337c89","testStepId":"59682386-ce89-48b9-815a-d4620eb6be4c","testStepResult":{"duration":{"seconds":0,"nanos":14200},"status":"PASSED","willBeRetried":false},"timestamp":{"seconds":1623962939,"nanos":244000000}}} -{"testStepStarted":{"testCaseStartedId":"a17b8527-df8b-490c-ab67-a1e0d3337c89","testStepId":"042e0cf5-7aae-457e-9572-004fc827663b","timestamp":{"seconds":1623962939,"nanos":244000000}}} -{"attachment":{"testStepId":"042e0cf5-7aae-457e-9572-004fc827663b","testCaseStartedId":"a17b8527-df8b-490c-ab67-a1e0d3337c89","mediaType":"image/svg+xml","body":"PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGNsYXNzPSJtbC0zIG1sLW1kLTAiIHZpZXdCb3g9IjAgMCA0MC41OSA0Ni4zMSIgd2lkdGg9IjQwLjU5IiBoZWlnaHQ9IjQ2LjMxIj4KICAgIDxnPgogICAgICAgIDxwYXRoIGZpbGw9IiMyM2Q5NmMiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTMwLjI4MyAzLjY0NXEtLjUyOC0uMzE3LTEuMDgtLjU5M2ExNi4xNjQgMTYuMTY0IDAgMDAtMS4xNTQtLjUxOGMtLjEyNC0uMDUyLS4yNDctLjEtLjM3Mi0uMTQ5LS4zNDMtLjEyNy0uNjg5LS4yNjgtMS4wNDItLjM3MWExOS40MjcgMTkuNDI3IDAgMTAtOS43OTIgMzcuNTF2NS41NmMxMS42NzYtMS43NTMgMjIuMDE2LTEwLjk3OSAyMi43ODctMjMuMDkzLjQ1OS03LjI4OS0zLjE5My0xNC43My05LjM0Ny0xOC4zNDZ6Ii8+CiAgICAgICAgPHBhdGggZmlsbD0iIzE3MzY0NyIgZD0iTTE1Ljc4NyA0Ni4zMDd2LTUuOTM1QTIwLjQ3MiAyMC40NzIgMCAxMTI2Ljk1OSAxLjAxNWMuMjc0LjA4LjU1Ny4xODcuODMyLjI5MWwuMjQ4LjA5M2MuMTY1LjA2NC4yOTEuMTEzLjQxNy4xNjcuMzQ4LjEzNy43MzkuMzEzIDEuMjA4LjU0M3EuNTg5LjI5NSAxLjE1My42MzNjNi4zOTMgMy43NTYgMTAuMzU0IDExLjUxOCA5Ljg1NyAxOS4zMTYtLjc2MyAxMi0xMC43MjIgMjIuMTIyLTIzLjY3OSAyNC4wNjd6bTQuOC00NC4yMTRoLS4wMjZhMTguMzY2IDE4LjM2NiAwIDAwLTMuNTI0IDM2LjQwOGwuODUuMTY1djUuMThjMTEuMzkyLTIuMjI0IDIwLjAwOS0xMS4yNzIgMjAuNjg2LTIxLjkyMi40NDgtNy4wMzMtMy4xLTE0LjAxOC04LjgzLTE3LjM4M2wtLjAwOC0uMDA1QTE0LjY5MSAxNC42OTEgMCAwMDI3LjY1NCAzLjVhNS43NCA1Ljc0IDAgMDAtLjM0NC0uMTM4bC0uMjctLjFhOS40OSA5LjQ5IDAgMDAtLjcwOC0uMjQ5IDE4LjQyNSAxOC40MjUgMCAwMC01Ljc0My0uOTJ6Ii8+CiAgICAgICAgPHBhdGggZmlsbD0iIzE3MzY0NyIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMTYuNjY2IDEwLjU4YTEuOCAxLjggMCAwMTEuNTgzLjYwOCA0LjE4NCA0LjE4NCAwIDAxLjcyOCAxLjEwN2MuNjQ1IDEuNDIyIDEuMDI3IDMuNDYxLjIzIDQuNjA1YTYuMzM0IDYuMzM0IDAgMDEtMy45ODEtMy4wODcgMy4yMzYgMy4yMzYgMCAwMS0uMzQ3LTEuMzM5IDEuOTU3IDEuOTU3IDAgMDExLjc4Ny0xLjg5NHptLTUuNjgzIDguMDI1YTcuNzQyIDcuNzQyIDAgMDAxLjIxOC43MzcgNS43ODkgNS43ODkgMCAwMDQuODgzLS4xMzggNi4xMTYgNi4xMTYgMCAwMC0zLjM0NS0zLjQ1IDMuNjY0IDMuNjY0IDAgMDAtMS40NDItLjMyMSAxLjg4NCAxLjg4NCAwIDAwLS4zMTkgMCAxLjc2NiAxLjc2NiAwIDAwLS45OTUgMy4xNzJ6bTYuMSAzLjQzM2MtLjc3Ny0uNTE4LTIuMzc5LS4zMDktMy4zMTItLjI5MmE0LjQxNiA0LjQxNiAwIDAwLTEuNjY2LjM1MiAzLjUgMy41IDAgMDAtMS4yMTguNzM4IDEuODE3IDEuODE3IDAgMDAxLjQwOSAzLjE3MSAzLjMgMy4zIDAgMDAxLjQ0Mi0uMzIxYzEuNDM2LS42MiAzLjE0MS0yLjMyIDMuMzQ2LTMuNjQ4em0yLjYxIDJhNi41NTYgNi41NTYgMCAwMC0zLjcyNCAzLjUwNiAzLjA5MSAzLjA5MSAwIDAwLS4zMjEgMS4zMTQgMS45MDcgMS45MDcgMCAwMDMuMyAxLjM0NiA3LjQyMiA3LjQyMiAwIDAwLjctMS4yMThjLjYyMS0xLjMzMy44NjYtMy43Mi4wNDYtNC45NDh6bTIuNTU3LTcuMTY3YTUuOTQxIDUuOTQxIDAgMDAzLjctMy4xNjcgMy4yNDMgMy4yNDMgMCAwMC4zMTktMS4zNDYgMS45MTUgMS45MTUgMCAwMC0xLjc5NC0xLjk1NCAxLjgzMiAxLjgzMiAwIDAwLTEuNi42NDEgNy4zODIgNy4zODIgMCAwMC0uNzA1IDEuMjE4Yy0uNjIgMS40MzQtLjg0MiAzLjQ4LjA4MSA0LjYwM3ptNC4yMDggMTIuMTE1YTMuMjQ0IDMuMjQ0IDAgMDAtLjMyMS0xLjM0NSA1Ljg2OSA1Ljg2OSAwIDAwLTMuNTU0LTMuMjY5IDUuMzg2IDUuMzg2IDAgMDAtLjIyNiA0LjcxMSA0LjE0NyA0LjE0NyAwIDAwLjcgMS4xMjFjMS4xMzMgMS4yMyAzLjUwNS4zMiAzLjQwMi0xLjIxOHptNC4yLTYuMjhhNy40NjYgNy40NjYgMCAwMC0xLjIxNy0uNyA0LjQyNSA0LjQyNSAwIDAwLTEuNjY2LS4zNTIgNi40IDYuNCAwIDAwLTMuMTg4LjU1NSA1Ljk1OSA1Ljk1OSAwIDAwMy4zMTYgMy4zODYgMy42NzIgMy42NzIgMCAwMDEuNDQyLjMyIDEuOCAxLjggMCAwMDEuMzEtMy4yMDl6Ii8+CiAgICA8L2c+Cjwvc3ZnPg==","contentEncoding":"BASE64"}} -{"testStepFinished":{"testCaseStartedId":"a17b8527-df8b-490c-ab67-a1e0d3337c89","testStepId":"042e0cf5-7aae-457e-9572-004fc827663b","testStepResult":{"duration":{"seconds":0,"nanos":14187000},"status":"PASSED","willBeRetried":false},"timestamp":{"seconds":1623962939,"nanos":259000000}}} -{"testStepStarted":{"testCaseStartedId":"a17b8527-df8b-490c-ab67-a1e0d3337c89","testStepId":"2f4ad29a-4da3-4b82-ad3b-b5b61cddbfa6","timestamp":{"seconds":1623962939,"nanos":259000000}}} -{"testStepFinished":{"testCaseStartedId":"a17b8527-df8b-490c-ab67-a1e0d3337c89","testStepId":"2f4ad29a-4da3-4b82-ad3b-b5b61cddbfa6","testStepResult":{"duration":{"seconds":0,"nanos":27999},"status":"FAILED","willBeRetried":false,"message":"Exception in hook\n at Object. (features/hooks/hooks.feature.ts:17:9)\n at Generator.next ()\n at new Promise ()\n at Generator.next ()\n at features/hooks/hooks.feature:19"},"timestamp":{"seconds":1623962939,"nanos":260000000}}} -{"testCaseFinished":{"testCaseStartedId":"a17b8527-df8b-490c-ab67-a1e0d3337c89","timestamp":{"seconds":1623962939,"nanos":261000000}}} -{"testRunFinished":{"timestamp":{"seconds":1623962939,"nanos":261000000},"success":false}} +{"gherkinDocument":{"feature":{"tags":[],"location":{"line":1,"column":1},"language":"en","keyword":"Feature","name":"Hooks","description":" Hooks are special steps that run before or after each scenario's steps.\n They can also conditionally target specific scenarios, using tag expressions","children":[{"scenario":{"id":"97321fbb-6254-4739-88d1-2b61bfdcd57c","tags":[],"location":{"line":5,"column":3},"keyword":"Scenario","name":"no tags, passed step","description":"","steps":[{"id":"2679b3d8-1561-47de-a9cb-19abf32664b3","location":{"line":6,"column":5},"keyword":"When ","text":"a step passes"}],"examples":[]}},{"scenario":{"id":"267de11a-4888-4431-b6dc-667ad163ec36","tags":[],"location":{"line":8,"column":3},"keyword":"Scenario","name":"no tags, failed step","description":"","steps":[{"id":"2c7fe58c-dee5-4b45-92a1-bdca3b74e96e","location":{"line":9,"column":5},"keyword":"When ","text":"a step throws an exception"}],"examples":[]}},{"scenario":{"id":"8fb28b43-682b-4fa0-88d1-ea6f1fe832e8","tags":[],"location":{"line":11,"column":3},"keyword":"Scenario","name":"no tags, undefined step","description":"","steps":[{"id":"992870af-6f45-453c-a0a2-72d38c8701b2","location":{"line":12,"column":5},"keyword":"When ","text":"a step throws an exception"}],"examples":[]}},{"scenario":{"id":"ef35e5f7-e498-4ac7-8a02-d5a58102d2ac","tags":[{"location":{"line":14,"column":3},"name":"@some-tag","id":"d2a10451-94f4-43d4-9884-a68501a41b35"}],"location":{"line":15,"column":3},"keyword":"Scenario","name":"with a tag, passed step","description":"","steps":[{"id":"6cb2dab8-b62a-4371-93b1-6dd19505cdf5","location":{"line":16,"column":5},"keyword":"When ","text":"a step passes"}],"examples":[]}},{"scenario":{"id":"6387c220-932d-4113-a306-3ce547dbf38b","tags":[{"location":{"line":18,"column":3},"name":"@with-attachment","id":"6129f1e0-25ff-4ead-b5a2-1d83192501a7"}],"location":{"line":19,"column":3},"keyword":"Scenario","name":"with an attachment in the hook","description":"","steps":[{"id":"2c99deff-52af-4a6e-ab17-7b0bfbb9aeaf","location":{"line":20,"column":5},"keyword":"When ","text":"a step passes"}],"examples":[]}}]},"comments":[],"uri":"features/hooks/hooks.feature"}} +{"pickle":{"id":"106547fd-ab8b-426f-bdab-3acc41957883","uri":"features/hooks/hooks.feature","astNodeIds":["97321fbb-6254-4739-88d1-2b61bfdcd57c"],"tags":[],"name":"no tags, passed step","language":"en","steps":[{"id":"661785f5-43aa-48ca-8d22-454dd74ab3db","text":"a step passes","astNodeIds":["2679b3d8-1561-47de-a9cb-19abf32664b3"]}]}} +{"pickle":{"id":"c420f6b3-4537-45ea-bd39-1a9c92e2dd0b","uri":"features/hooks/hooks.feature","astNodeIds":["267de11a-4888-4431-b6dc-667ad163ec36"],"tags":[],"name":"no tags, failed step","language":"en","steps":[{"id":"81f9da55-061a-4e8f-85d4-fab6f67cd8bc","text":"a step throws an exception","astNodeIds":["2c7fe58c-dee5-4b45-92a1-bdca3b74e96e"]}]}} +{"pickle":{"id":"245b62a0-ca88-44a2-9b8e-c3cb240a7418","uri":"features/hooks/hooks.feature","astNodeIds":["8fb28b43-682b-4fa0-88d1-ea6f1fe832e8"],"tags":[],"name":"no tags, undefined step","language":"en","steps":[{"id":"42607bae-a05b-43bd-a5d2-5688a37441a8","text":"a step throws an exception","astNodeIds":["992870af-6f45-453c-a0a2-72d38c8701b2"]}]}} +{"pickle":{"id":"f8d6178b-cdf5-4b04-8e6e-5f9208da73e0","uri":"features/hooks/hooks.feature","astNodeIds":["ef35e5f7-e498-4ac7-8a02-d5a58102d2ac"],"tags":[{"name":"@some-tag","astNodeId":"d2a10451-94f4-43d4-9884-a68501a41b35"}],"name":"with a tag, passed step","language":"en","steps":[{"id":"880eebd4-97c8-43a4-8067-34b135cb44c6","text":"a step passes","astNodeIds":["6cb2dab8-b62a-4371-93b1-6dd19505cdf5"]}]}} +{"pickle":{"id":"b8abb04a-c787-4557-b207-de760580babd","uri":"features/hooks/hooks.feature","astNodeIds":["6387c220-932d-4113-a306-3ce547dbf38b"],"tags":[{"name":"@with-attachment","astNodeId":"6129f1e0-25ff-4ead-b5a2-1d83192501a7"}],"name":"with an attachment in the hook","language":"en","steps":[{"id":"0a593619-92cb-4377-84ca-f9444908a03f","text":"a step passes","astNodeIds":["2c99deff-52af-4a6e-ab17-7b0bfbb9aeaf"]}]}} +{"stepDefinition":{"id":"16c6e088-7192-40fe-8205-53e32b823b07","pattern":{"type":"CUCUMBER_EXPRESSION","source":"a step passes"},"sourceReference":{"uri":"features/hooks/hooks.feature.ts","location":{"line":8}}}} +{"stepDefinition":{"id":"52609f80-f042-4036-8285-1b975d95a618","pattern":{"type":"CUCUMBER_EXPRESSION","source":"a step throws an exception"},"sourceReference":{"uri":"features/hooks/hooks.feature.ts","location":{"line":12}}}} +{"hook":{"id":"ffcc7b0c-e352-4314-9e8b-f2c3e8aa0aa8","sourceReference":{"uri":"features/hooks/hooks.feature.ts","location":{"line":4}}}} +{"hook":{"id":"f38d237a-3e56-4b85-a92d-afe3cca1d2a3","sourceReference":{"uri":"features/hooks/hooks.feature.ts","location":{"line":16}}}} +{"hook":{"id":"96819e0a-bf44-44f0-9078-47daf01b4bff","sourceReference":{"uri":"features/hooks/hooks.feature.ts","location":{"line":20}},"tagExpression":"@some-tag or @some-other-tag"}} +{"hook":{"id":"5275e764-e491-4e62-8667-fe7e5316ba45","sourceReference":{"uri":"features/hooks/hooks.feature.ts","location":{"line":24}},"tagExpression":"@with-attachment"}} +{"testRunStarted":{"timestamp":{"seconds":1624564794,"nanos":25000000}}} +{"testCase":{"id":"89f500ad-5fba-47cc-820b-60cb0b2896d2","pickleId":"106547fd-ab8b-426f-bdab-3acc41957883","testSteps":[{"id":"20181bea-99c9-4d1f-ba69-8a3d32027413","hookId":"ffcc7b0c-e352-4314-9e8b-f2c3e8aa0aa8"},{"id":"a018fc1d-20c1-4c7c-9487-d5e6876d1d66","pickleStepId":"661785f5-43aa-48ca-8d22-454dd74ab3db","stepDefinitionIds":["16c6e088-7192-40fe-8205-53e32b823b07"],"stepMatchArgumentsLists":[{"stepMatchArguments":[]}]},{"id":"cbd9d342-ec89-4267-96b9-2c51e7e87725","hookId":"f38d237a-3e56-4b85-a92d-afe3cca1d2a3"}]}} +{"testCase":{"id":"9066dd9a-4cec-4a30-87ef-85ab28293541","pickleId":"c420f6b3-4537-45ea-bd39-1a9c92e2dd0b","testSteps":[{"id":"f00e1b6b-e8ea-4d4f-995a-35ac597b185b","hookId":"ffcc7b0c-e352-4314-9e8b-f2c3e8aa0aa8"},{"id":"2cdfcb05-f5dd-4d6e-9d66-bd0e314a6953","pickleStepId":"81f9da55-061a-4e8f-85d4-fab6f67cd8bc","stepDefinitionIds":["52609f80-f042-4036-8285-1b975d95a618"],"stepMatchArgumentsLists":[{"stepMatchArguments":[]}]},{"id":"e98a4aa5-354f-4a1f-af63-09b337084b51","hookId":"f38d237a-3e56-4b85-a92d-afe3cca1d2a3"}]}} +{"testCase":{"id":"14c2a746-7bb2-4047-9584-81af43c303f5","pickleId":"245b62a0-ca88-44a2-9b8e-c3cb240a7418","testSteps":[{"id":"a9d52a9b-bc38-4d66-9d4b-f5031283abeb","hookId":"ffcc7b0c-e352-4314-9e8b-f2c3e8aa0aa8"},{"id":"fc2f8607-0873-4639-a32b-565aa97f0b8b","pickleStepId":"42607bae-a05b-43bd-a5d2-5688a37441a8","stepDefinitionIds":["52609f80-f042-4036-8285-1b975d95a618"],"stepMatchArgumentsLists":[{"stepMatchArguments":[]}]},{"id":"accda7d1-aa98-4db9-baf8-dbddd776962f","hookId":"f38d237a-3e56-4b85-a92d-afe3cca1d2a3"}]}} +{"testCase":{"id":"1afeee64-eb0b-478b-8458-2fe4c4f45c9b","pickleId":"f8d6178b-cdf5-4b04-8e6e-5f9208da73e0","testSteps":[{"id":"ce6f80fc-b556-4ed1-a424-743ca32b7d81","hookId":"ffcc7b0c-e352-4314-9e8b-f2c3e8aa0aa8"},{"id":"9d548c56-8bb1-4e64-a0d6-3e8a31da9755","pickleStepId":"880eebd4-97c8-43a4-8067-34b135cb44c6","stepDefinitionIds":["16c6e088-7192-40fe-8205-53e32b823b07"],"stepMatchArgumentsLists":[{"stepMatchArguments":[]}]},{"id":"95cf0881-aea2-48d7-9823-742da014373b","hookId":"96819e0a-bf44-44f0-9078-47daf01b4bff"},{"id":"db16509b-57a1-43f2-bd5b-750c8e76ba45","hookId":"f38d237a-3e56-4b85-a92d-afe3cca1d2a3"}]}} +{"testCase":{"id":"a13d6269-c327-4cf9-b04b-3bf247814b45","pickleId":"b8abb04a-c787-4557-b207-de760580babd","testSteps":[{"id":"66df3309-992e-48b5-ae05-95ce618c9b91","hookId":"ffcc7b0c-e352-4314-9e8b-f2c3e8aa0aa8"},{"id":"2f8fa07d-6c98-49bd-9bc8-94493e43243a","pickleStepId":"0a593619-92cb-4377-84ca-f9444908a03f","stepDefinitionIds":["16c6e088-7192-40fe-8205-53e32b823b07"],"stepMatchArgumentsLists":[{"stepMatchArguments":[]}]},{"id":"f8d0cb06-62f6-47c1-8aed-ca4cc715fc87","hookId":"5275e764-e491-4e62-8667-fe7e5316ba45"},{"id":"8db3b248-8cef-4eac-b85a-68ae636192dd","hookId":"f38d237a-3e56-4b85-a92d-afe3cca1d2a3"}]}} +{"testCaseStarted":{"attempt":0,"testCaseId":"89f500ad-5fba-47cc-820b-60cb0b2896d2","id":"ae1b9a72-bb41-49f0-ad72-7bfb1a2e2abd","timestamp":{"seconds":1624564794,"nanos":25000000}}} +{"testStepStarted":{"testCaseStartedId":"ae1b9a72-bb41-49f0-ad72-7bfb1a2e2abd","testStepId":"20181bea-99c9-4d1f-ba69-8a3d32027413","timestamp":{"seconds":1624564794,"nanos":26000000}}} +{"testStepFinished":{"testCaseStartedId":"ae1b9a72-bb41-49f0-ad72-7bfb1a2e2abd","testStepId":"20181bea-99c9-4d1f-ba69-8a3d32027413","testStepResult":{"duration":{"seconds":0,"nanos":143809},"status":"PASSED"},"timestamp":{"seconds":1624564794,"nanos":26000000}}} +{"testStepStarted":{"testCaseStartedId":"ae1b9a72-bb41-49f0-ad72-7bfb1a2e2abd","testStepId":"a018fc1d-20c1-4c7c-9487-d5e6876d1d66","timestamp":{"seconds":1624564794,"nanos":26000000}}} +{"testStepFinished":{"testCaseStartedId":"ae1b9a72-bb41-49f0-ad72-7bfb1a2e2abd","testStepId":"a018fc1d-20c1-4c7c-9487-d5e6876d1d66","testStepResult":{"duration":{"seconds":0,"nanos":16351},"status":"PASSED"},"timestamp":{"seconds":1624564794,"nanos":26000000}}} +{"testStepStarted":{"testCaseStartedId":"ae1b9a72-bb41-49f0-ad72-7bfb1a2e2abd","testStepId":"cbd9d342-ec89-4267-96b9-2c51e7e87725","timestamp":{"seconds":1624564794,"nanos":26000000}}} +{"testStepFinished":{"testCaseStartedId":"ae1b9a72-bb41-49f0-ad72-7bfb1a2e2abd","testStepId":"cbd9d342-ec89-4267-96b9-2c51e7e87725","testStepResult":{"duration":{"seconds":0,"nanos":36628},"status":"FAILED","message":"Exception in hook\n at Object. (features/hooks/hooks.feature.ts:17:9)\n at Generator.next ()\n at new Promise ()\n at Generator.next ()\n at features/hooks/hooks.feature:5"},"timestamp":{"seconds":1624564794,"nanos":34000000}}} +{"testCaseFinished":{"testCaseStartedId":"ae1b9a72-bb41-49f0-ad72-7bfb1a2e2abd","timestamp":{"seconds":1624564794,"nanos":34000000},"willBeRetried":false}} +{"testCaseStarted":{"attempt":0,"testCaseId":"9066dd9a-4cec-4a30-87ef-85ab28293541","id":"1a2c8715-799c-4bd0-9be0-06a1a5621f5f","timestamp":{"seconds":1624564794,"nanos":34000000}}} +{"testStepStarted":{"testCaseStartedId":"1a2c8715-799c-4bd0-9be0-06a1a5621f5f","testStepId":"f00e1b6b-e8ea-4d4f-995a-35ac597b185b","timestamp":{"seconds":1624564794,"nanos":34000000}}} +{"testStepFinished":{"testCaseStartedId":"1a2c8715-799c-4bd0-9be0-06a1a5621f5f","testStepId":"f00e1b6b-e8ea-4d4f-995a-35ac597b185b","testStepResult":{"duration":{"seconds":0,"nanos":16934},"status":"PASSED"},"timestamp":{"seconds":1624564794,"nanos":35000000}}} +{"testStepStarted":{"testCaseStartedId":"1a2c8715-799c-4bd0-9be0-06a1a5621f5f","testStepId":"2cdfcb05-f5dd-4d6e-9d66-bd0e314a6953","timestamp":{"seconds":1624564794,"nanos":35000000}}} +{"testStepFinished":{"testCaseStartedId":"1a2c8715-799c-4bd0-9be0-06a1a5621f5f","testStepId":"2cdfcb05-f5dd-4d6e-9d66-bd0e314a6953","testStepResult":{"duration":{"seconds":0,"nanos":60521},"status":"FAILED","message":"Exception in step\n at Object. (features/hooks/hooks.feature.ts:13:9)\n at Generator.next ()\n at new Promise ()\n at Generator.next ()\n at features/hooks/hooks.feature:9"},"timestamp":{"seconds":1624564794,"nanos":35000000}}} +{"testStepStarted":{"testCaseStartedId":"1a2c8715-799c-4bd0-9be0-06a1a5621f5f","testStepId":"e98a4aa5-354f-4a1f-af63-09b337084b51","timestamp":{"seconds":1624564794,"nanos":35000000}}} +{"testStepFinished":{"testCaseStartedId":"1a2c8715-799c-4bd0-9be0-06a1a5621f5f","testStepId":"e98a4aa5-354f-4a1f-af63-09b337084b51","testStepResult":{"duration":{"seconds":0,"nanos":17463},"status":"FAILED","message":"Exception in hook\n at Object. (features/hooks/hooks.feature.ts:17:9)\n at Generator.next ()\n at new Promise ()\n at Generator.next ()\n at features/hooks/hooks.feature:8"},"timestamp":{"seconds":1624564794,"nanos":38000000}}} +{"testCaseFinished":{"testCaseStartedId":"1a2c8715-799c-4bd0-9be0-06a1a5621f5f","timestamp":{"seconds":1624564794,"nanos":38000000},"willBeRetried":false}} +{"testCaseStarted":{"attempt":0,"testCaseId":"14c2a746-7bb2-4047-9584-81af43c303f5","id":"933d9338-cc44-4636-bea3-da27966cd695","timestamp":{"seconds":1624564794,"nanos":38000000}}} +{"testStepStarted":{"testCaseStartedId":"933d9338-cc44-4636-bea3-da27966cd695","testStepId":"a9d52a9b-bc38-4d66-9d4b-f5031283abeb","timestamp":{"seconds":1624564794,"nanos":38000000}}} +{"testStepFinished":{"testCaseStartedId":"933d9338-cc44-4636-bea3-da27966cd695","testStepId":"a9d52a9b-bc38-4d66-9d4b-f5031283abeb","testStepResult":{"duration":{"seconds":0,"nanos":9230},"status":"PASSED"},"timestamp":{"seconds":1624564794,"nanos":38000000}}} +{"testStepStarted":{"testCaseStartedId":"933d9338-cc44-4636-bea3-da27966cd695","testStepId":"fc2f8607-0873-4639-a32b-565aa97f0b8b","timestamp":{"seconds":1624564794,"nanos":38000000}}} +{"testStepFinished":{"testCaseStartedId":"933d9338-cc44-4636-bea3-da27966cd695","testStepId":"fc2f8607-0873-4639-a32b-565aa97f0b8b","testStepResult":{"duration":{"seconds":0,"nanos":21622},"status":"FAILED","message":"Exception in step\n at Object. (features/hooks/hooks.feature.ts:13:9)\n at Generator.next ()\n at new Promise ()\n at Generator.next ()\n at features/hooks/hooks.feature:12"},"timestamp":{"seconds":1624564794,"nanos":39000000}}} +{"testStepStarted":{"testCaseStartedId":"933d9338-cc44-4636-bea3-da27966cd695","testStepId":"accda7d1-aa98-4db9-baf8-dbddd776962f","timestamp":{"seconds":1624564794,"nanos":39000000}}} +{"testStepFinished":{"testCaseStartedId":"933d9338-cc44-4636-bea3-da27966cd695","testStepId":"accda7d1-aa98-4db9-baf8-dbddd776962f","testStepResult":{"duration":{"seconds":0,"nanos":14235},"status":"FAILED","message":"Exception in hook\n at Object. (features/hooks/hooks.feature.ts:17:9)\n at Generator.next ()\n at new Promise ()\n at Generator.next ()\n at features/hooks/hooks.feature:11"},"timestamp":{"seconds":1624564794,"nanos":40000000}}} +{"testCaseFinished":{"testCaseStartedId":"933d9338-cc44-4636-bea3-da27966cd695","timestamp":{"seconds":1624564794,"nanos":40000000},"willBeRetried":false}} +{"testCaseStarted":{"attempt":0,"testCaseId":"1afeee64-eb0b-478b-8458-2fe4c4f45c9b","id":"9a434117-a7a8-497f-af61-774f9c1ffb6a","timestamp":{"seconds":1624564794,"nanos":40000000}}} +{"testStepStarted":{"testCaseStartedId":"9a434117-a7a8-497f-af61-774f9c1ffb6a","testStepId":"ce6f80fc-b556-4ed1-a424-743ca32b7d81","timestamp":{"seconds":1624564794,"nanos":40000000}}} +{"testStepFinished":{"testCaseStartedId":"9a434117-a7a8-497f-af61-774f9c1ffb6a","testStepId":"ce6f80fc-b556-4ed1-a424-743ca32b7d81","testStepResult":{"duration":{"seconds":0,"nanos":9220},"status":"PASSED"},"timestamp":{"seconds":1624564794,"nanos":40000000}}} +{"testStepStarted":{"testCaseStartedId":"9a434117-a7a8-497f-af61-774f9c1ffb6a","testStepId":"9d548c56-8bb1-4e64-a0d6-3e8a31da9755","timestamp":{"seconds":1624564794,"nanos":40000000}}} +{"testStepFinished":{"testCaseStartedId":"9a434117-a7a8-497f-af61-774f9c1ffb6a","testStepId":"9d548c56-8bb1-4e64-a0d6-3e8a31da9755","testStepResult":{"duration":{"seconds":0,"nanos":7696},"status":"PASSED"},"timestamp":{"seconds":1624564794,"nanos":40000000}}} +{"testStepStarted":{"testCaseStartedId":"9a434117-a7a8-497f-af61-774f9c1ffb6a","testStepId":"95cf0881-aea2-48d7-9823-742da014373b","timestamp":{"seconds":1624564794,"nanos":40000000}}} +{"testStepFinished":{"testCaseStartedId":"9a434117-a7a8-497f-af61-774f9c1ffb6a","testStepId":"95cf0881-aea2-48d7-9823-742da014373b","testStepResult":{"duration":{"seconds":0,"nanos":56097},"status":"FAILED","message":"Exception in conditional hook\n at Object. (features/hooks/hooks.feature.ts:21:9)\n at Generator.next ()\n at new Promise ()\n at Generator.next ()\n at features/hooks/hooks.feature:15"},"timestamp":{"seconds":1624564794,"nanos":40000000}}} +{"testStepStarted":{"testCaseStartedId":"9a434117-a7a8-497f-af61-774f9c1ffb6a","testStepId":"db16509b-57a1-43f2-bd5b-750c8e76ba45","timestamp":{"seconds":1624564794,"nanos":40000000}}} +{"testStepFinished":{"testCaseStartedId":"9a434117-a7a8-497f-af61-774f9c1ffb6a","testStepId":"db16509b-57a1-43f2-bd5b-750c8e76ba45","testStepResult":{"duration":{"seconds":0,"nanos":12134},"status":"FAILED","message":"Exception in hook\n at Object. (features/hooks/hooks.feature.ts:17:9)\n at Generator.next ()\n at new Promise ()\n at Generator.next ()\n at features/hooks/hooks.feature:15"},"timestamp":{"seconds":1624564794,"nanos":41000000}}} +{"testCaseFinished":{"testCaseStartedId":"9a434117-a7a8-497f-af61-774f9c1ffb6a","timestamp":{"seconds":1624564794,"nanos":41000000},"willBeRetried":false}} +{"testCaseStarted":{"attempt":0,"testCaseId":"a13d6269-c327-4cf9-b04b-3bf247814b45","id":"7c3e1ec1-7cc1-4906-a752-65a8856d4ef6","timestamp":{"seconds":1624564794,"nanos":41000000}}} +{"testStepStarted":{"testCaseStartedId":"7c3e1ec1-7cc1-4906-a752-65a8856d4ef6","testStepId":"66df3309-992e-48b5-ae05-95ce618c9b91","timestamp":{"seconds":1624564794,"nanos":41000000}}} +{"testStepFinished":{"testCaseStartedId":"7c3e1ec1-7cc1-4906-a752-65a8856d4ef6","testStepId":"66df3309-992e-48b5-ae05-95ce618c9b91","testStepResult":{"duration":{"seconds":0,"nanos":6155},"status":"PASSED"},"timestamp":{"seconds":1624564794,"nanos":41000000}}} +{"testStepStarted":{"testCaseStartedId":"7c3e1ec1-7cc1-4906-a752-65a8856d4ef6","testStepId":"2f8fa07d-6c98-49bd-9bc8-94493e43243a","timestamp":{"seconds":1624564794,"nanos":41000000}}} +{"testStepFinished":{"testCaseStartedId":"7c3e1ec1-7cc1-4906-a752-65a8856d4ef6","testStepId":"2f8fa07d-6c98-49bd-9bc8-94493e43243a","testStepResult":{"duration":{"seconds":0,"nanos":6133},"status":"PASSED"},"timestamp":{"seconds":1624564794,"nanos":41000000}}} +{"testStepStarted":{"testCaseStartedId":"7c3e1ec1-7cc1-4906-a752-65a8856d4ef6","testStepId":"f8d0cb06-62f6-47c1-8aed-ca4cc715fc87","timestamp":{"seconds":1624564794,"nanos":41000000}}} +{"attachment":{"testStepId":"f8d0cb06-62f6-47c1-8aed-ca4cc715fc87","testCaseStartedId":"7c3e1ec1-7cc1-4906-a752-65a8856d4ef6","mediaType":"image/svg+xml","body":"PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGNsYXNzPSJtbC0zIG1sLW1kLTAiIHZpZXdCb3g9IjAgMCA0MC41OSA0Ni4zMSIgd2lkdGg9IjQwLjU5IiBoZWlnaHQ9IjQ2LjMxIj4KICAgIDxnPgogICAgICAgIDxwYXRoIGZpbGw9IiMyM2Q5NmMiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTMwLjI4MyAzLjY0NXEtLjUyOC0uMzE3LTEuMDgtLjU5M2ExNi4xNjQgMTYuMTY0IDAgMDAtMS4xNTQtLjUxOGMtLjEyNC0uMDUyLS4yNDctLjEtLjM3Mi0uMTQ5LS4zNDMtLjEyNy0uNjg5LS4yNjgtMS4wNDItLjM3MWExOS40MjcgMTkuNDI3IDAgMTAtOS43OTIgMzcuNTF2NS41NmMxMS42NzYtMS43NTMgMjIuMDE2LTEwLjk3OSAyMi43ODctMjMuMDkzLjQ1OS03LjI4OS0zLjE5My0xNC43My05LjM0Ny0xOC4zNDZ6Ii8+CiAgICAgICAgPHBhdGggZmlsbD0iIzE3MzY0NyIgZD0iTTE1Ljc4NyA0Ni4zMDd2LTUuOTM1QTIwLjQ3MiAyMC40NzIgMCAxMTI2Ljk1OSAxLjAxNWMuMjc0LjA4LjU1Ny4xODcuODMyLjI5MWwuMjQ4LjA5M2MuMTY1LjA2NC4yOTEuMTEzLjQxNy4xNjcuMzQ4LjEzNy43MzkuMzEzIDEuMjA4LjU0M3EuNTg5LjI5NSAxLjE1My42MzNjNi4zOTMgMy43NTYgMTAuMzU0IDExLjUxOCA5Ljg1NyAxOS4zMTYtLjc2MyAxMi0xMC43MjIgMjIuMTIyLTIzLjY3OSAyNC4wNjd6bTQuOC00NC4yMTRoLS4wMjZhMTguMzY2IDE4LjM2NiAwIDAwLTMuNTI0IDM2LjQwOGwuODUuMTY1djUuMThjMTEuMzkyLTIuMjI0IDIwLjAwOS0xMS4yNzIgMjAuNjg2LTIxLjkyMi40NDgtNy4wMzMtMy4xLTE0LjAxOC04LjgzLTE3LjM4M2wtLjAwOC0uMDA1QTE0LjY5MSAxNC42OTEgMCAwMDI3LjY1NCAzLjVhNS43NCA1Ljc0IDAgMDAtLjM0NC0uMTM4bC0uMjctLjFhOS40OSA5LjQ5IDAgMDAtLjcwOC0uMjQ5IDE4LjQyNSAxOC40MjUgMCAwMC01Ljc0My0uOTJ6Ii8+CiAgICAgICAgPHBhdGggZmlsbD0iIzE3MzY0NyIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMTYuNjY2IDEwLjU4YTEuOCAxLjggMCAwMTEuNTgzLjYwOCA0LjE4NCA0LjE4NCAwIDAxLjcyOCAxLjEwN2MuNjQ1IDEuNDIyIDEuMDI3IDMuNDYxLjIzIDQuNjA1YTYuMzM0IDYuMzM0IDAgMDEtMy45ODEtMy4wODcgMy4yMzYgMy4yMzYgMCAwMS0uMzQ3LTEuMzM5IDEuOTU3IDEuOTU3IDAgMDExLjc4Ny0xLjg5NHptLTUuNjgzIDguMDI1YTcuNzQyIDcuNzQyIDAgMDAxLjIxOC43MzcgNS43ODkgNS43ODkgMCAwMDQuODgzLS4xMzggNi4xMTYgNi4xMTYgMCAwMC0zLjM0NS0zLjQ1IDMuNjY0IDMuNjY0IDAgMDAtMS40NDItLjMyMSAxLjg4NCAxLjg4NCAwIDAwLS4zMTkgMCAxLjc2NiAxLjc2NiAwIDAwLS45OTUgMy4xNzJ6bTYuMSAzLjQzM2MtLjc3Ny0uNTE4LTIuMzc5LS4zMDktMy4zMTItLjI5MmE0LjQxNiA0LjQxNiAwIDAwLTEuNjY2LjM1MiAzLjUgMy41IDAgMDAtMS4yMTguNzM4IDEuODE3IDEuODE3IDAgMDAxLjQwOSAzLjE3MSAzLjMgMy4zIDAgMDAxLjQ0Mi0uMzIxYzEuNDM2LS42MiAzLjE0MS0yLjMyIDMuMzQ2LTMuNjQ4em0yLjYxIDJhNi41NTYgNi41NTYgMCAwMC0zLjcyNCAzLjUwNiAzLjA5MSAzLjA5MSAwIDAwLS4zMjEgMS4zMTQgMS45MDcgMS45MDcgMCAwMDMuMyAxLjM0NiA3LjQyMiA3LjQyMiAwIDAwLjctMS4yMThjLjYyMS0xLjMzMy44NjYtMy43Mi4wNDYtNC45NDh6bTIuNTU3LTcuMTY3YTUuOTQxIDUuOTQxIDAgMDAzLjctMy4xNjcgMy4yNDMgMy4yNDMgMCAwMC4zMTktMS4zNDYgMS45MTUgMS45MTUgMCAwMC0xLjc5NC0xLjk1NCAxLjgzMiAxLjgzMiAwIDAwLTEuNi42NDEgNy4zODIgNy4zODIgMCAwMC0uNzA1IDEuMjE4Yy0uNjIgMS40MzQtLjg0MiAzLjQ4LjA4MSA0LjYwM3ptNC4yMDggMTIuMTE1YTMuMjQ0IDMuMjQ0IDAgMDAtLjMyMS0xLjM0NSA1Ljg2OSA1Ljg2OSAwIDAwLTMuNTU0LTMuMjY5IDUuMzg2IDUuMzg2IDAgMDAtLjIyNiA0LjcxMSA0LjE0NyA0LjE0NyAwIDAwLjcgMS4xMjFjMS4xMzMgMS4yMyAzLjUwNS4zMiAzLjQwMi0xLjIxOHptNC4yLTYuMjhhNy40NjYgNy40NjYgMCAwMC0xLjIxNy0uNyA0LjQyNSA0LjQyNSAwIDAwLTEuNjY2LS4zNTIgNi40IDYuNCAwIDAwLTMuMTg4LjU1NSA1Ljk1OSA1Ljk1OSAwIDAwMy4zMTYgMy4zODYgMy42NzIgMy42NzIgMCAwMDEuNDQyLjMyIDEuOCAxLjggMCAwMDEuMzEtMy4yMDl6Ii8+CiAgICA8L2c+Cjwvc3ZnPg==","contentEncoding":"BASE64"}} +{"testStepFinished":{"testCaseStartedId":"7c3e1ec1-7cc1-4906-a752-65a8856d4ef6","testStepId":"f8d0cb06-62f6-47c1-8aed-ca4cc715fc87","testStepResult":{"duration":{"seconds":0,"nanos":933465},"status":"PASSED"},"timestamp":{"seconds":1624564794,"nanos":42000000}}} +{"testStepStarted":{"testCaseStartedId":"7c3e1ec1-7cc1-4906-a752-65a8856d4ef6","testStepId":"8db3b248-8cef-4eac-b85a-68ae636192dd","timestamp":{"seconds":1624564794,"nanos":42000000}}} +{"testStepFinished":{"testCaseStartedId":"7c3e1ec1-7cc1-4906-a752-65a8856d4ef6","testStepId":"8db3b248-8cef-4eac-b85a-68ae636192dd","testStepResult":{"duration":{"seconds":0,"nanos":14854},"status":"FAILED","message":"Exception in hook\n at Object. (features/hooks/hooks.feature.ts:17:9)\n at Generator.next ()\n at new Promise ()\n at Generator.next ()\n at features/hooks/hooks.feature:19"},"timestamp":{"seconds":1624564794,"nanos":42000000}}} +{"testCaseFinished":{"testCaseStartedId":"7c3e1ec1-7cc1-4906-a752-65a8856d4ef6","timestamp":{"seconds":1624564794,"nanos":42000000},"willBeRetried":false}} +{"testRunFinished":{"timestamp":{"seconds":1624564794,"nanos":43000000},"success":false}} diff --git a/compatibility-kit/javascript/features/markdown/markdown.feature.md.ndjson b/compatibility-kit/javascript/features/markdown/markdown.feature.md.ndjson index 4fd96c789f..bfe944f997 100644 --- a/compatibility-kit/javascript/features/markdown/markdown.feature.md.ndjson +++ b/compatibility-kit/javascript/features/markdown/markdown.feature.md.ndjson @@ -1,35 +1,35 @@ -{"meta":{"protocolVersion":"16.0.1","implementation":{"name":"fake-cucumber","version":"12.0.2"},"cpu":{"name":"x64"},"os":{"name":"linux","version":"5.10.25-linuxkit"},"runtime":{"name":"node.js","version":"12.16.2"}}} +{"meta":{"protocolVersion":"16.0.1","implementation":{"name":"fake-cucumber","version":"12.0.2"},"cpu":{"name":"x64"},"os":{"name":"darwin","version":"19.6.0"},"runtime":{"name":"node.js","version":"12.22.1"}}} {"source":{"data":"# Feature: Cheese\n\nThis table is not picked up by Gherkin (not indented 2+ spaces)\n\n| foo | bar |\n| --- | --- |\n| boz | boo |\n\n\n## Rule: Nom nom nom\n\nI love cheese, especially fromage macaroni cheese. Rubber cheese ricotta caerphilly blue castello who moved my cheese queso bavarian bergkase melted cheese.\n\n### Scenario Outline: Ylajali!\n\n* Given some TypeScript code:\n ```typescript\n type Cheese = 'reblochon' | 'roquefort' | 'rocamadour'\n ```\n* And some classic Gherkin:\n ```gherkin\n Given there are 24 apples in Mary's basket\n ```\n* When we use a data table and attach something and then \n | name | age |\n | ---- | --: |\n | Bill | 3 |\n | Jane | 6 |\n | Isla | 5 |\n* Then this might or might not run\n\n#### Examples: because we need more tables\n\nThis table is indented 2 spaces, so Gherkin will pick it up\n\n | what |\n | ---- |\n | fail |\n | pass |\n\nAnd oh by the way, this table is also ignored by Gherkin because it doesn't have 2+ space indent:\n\n| cheese |\n| -------- |\n| gouda |\n| gamalost |\n","uri":"features/markdown/markdown.feature.md","mediaType":"text/x.cucumber.gherkin+markdown"}} -{"gherkinDocument":{"feature":{"tags":[],"location":{"line":1,"column":3},"language":"en","keyword":"Feature","name":"Cheese","description":"","children":[{"rule":{"id":"940f1b65-cb60-43ef-bfd0-242aaba94ee4","location":{"line":10,"column":4},"keyword":"Rule","name":"Nom nom nom","description":"","children":[{"scenario":{"id":"f54935b8-25c3-4f9f-ab15-a1d5e9bf94af","tags":[],"location":{"line":14,"column":5},"keyword":"Scenario Outline","name":"Ylajali!","description":"","steps":[{"id":"7580f9aa-7cf6-47a6-a301-071ee238591e","location":{"line":16,"column":3},"keyword":"Given ","text":"some TypeScript code:","docString":{"location":{"line":17,"column":3},"content":" type Cheese = 'reblochon' | 'roquefort' | 'rocamadour'","delimiter":"```","mediaType":"typescript"}},{"id":"e687590c-1f50-46d4-b2af-0281d1dfbc16","location":{"line":20,"column":3},"keyword":"And ","text":"some classic Gherkin:","docString":{"location":{"line":21,"column":3},"content":" Given there are 24 apples in Mary's basket","delimiter":"```","mediaType":"gherkin"}},{"id":"ecdb495d-4f53-4384-b9e7-9832fb1df04d","location":{"line":24,"column":3},"keyword":"When ","text":"we use a data table and attach something and then ","dataTable":{"location":{"line":25,"column":3},"rows":[{"id":"1e057eaa-6c10-4a5f-b2ce-f31365ce1a91","location":{"line":25,"column":3},"cells":[{"location":{"line":25,"column":5},"value":"name"},{"location":{"line":25,"column":12},"value":"age"}]},{"id":"91404c17-ecfd-44eb-ad59-8882eedcff03","location":{"line":27,"column":3},"cells":[{"location":{"line":27,"column":5},"value":"Bill"},{"location":{"line":27,"column":14},"value":"3"}]},{"id":"d2accd0f-1c64-4e72-9cf2-47f30bc0efc5","location":{"line":28,"column":3},"cells":[{"location":{"line":28,"column":5},"value":"Jane"},{"location":{"line":28,"column":14},"value":"6"}]},{"id":"6bf5a38e-3af0-4150-b649-3f5d8db79eac","location":{"line":29,"column":3},"cells":[{"location":{"line":29,"column":5},"value":"Isla"},{"location":{"line":29,"column":14},"value":"5"}]}]}},{"id":"03925152-0add-451c-ace7-ed428cdc7a3d","location":{"line":30,"column":3},"keyword":"Then ","text":"this might or might not run"}],"examples":[{"id":"b39945db-d5cd-4794-b354-31ed907ad07e","tags":[],"location":{"line":32,"column":6},"keyword":"Examples","name":"because we need more tables","description":"","tableHeader":{"id":"4b0ae26d-f776-4ba0-8f7f-bfbe2387268c","location":{"line":36,"column":3},"cells":[{"location":{"line":36,"column":5},"value":"what"}]},"tableBody":[{"id":"b560b8c0-2b25-4317-b3f8-355c4a03505d","location":{"line":38,"column":3},"cells":[{"location":{"line":38,"column":5},"value":"fail"}]},{"id":"97d63ed2-c3bb-4dff-a554-beee9a0fcba8","location":{"line":39,"column":3},"cells":[{"location":{"line":39,"column":5},"value":"pass"}]}]}]}}],"tags":[]}}]},"comments":[],"uri":"features/markdown/markdown.feature.md"}} -{"pickle":{"id":"437dc0f8-49bb-42b9-9713-c96066a97a68","uri":"features/markdown/markdown.feature.md","astNodeIds":["f54935b8-25c3-4f9f-ab15-a1d5e9bf94af","b560b8c0-2b25-4317-b3f8-355c4a03505d"],"name":"Ylajali!","language":"en","steps":[{"id":"d9eb6e0e-9b79-4f66-a0f6-78d7d2eed30a","text":"some TypeScript code:","argument":{"docString":{"content":" type Cheese = 'reblochon' | 'roquefort' | 'rocamadour'","mediaType":"typescript"}},"astNodeIds":["7580f9aa-7cf6-47a6-a301-071ee238591e","b560b8c0-2b25-4317-b3f8-355c4a03505d"]},{"id":"f85fbe58-6c40-40c0-b9b5-6767bf29d7c1","text":"some classic Gherkin:","argument":{"docString":{"content":" Given there are 24 apples in Mary's basket","mediaType":"gherkin"}},"astNodeIds":["e687590c-1f50-46d4-b2af-0281d1dfbc16","b560b8c0-2b25-4317-b3f8-355c4a03505d"]},{"id":"1e95cadd-4d4f-4539-ad9f-53c55bc32022","text":"we use a data table and attach something and then fail","argument":{"dataTable":{"rows":[{"cells":[{"value":"name"},{"value":"age"}]},{"cells":[{"value":"Bill"},{"value":"3"}]},{"cells":[{"value":"Jane"},{"value":"6"}]},{"cells":[{"value":"Isla"},{"value":"5"}]}]}},"astNodeIds":["ecdb495d-4f53-4384-b9e7-9832fb1df04d","b560b8c0-2b25-4317-b3f8-355c4a03505d"]},{"id":"92522f7f-a342-4e98-ab92-2a9380332db6","text":"this might or might not run","astNodeIds":["03925152-0add-451c-ace7-ed428cdc7a3d","b560b8c0-2b25-4317-b3f8-355c4a03505d"]}],"tags":[]}} -{"pickle":{"id":"be6834c5-8b95-410f-8c4f-c2e57852105a","uri":"features/markdown/markdown.feature.md","astNodeIds":["f54935b8-25c3-4f9f-ab15-a1d5e9bf94af","97d63ed2-c3bb-4dff-a554-beee9a0fcba8"],"name":"Ylajali!","language":"en","steps":[{"id":"cdff6014-e60d-433c-8000-721eabe8335a","text":"some TypeScript code:","argument":{"docString":{"content":" type Cheese = 'reblochon' | 'roquefort' | 'rocamadour'","mediaType":"typescript"}},"astNodeIds":["7580f9aa-7cf6-47a6-a301-071ee238591e","97d63ed2-c3bb-4dff-a554-beee9a0fcba8"]},{"id":"676a22bb-15f8-42de-814b-26692888c456","text":"some classic Gherkin:","argument":{"docString":{"content":" Given there are 24 apples in Mary's basket","mediaType":"gherkin"}},"astNodeIds":["e687590c-1f50-46d4-b2af-0281d1dfbc16","97d63ed2-c3bb-4dff-a554-beee9a0fcba8"]},{"id":"553b5806-4f7d-4d88-8b63-d9dfb5500b7a","text":"we use a data table and attach something and then pass","argument":{"dataTable":{"rows":[{"cells":[{"value":"name"},{"value":"age"}]},{"cells":[{"value":"Bill"},{"value":"3"}]},{"cells":[{"value":"Jane"},{"value":"6"}]},{"cells":[{"value":"Isla"},{"value":"5"}]}]}},"astNodeIds":["ecdb495d-4f53-4384-b9e7-9832fb1df04d","97d63ed2-c3bb-4dff-a554-beee9a0fcba8"]},{"id":"f6503910-4334-4cd6-862c-7a871a5ed58c","text":"this might or might not run","astNodeIds":["03925152-0add-451c-ace7-ed428cdc7a3d","97d63ed2-c3bb-4dff-a554-beee9a0fcba8"]}],"tags":[]}} -{"stepDefinition":{"id":"3604a4c7-c003-4099-90aa-c9cbb1a5120a","pattern":{"type":"CUCUMBER_EXPRESSION","source":"some TypeScript code:"},"sourceReference":{"uri":"features/markdown/markdown.feature.md.ts","location":{"line":4}}}} -{"stepDefinition":{"id":"34c092ed-2cc3-4919-9e9c-dddc2100ce76","pattern":{"type":"CUCUMBER_EXPRESSION","source":"some classic Gherkin:"},"sourceReference":{"uri":"features/markdown/markdown.feature.md.ts","location":{"line":8}}}} -{"stepDefinition":{"id":"105f399d-3a10-4b55-a153-1bfa35d69607","pattern":{"type":"CUCUMBER_EXPRESSION","source":"we use a data table and attach something and then {word}"},"sourceReference":{"uri":"features/markdown/markdown.feature.md.ts","location":{"line":12}}}} -{"stepDefinition":{"id":"b12e0ef9-c53c-452a-a433-6da7ede10e98","pattern":{"type":"CUCUMBER_EXPRESSION","source":"this might or might not run"},"sourceReference":{"uri":"features/markdown/markdown.feature.md.ts","location":{"line":23}}}} -{"testRunStarted":{"timestamp":{"seconds":1623962940,"nanos":969000000}}} -{"testCase":{"id":"d2b00aba-7c21-4bd2-928a-8f156a5eba3a","pickleId":"437dc0f8-49bb-42b9-9713-c96066a97a68","testSteps":[{"id":"53fe0160-683a-4f8d-a39f-5cbc6176bd7f","pickleStepId":"d9eb6e0e-9b79-4f66-a0f6-78d7d2eed30a","stepDefinitionIds":["3604a4c7-c003-4099-90aa-c9cbb1a5120a"],"stepMatchArgumentsLists":[{"stepMatchArguments":[]}]},{"id":"c52acaf3-1c8a-495f-8f40-7580f618bfc4","pickleStepId":"f85fbe58-6c40-40c0-b9b5-6767bf29d7c1","stepDefinitionIds":["34c092ed-2cc3-4919-9e9c-dddc2100ce76"],"stepMatchArgumentsLists":[{"stepMatchArguments":[]}]},{"id":"44b22aee-57ce-420d-90b2-8890b5f7006b","pickleStepId":"1e95cadd-4d4f-4539-ad9f-53c55bc32022","stepDefinitionIds":["105f399d-3a10-4b55-a153-1bfa35d69607"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"value":"fail","start":50,"children":[]},"parameterTypeName":"word"}]}]},{"id":"253d599e-bdaa-422c-943a-93675d6a3a8a","pickleStepId":"92522f7f-a342-4e98-ab92-2a9380332db6","stepDefinitionIds":["b12e0ef9-c53c-452a-a433-6da7ede10e98"],"stepMatchArgumentsLists":[{"stepMatchArguments":[]}]}]}} -{"testCase":{"id":"24137c5b-53d4-4113-ba3f-aa005ec39f42","pickleId":"be6834c5-8b95-410f-8c4f-c2e57852105a","testSteps":[{"id":"3ef80a3d-8a66-4da4-a05c-54c1907e5201","pickleStepId":"cdff6014-e60d-433c-8000-721eabe8335a","stepDefinitionIds":["3604a4c7-c003-4099-90aa-c9cbb1a5120a"],"stepMatchArgumentsLists":[{"stepMatchArguments":[]}]},{"id":"ba81c80a-7691-456d-b97a-c95650b66018","pickleStepId":"676a22bb-15f8-42de-814b-26692888c456","stepDefinitionIds":["34c092ed-2cc3-4919-9e9c-dddc2100ce76"],"stepMatchArgumentsLists":[{"stepMatchArguments":[]}]},{"id":"5d02cabd-490c-4607-a0dc-e1ac5417f718","pickleStepId":"553b5806-4f7d-4d88-8b63-d9dfb5500b7a","stepDefinitionIds":["105f399d-3a10-4b55-a153-1bfa35d69607"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"value":"pass","start":50,"children":[]},"parameterTypeName":"word"}]}]},{"id":"b086e523-3501-4ccd-8065-d2d25925f884","pickleStepId":"f6503910-4334-4cd6-862c-7a871a5ed58c","stepDefinitionIds":["b12e0ef9-c53c-452a-a433-6da7ede10e98"],"stepMatchArgumentsLists":[{"stepMatchArguments":[]}]}]}} -{"testCaseStarted":{"attempt":0,"testCaseId":"d2b00aba-7c21-4bd2-928a-8f156a5eba3a","id":"52fd1e9e-f87d-4298-88a9-a07717ffeeb2","timestamp":{"seconds":1623962940,"nanos":972000000}}} -{"testStepStarted":{"testCaseStartedId":"52fd1e9e-f87d-4298-88a9-a07717ffeeb2","testStepId":"53fe0160-683a-4f8d-a39f-5cbc6176bd7f","timestamp":{"seconds":1623962940,"nanos":973000000}}} -{"testStepFinished":{"testCaseStartedId":"52fd1e9e-f87d-4298-88a9-a07717ffeeb2","testStepId":"53fe0160-683a-4f8d-a39f-5cbc6176bd7f","testStepResult":{"duration":{"seconds":0,"nanos":598199},"status":"PASSED","willBeRetried":false},"timestamp":{"seconds":1623962940,"nanos":974000000}}} -{"testStepStarted":{"testCaseStartedId":"52fd1e9e-f87d-4298-88a9-a07717ffeeb2","testStepId":"c52acaf3-1c8a-495f-8f40-7580f618bfc4","timestamp":{"seconds":1623962940,"nanos":975000000}}} -{"testStepFinished":{"testCaseStartedId":"52fd1e9e-f87d-4298-88a9-a07717ffeeb2","testStepId":"c52acaf3-1c8a-495f-8f40-7580f618bfc4","testStepResult":{"duration":{"seconds":0,"nanos":108300},"status":"PASSED","willBeRetried":false},"timestamp":{"seconds":1623962940,"nanos":976000000}}} -{"testStepStarted":{"testCaseStartedId":"52fd1e9e-f87d-4298-88a9-a07717ffeeb2","testStepId":"44b22aee-57ce-420d-90b2-8890b5f7006b","timestamp":{"seconds":1623962940,"nanos":976000000}}} -{"attachment":{"testStepId":"44b22aee-57ce-420d-90b2-8890b5f7006b","testCaseStartedId":"52fd1e9e-f87d-4298-88a9-a07717ffeeb2","mediaType":"text/x.cucumber.log+plain","body":"We are logging some plain text (fail)","contentEncoding":"IDENTITY"}} -{"testStepFinished":{"testCaseStartedId":"52fd1e9e-f87d-4298-88a9-a07717ffeeb2","testStepId":"44b22aee-57ce-420d-90b2-8890b5f7006b","testStepResult":{"duration":{"seconds":0,"nanos":1359499},"status":"FAILED","willBeRetried":false,"message":"You asked me to fail\n at Object. (features/markdown/markdown.feature.md.ts:18:13)\n at Generator.next ()\n at new Promise ()\n at Generator.next ()\n at features/markdown/markdown.feature.md:24\n at features/markdown/markdown.feature.md:38"},"timestamp":{"seconds":1623962941,"nanos":0}}} -{"testStepStarted":{"testCaseStartedId":"52fd1e9e-f87d-4298-88a9-a07717ffeeb2","testStepId":"253d599e-bdaa-422c-943a-93675d6a3a8a","timestamp":{"seconds":1623962941,"nanos":1000000}}} -{"testStepFinished":{"testCaseStartedId":"52fd1e9e-f87d-4298-88a9-a07717ffeeb2","testStepId":"253d599e-bdaa-422c-943a-93675d6a3a8a","testStepResult":{"duration":{"seconds":0,"nanos":0},"status":"SKIPPED","willBeRetried":false},"timestamp":{"seconds":1623962941,"nanos":1000000}}} -{"testCaseFinished":{"testCaseStartedId":"52fd1e9e-f87d-4298-88a9-a07717ffeeb2","timestamp":{"seconds":1623962941,"nanos":2000000}}} -{"testCaseStarted":{"attempt":0,"testCaseId":"24137c5b-53d4-4113-ba3f-aa005ec39f42","id":"23c7fce3-7415-43df-9516-d3b5e70cf738","timestamp":{"seconds":1623962941,"nanos":3000000}}} -{"testStepStarted":{"testCaseStartedId":"23c7fce3-7415-43df-9516-d3b5e70cf738","testStepId":"3ef80a3d-8a66-4da4-a05c-54c1907e5201","timestamp":{"seconds":1623962941,"nanos":4000000}}} -{"testStepFinished":{"testCaseStartedId":"23c7fce3-7415-43df-9516-d3b5e70cf738","testStepId":"3ef80a3d-8a66-4da4-a05c-54c1907e5201","testStepResult":{"duration":{"seconds":0,"nanos":29499},"status":"PASSED","willBeRetried":false},"timestamp":{"seconds":1623962941,"nanos":5000000}}} -{"testStepStarted":{"testCaseStartedId":"23c7fce3-7415-43df-9516-d3b5e70cf738","testStepId":"ba81c80a-7691-456d-b97a-c95650b66018","timestamp":{"seconds":1623962941,"nanos":5000000}}} -{"testStepFinished":{"testCaseStartedId":"23c7fce3-7415-43df-9516-d3b5e70cf738","testStepId":"ba81c80a-7691-456d-b97a-c95650b66018","testStepResult":{"duration":{"seconds":0,"nanos":19800},"status":"PASSED","willBeRetried":false},"timestamp":{"seconds":1623962941,"nanos":6000000}}} -{"testStepStarted":{"testCaseStartedId":"23c7fce3-7415-43df-9516-d3b5e70cf738","testStepId":"5d02cabd-490c-4607-a0dc-e1ac5417f718","timestamp":{"seconds":1623962941,"nanos":6000000}}} -{"attachment":{"testStepId":"5d02cabd-490c-4607-a0dc-e1ac5417f718","testCaseStartedId":"23c7fce3-7415-43df-9516-d3b5e70cf738","mediaType":"text/x.cucumber.log+plain","body":"We are logging some plain text (pass)","contentEncoding":"IDENTITY"}} -{"testStepFinished":{"testCaseStartedId":"23c7fce3-7415-43df-9516-d3b5e70cf738","testStepId":"5d02cabd-490c-4607-a0dc-e1ac5417f718","testStepResult":{"duration":{"seconds":0,"nanos":686499},"status":"PASSED","willBeRetried":false},"timestamp":{"seconds":1623962941,"nanos":8000000}}} -{"testStepStarted":{"testCaseStartedId":"23c7fce3-7415-43df-9516-d3b5e70cf738","testStepId":"b086e523-3501-4ccd-8065-d2d25925f884","timestamp":{"seconds":1623962941,"nanos":8000000}}} -{"testStepFinished":{"testCaseStartedId":"23c7fce3-7415-43df-9516-d3b5e70cf738","testStepId":"b086e523-3501-4ccd-8065-d2d25925f884","testStepResult":{"duration":{"seconds":0,"nanos":76099},"status":"PASSED","willBeRetried":false},"timestamp":{"seconds":1623962941,"nanos":9000000}}} -{"testCaseFinished":{"testCaseStartedId":"23c7fce3-7415-43df-9516-d3b5e70cf738","timestamp":{"seconds":1623962941,"nanos":10000000}}} -{"testRunFinished":{"timestamp":{"seconds":1623962941,"nanos":10000000},"success":false}} +{"gherkinDocument":{"feature":{"tags":[],"location":{"line":1,"column":3},"language":"en","keyword":"Feature","name":"Cheese","description":"","children":[{"rule":{"id":"0cb7eb7e-8abf-4081-9050-3e157853411d","location":{"line":10,"column":4},"keyword":"Rule","name":"Nom nom nom","description":"","children":[{"scenario":{"id":"6d4a7133-3cc8-4c49-918e-fee354ffb116","tags":[],"location":{"line":14,"column":5},"keyword":"Scenario Outline","name":"Ylajali!","description":"","steps":[{"id":"11b2cb16-f76d-4ed0-9249-1f04d3550ea5","location":{"line":16,"column":3},"keyword":"Given ","text":"some TypeScript code:","docString":{"location":{"line":17,"column":3},"content":" type Cheese = 'reblochon' | 'roquefort' | 'rocamadour'","delimiter":"```","mediaType":"typescript"}},{"id":"e50006d3-16c5-461f-ada2-f32aa4202d80","location":{"line":20,"column":3},"keyword":"And ","text":"some classic Gherkin:","docString":{"location":{"line":21,"column":3},"content":" Given there are 24 apples in Mary's basket","delimiter":"```","mediaType":"gherkin"}},{"id":"cf4e376e-1497-4906-8c61-ed5d311939b7","location":{"line":24,"column":3},"keyword":"When ","text":"we use a data table and attach something and then ","dataTable":{"location":{"line":25,"column":3},"rows":[{"id":"2ea05b42-6b31-4711-a7e6-c94745f2ee22","location":{"line":25,"column":3},"cells":[{"location":{"line":25,"column":5},"value":"name"},{"location":{"line":25,"column":12},"value":"age"}]},{"id":"8028eca9-95b9-40d1-a430-2f823e19194f","location":{"line":27,"column":3},"cells":[{"location":{"line":27,"column":5},"value":"Bill"},{"location":{"line":27,"column":14},"value":"3"}]},{"id":"6348f55c-fac5-47c0-b9ad-ce568b46d0ae","location":{"line":28,"column":3},"cells":[{"location":{"line":28,"column":5},"value":"Jane"},{"location":{"line":28,"column":14},"value":"6"}]},{"id":"c9256474-f76e-4c2d-ad6f-5c068f1136e1","location":{"line":29,"column":3},"cells":[{"location":{"line":29,"column":5},"value":"Isla"},{"location":{"line":29,"column":14},"value":"5"}]}]}},{"id":"5471cff7-40ad-409c-8635-4932690fdf3f","location":{"line":30,"column":3},"keyword":"Then ","text":"this might or might not run"}],"examples":[{"id":"e9a54bfa-ce42-457a-b636-7982c2c16392","tags":[],"location":{"line":32,"column":6},"keyword":"Examples","name":"because we need more tables","description":"","tableHeader":{"id":"0d5b3c3f-7968-4d44-8d30-5e3f5e1e0110","location":{"line":36,"column":3},"cells":[{"location":{"line":36,"column":5},"value":"what"}]},"tableBody":[{"id":"917d0b62-08b8-4f2a-9a9d-56c3689a7286","location":{"line":38,"column":3},"cells":[{"location":{"line":38,"column":5},"value":"fail"}]},{"id":"fd11fd3b-d6a1-4792-b02e-1e8c7efa8101","location":{"line":39,"column":3},"cells":[{"location":{"line":39,"column":5},"value":"pass"}]}]}]}}],"tags":[]}}]},"comments":[],"uri":"features/markdown/markdown.feature.md"}} +{"pickle":{"id":"7dd709a8-ab22-4e85-b48c-c47804ef6b05","uri":"features/markdown/markdown.feature.md","astNodeIds":["6d4a7133-3cc8-4c49-918e-fee354ffb116","917d0b62-08b8-4f2a-9a9d-56c3689a7286"],"name":"Ylajali!","language":"en","steps":[{"id":"838512f5-88fc-4ea0-ba61-1d76775ede7c","text":"some TypeScript code:","argument":{"docString":{"content":" type Cheese = 'reblochon' | 'roquefort' | 'rocamadour'","mediaType":"typescript"}},"astNodeIds":["11b2cb16-f76d-4ed0-9249-1f04d3550ea5","917d0b62-08b8-4f2a-9a9d-56c3689a7286"]},{"id":"0c7d915c-e8b9-429f-a1de-ea01a0d15fb0","text":"some classic Gherkin:","argument":{"docString":{"content":" Given there are 24 apples in Mary's basket","mediaType":"gherkin"}},"astNodeIds":["e50006d3-16c5-461f-ada2-f32aa4202d80","917d0b62-08b8-4f2a-9a9d-56c3689a7286"]},{"id":"b57d7b0e-34a0-4301-977d-d90a5971041e","text":"we use a data table and attach something and then fail","argument":{"dataTable":{"rows":[{"cells":[{"value":"name"},{"value":"age"}]},{"cells":[{"value":"Bill"},{"value":"3"}]},{"cells":[{"value":"Jane"},{"value":"6"}]},{"cells":[{"value":"Isla"},{"value":"5"}]}]}},"astNodeIds":["cf4e376e-1497-4906-8c61-ed5d311939b7","917d0b62-08b8-4f2a-9a9d-56c3689a7286"]},{"id":"7e51a4d0-95bb-4527-9be2-b92c70280d20","text":"this might or might not run","astNodeIds":["5471cff7-40ad-409c-8635-4932690fdf3f","917d0b62-08b8-4f2a-9a9d-56c3689a7286"]}],"tags":[]}} +{"pickle":{"id":"5e8f30ff-444b-426a-a96d-2903ed3d549d","uri":"features/markdown/markdown.feature.md","astNodeIds":["6d4a7133-3cc8-4c49-918e-fee354ffb116","fd11fd3b-d6a1-4792-b02e-1e8c7efa8101"],"name":"Ylajali!","language":"en","steps":[{"id":"6c219a7f-9d99-487b-bc51-8ec1a2bad067","text":"some TypeScript code:","argument":{"docString":{"content":" type Cheese = 'reblochon' | 'roquefort' | 'rocamadour'","mediaType":"typescript"}},"astNodeIds":["11b2cb16-f76d-4ed0-9249-1f04d3550ea5","fd11fd3b-d6a1-4792-b02e-1e8c7efa8101"]},{"id":"735e2d78-96bd-4ca7-9537-cd2ab4a40d4a","text":"some classic Gherkin:","argument":{"docString":{"content":" Given there are 24 apples in Mary's basket","mediaType":"gherkin"}},"astNodeIds":["e50006d3-16c5-461f-ada2-f32aa4202d80","fd11fd3b-d6a1-4792-b02e-1e8c7efa8101"]},{"id":"bd54764d-afd6-4747-bd2c-392b52155c75","text":"we use a data table and attach something and then pass","argument":{"dataTable":{"rows":[{"cells":[{"value":"name"},{"value":"age"}]},{"cells":[{"value":"Bill"},{"value":"3"}]},{"cells":[{"value":"Jane"},{"value":"6"}]},{"cells":[{"value":"Isla"},{"value":"5"}]}]}},"astNodeIds":["cf4e376e-1497-4906-8c61-ed5d311939b7","fd11fd3b-d6a1-4792-b02e-1e8c7efa8101"]},{"id":"952b4081-4de1-43a1-b4ca-12649ea392de","text":"this might or might not run","astNodeIds":["5471cff7-40ad-409c-8635-4932690fdf3f","fd11fd3b-d6a1-4792-b02e-1e8c7efa8101"]}],"tags":[]}} +{"stepDefinition":{"id":"f47d3ed6-e5b1-4199-a97e-176f3cfb595a","pattern":{"type":"CUCUMBER_EXPRESSION","source":"some TypeScript code:"},"sourceReference":{"uri":"features/markdown/markdown.feature.md.ts","location":{"line":4}}}} +{"stepDefinition":{"id":"e3ad93d2-9264-4065-bda1-a14ece9484e8","pattern":{"type":"CUCUMBER_EXPRESSION","source":"some classic Gherkin:"},"sourceReference":{"uri":"features/markdown/markdown.feature.md.ts","location":{"line":8}}}} +{"stepDefinition":{"id":"e356c191-60e4-4b34-97e6-94214313767a","pattern":{"type":"CUCUMBER_EXPRESSION","source":"we use a data table and attach something and then {word}"},"sourceReference":{"uri":"features/markdown/markdown.feature.md.ts","location":{"line":12}}}} +{"stepDefinition":{"id":"6ec310fa-c871-4790-a897-c07297ef7e93","pattern":{"type":"CUCUMBER_EXPRESSION","source":"this might or might not run"},"sourceReference":{"uri":"features/markdown/markdown.feature.md.ts","location":{"line":23}}}} +{"testRunStarted":{"timestamp":{"seconds":1624564794,"nanos":495000000}}} +{"testCase":{"id":"921a76b5-615f-4256-889a-2b7d0b969f91","pickleId":"7dd709a8-ab22-4e85-b48c-c47804ef6b05","testSteps":[{"id":"30e2f04f-e4ea-4e3b-aad6-7da5c4401ae2","pickleStepId":"838512f5-88fc-4ea0-ba61-1d76775ede7c","stepDefinitionIds":["f47d3ed6-e5b1-4199-a97e-176f3cfb595a"],"stepMatchArgumentsLists":[{"stepMatchArguments":[]}]},{"id":"ff14c61d-aa87-4ce1-8ad2-a865bf089a2a","pickleStepId":"0c7d915c-e8b9-429f-a1de-ea01a0d15fb0","stepDefinitionIds":["e3ad93d2-9264-4065-bda1-a14ece9484e8"],"stepMatchArgumentsLists":[{"stepMatchArguments":[]}]},{"id":"5efb8110-5043-4ce6-87f9-99156bc674f6","pickleStepId":"b57d7b0e-34a0-4301-977d-d90a5971041e","stepDefinitionIds":["e356c191-60e4-4b34-97e6-94214313767a"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"value":"fail","start":50,"children":[]},"parameterTypeName":"word"}]}]},{"id":"ad5da6a7-6638-4fcb-951e-390cb7477d1c","pickleStepId":"7e51a4d0-95bb-4527-9be2-b92c70280d20","stepDefinitionIds":["6ec310fa-c871-4790-a897-c07297ef7e93"],"stepMatchArgumentsLists":[{"stepMatchArguments":[]}]}]}} +{"testCase":{"id":"cd8d0118-82fa-4366-977b-b615a98afabb","pickleId":"5e8f30ff-444b-426a-a96d-2903ed3d549d","testSteps":[{"id":"554b9ecf-644a-4419-a187-51554b870d3a","pickleStepId":"6c219a7f-9d99-487b-bc51-8ec1a2bad067","stepDefinitionIds":["f47d3ed6-e5b1-4199-a97e-176f3cfb595a"],"stepMatchArgumentsLists":[{"stepMatchArguments":[]}]},{"id":"b93c9943-ec05-45f5-9bbd-0766bc8dca5b","pickleStepId":"735e2d78-96bd-4ca7-9537-cd2ab4a40d4a","stepDefinitionIds":["e3ad93d2-9264-4065-bda1-a14ece9484e8"],"stepMatchArgumentsLists":[{"stepMatchArguments":[]}]},{"id":"886087f2-0875-4fbb-b999-047a0a9d1452","pickleStepId":"bd54764d-afd6-4747-bd2c-392b52155c75","stepDefinitionIds":["e356c191-60e4-4b34-97e6-94214313767a"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"value":"pass","start":50,"children":[]},"parameterTypeName":"word"}]}]},{"id":"bf0a3f97-1524-4976-bba9-c42114af85d5","pickleStepId":"952b4081-4de1-43a1-b4ca-12649ea392de","stepDefinitionIds":["6ec310fa-c871-4790-a897-c07297ef7e93"],"stepMatchArgumentsLists":[{"stepMatchArguments":[]}]}]}} +{"testCaseStarted":{"attempt":0,"testCaseId":"921a76b5-615f-4256-889a-2b7d0b969f91","id":"27ab5365-6612-4c18-b54e-a3a55f6c28af","timestamp":{"seconds":1624564794,"nanos":495000000}}} +{"testStepStarted":{"testCaseStartedId":"27ab5365-6612-4c18-b54e-a3a55f6c28af","testStepId":"30e2f04f-e4ea-4e3b-aad6-7da5c4401ae2","timestamp":{"seconds":1624564794,"nanos":496000000}}} +{"testStepFinished":{"testCaseStartedId":"27ab5365-6612-4c18-b54e-a3a55f6c28af","testStepId":"30e2f04f-e4ea-4e3b-aad6-7da5c4401ae2","testStepResult":{"duration":{"seconds":0,"nanos":146773},"status":"PASSED"},"timestamp":{"seconds":1624564794,"nanos":496000000}}} +{"testStepStarted":{"testCaseStartedId":"27ab5365-6612-4c18-b54e-a3a55f6c28af","testStepId":"ff14c61d-aa87-4ce1-8ad2-a865bf089a2a","timestamp":{"seconds":1624564794,"nanos":496000000}}} +{"testStepFinished":{"testCaseStartedId":"27ab5365-6612-4c18-b54e-a3a55f6c28af","testStepId":"ff14c61d-aa87-4ce1-8ad2-a865bf089a2a","testStepResult":{"duration":{"seconds":0,"nanos":23913},"status":"PASSED"},"timestamp":{"seconds":1624564794,"nanos":496000000}}} +{"testStepStarted":{"testCaseStartedId":"27ab5365-6612-4c18-b54e-a3a55f6c28af","testStepId":"5efb8110-5043-4ce6-87f9-99156bc674f6","timestamp":{"seconds":1624564794,"nanos":496000000}}} +{"attachment":{"testStepId":"5efb8110-5043-4ce6-87f9-99156bc674f6","testCaseStartedId":"27ab5365-6612-4c18-b54e-a3a55f6c28af","mediaType":"text/x.cucumber.log+plain","body":"We are logging some plain text (fail)","contentEncoding":"IDENTITY"}} +{"testStepFinished":{"testCaseStartedId":"27ab5365-6612-4c18-b54e-a3a55f6c28af","testStepId":"5efb8110-5043-4ce6-87f9-99156bc674f6","testStepResult":{"duration":{"seconds":0,"nanos":262823},"status":"FAILED","message":"You asked me to fail\n at Object. (features/markdown/markdown.feature.md.ts:18:13)\n at Generator.next ()\n at new Promise ()\n at Generator.next ()\n at features/markdown/markdown.feature.md:24\n at features/markdown/markdown.feature.md:38"},"timestamp":{"seconds":1624564794,"nanos":504000000}}} +{"testStepStarted":{"testCaseStartedId":"27ab5365-6612-4c18-b54e-a3a55f6c28af","testStepId":"ad5da6a7-6638-4fcb-951e-390cb7477d1c","timestamp":{"seconds":1624564794,"nanos":504000000}}} +{"testStepFinished":{"testCaseStartedId":"27ab5365-6612-4c18-b54e-a3a55f6c28af","testStepId":"ad5da6a7-6638-4fcb-951e-390cb7477d1c","testStepResult":{"duration":{"seconds":0,"nanos":0},"status":"SKIPPED"},"timestamp":{"seconds":1624564794,"nanos":504000000}}} +{"testCaseFinished":{"testCaseStartedId":"27ab5365-6612-4c18-b54e-a3a55f6c28af","timestamp":{"seconds":1624564794,"nanos":504000000},"willBeRetried":false}} +{"testCaseStarted":{"attempt":0,"testCaseId":"cd8d0118-82fa-4366-977b-b615a98afabb","id":"bc92a7e3-5b45-4642-b9f5-c5c98c4e5a21","timestamp":{"seconds":1624564794,"nanos":504000000}}} +{"testStepStarted":{"testCaseStartedId":"bc92a7e3-5b45-4642-b9f5-c5c98c4e5a21","testStepId":"554b9ecf-644a-4419-a187-51554b870d3a","timestamp":{"seconds":1624564794,"nanos":504000000}}} +{"testStepFinished":{"testCaseStartedId":"bc92a7e3-5b45-4642-b9f5-c5c98c4e5a21","testStepId":"554b9ecf-644a-4419-a187-51554b870d3a","testStepResult":{"duration":{"seconds":0,"nanos":22226},"status":"PASSED"},"timestamp":{"seconds":1624564794,"nanos":505000000}}} +{"testStepStarted":{"testCaseStartedId":"bc92a7e3-5b45-4642-b9f5-c5c98c4e5a21","testStepId":"b93c9943-ec05-45f5-9bbd-0766bc8dca5b","timestamp":{"seconds":1624564794,"nanos":505000000}}} +{"testStepFinished":{"testCaseStartedId":"bc92a7e3-5b45-4642-b9f5-c5c98c4e5a21","testStepId":"b93c9943-ec05-45f5-9bbd-0766bc8dca5b","testStepResult":{"duration":{"seconds":0,"nanos":7739},"status":"PASSED"},"timestamp":{"seconds":1624564794,"nanos":505000000}}} +{"testStepStarted":{"testCaseStartedId":"bc92a7e3-5b45-4642-b9f5-c5c98c4e5a21","testStepId":"886087f2-0875-4fbb-b999-047a0a9d1452","timestamp":{"seconds":1624564794,"nanos":505000000}}} +{"attachment":{"testStepId":"886087f2-0875-4fbb-b999-047a0a9d1452","testCaseStartedId":"bc92a7e3-5b45-4642-b9f5-c5c98c4e5a21","mediaType":"text/x.cucumber.log+plain","body":"We are logging some plain text (pass)","contentEncoding":"IDENTITY"}} +{"testStepFinished":{"testCaseStartedId":"bc92a7e3-5b45-4642-b9f5-c5c98c4e5a21","testStepId":"886087f2-0875-4fbb-b999-047a0a9d1452","testStepResult":{"duration":{"seconds":0,"nanos":48156},"status":"PASSED"},"timestamp":{"seconds":1624564794,"nanos":505000000}}} +{"testStepStarted":{"testCaseStartedId":"bc92a7e3-5b45-4642-b9f5-c5c98c4e5a21","testStepId":"bf0a3f97-1524-4976-bba9-c42114af85d5","timestamp":{"seconds":1624564794,"nanos":505000000}}} +{"testStepFinished":{"testCaseStartedId":"bc92a7e3-5b45-4642-b9f5-c5c98c4e5a21","testStepId":"bf0a3f97-1524-4976-bba9-c42114af85d5","testStepResult":{"duration":{"seconds":0,"nanos":107556},"status":"PASSED"},"timestamp":{"seconds":1624564794,"nanos":505000000}}} +{"testCaseFinished":{"testCaseStartedId":"bc92a7e3-5b45-4642-b9f5-c5c98c4e5a21","timestamp":{"seconds":1624564794,"nanos":505000000},"willBeRetried":false}} +{"testRunFinished":{"timestamp":{"seconds":1624564794,"nanos":505000000},"success":false}} diff --git a/compatibility-kit/javascript/features/minimal/minimal.feature.ndjson b/compatibility-kit/javascript/features/minimal/minimal.feature.ndjson index d9e36955cb..ec077cb0d1 100644 --- a/compatibility-kit/javascript/features/minimal/minimal.feature.ndjson +++ b/compatibility-kit/javascript/features/minimal/minimal.feature.ndjson @@ -1,12 +1,12 @@ -{"meta":{"protocolVersion":"16.0.1","implementation":{"name":"fake-cucumber","version":"12.0.2"},"cpu":{"name":"x64"},"os":{"name":"linux","version":"5.10.25-linuxkit"},"runtime":{"name":"node.js","version":"12.16.2"}}} +{"meta":{"protocolVersion":"16.0.1","implementation":{"name":"fake-cucumber","version":"12.0.2"},"cpu":{"name":"x64"},"os":{"name":"darwin","version":"19.6.0"},"runtime":{"name":"node.js","version":"12.22.1"}}} {"source":{"data":"Feature: minimal\n \n Cucumber doesn't execute this markdown, but @cucumber/react renders it\n \n * This is\n * a bullet\n * list\n \n Scenario: cukes\n Given I have 42 cukes in my belly\n","uri":"features/minimal/minimal.feature","mediaType":"text/x.cucumber.gherkin+plain"}} -{"gherkinDocument":{"feature":{"tags":[],"location":{"line":1,"column":1},"language":"en","keyword":"Feature","name":"minimal","description":" Cucumber doesn't execute this markdown, but @cucumber/react renders it\n \n * This is\n * a bullet\n * list","children":[{"scenario":{"id":"8e524d76-54c3-482a-8c91-1d005488ab97","tags":[],"location":{"line":9,"column":3},"keyword":"Scenario","name":"cukes","description":"","steps":[{"id":"af098dca-3cfe-46ab-a32f-32deea52d162","location":{"line":10,"column":5},"keyword":"Given ","text":"I have 42 cukes in my belly"}],"examples":[]}}]},"comments":[],"uri":"features/minimal/minimal.feature"}} -{"pickle":{"id":"22e71142-bca8-4105-8cc9-fc410bf5a6e5","uri":"features/minimal/minimal.feature","astNodeIds":["8e524d76-54c3-482a-8c91-1d005488ab97"],"tags":[],"name":"cukes","language":"en","steps":[{"id":"5b69ef86-54a6-4d39-b8a0-f6ed41447820","text":"I have 42 cukes in my belly","astNodeIds":["af098dca-3cfe-46ab-a32f-32deea52d162"]}]}} -{"stepDefinition":{"id":"24e057da-74cd-4540-9536-7dd48e32a014","pattern":{"type":"CUCUMBER_EXPRESSION","source":"I have {int} cukes in my belly"},"sourceReference":{"uri":"features/minimal/minimal.feature.ts","location":{"line":4}}}} -{"testRunStarted":{"timestamp":{"seconds":1623962942,"nanos":600000000}}} -{"testCase":{"id":"84edbb19-364e-4970-9e90-4ca4d54fc128","pickleId":"22e71142-bca8-4105-8cc9-fc410bf5a6e5","testSteps":[{"id":"589d9af7-d8eb-4e2b-afe4-a7d675f928a7","pickleStepId":"5b69ef86-54a6-4d39-b8a0-f6ed41447820","stepDefinitionIds":["24e057da-74cd-4540-9536-7dd48e32a014"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"value":"42","start":7,"children":[]},"parameterTypeName":"int"}]}]}]}} -{"testCaseStarted":{"attempt":0,"testCaseId":"84edbb19-364e-4970-9e90-4ca4d54fc128","id":"4b5a7670-6f6a-42f5-9a79-ce9e5b741dce","timestamp":{"seconds":1623962942,"nanos":602000000}}} -{"testStepStarted":{"testCaseStartedId":"4b5a7670-6f6a-42f5-9a79-ce9e5b741dce","testStepId":"589d9af7-d8eb-4e2b-afe4-a7d675f928a7","timestamp":{"seconds":1623962942,"nanos":603000000}}} -{"testStepFinished":{"testCaseStartedId":"4b5a7670-6f6a-42f5-9a79-ce9e5b741dce","testStepId":"589d9af7-d8eb-4e2b-afe4-a7d675f928a7","testStepResult":{"duration":{"seconds":0,"nanos":961800},"status":"PASSED","willBeRetried":false},"timestamp":{"seconds":1623962942,"nanos":609000000}}} -{"testCaseFinished":{"testCaseStartedId":"4b5a7670-6f6a-42f5-9a79-ce9e5b741dce","timestamp":{"seconds":1623962942,"nanos":609000000}}} -{"testRunFinished":{"timestamp":{"seconds":1623962942,"nanos":610000000},"success":true}} +{"gherkinDocument":{"feature":{"tags":[],"location":{"line":1,"column":1},"language":"en","keyword":"Feature","name":"minimal","description":" Cucumber doesn't execute this markdown, but @cucumber/react renders it\n \n * This is\n * a bullet\n * list","children":[{"scenario":{"id":"126d2db4-4ccb-4c42-8627-8c2666e8cc7b","tags":[],"location":{"line":9,"column":3},"keyword":"Scenario","name":"cukes","description":"","steps":[{"id":"d2666380-ea8f-4ca7-a064-21fd4a8369fb","location":{"line":10,"column":5},"keyword":"Given ","text":"I have 42 cukes in my belly"}],"examples":[]}}]},"comments":[],"uri":"features/minimal/minimal.feature"}} +{"pickle":{"id":"e09526e0-848c-4fda-a465-23e345f21574","uri":"features/minimal/minimal.feature","astNodeIds":["126d2db4-4ccb-4c42-8627-8c2666e8cc7b"],"tags":[],"name":"cukes","language":"en","steps":[{"id":"df73c918-d612-4f5c-a29d-452835b84789","text":"I have 42 cukes in my belly","astNodeIds":["d2666380-ea8f-4ca7-a064-21fd4a8369fb"]}]}} +{"stepDefinition":{"id":"9f765d74-f49d-4638-a307-02235dd1f4f1","pattern":{"type":"CUCUMBER_EXPRESSION","source":"I have {int} cukes in my belly"},"sourceReference":{"uri":"features/minimal/minimal.feature.ts","location":{"line":4}}}} +{"testRunStarted":{"timestamp":{"seconds":1624564794,"nanos":942000000}}} +{"testCase":{"id":"f7a2dad9-3141-4d27-8f3c-07285103756a","pickleId":"e09526e0-848c-4fda-a465-23e345f21574","testSteps":[{"id":"448e7c9c-2150-4c82-acf4-4d99f506d591","pickleStepId":"df73c918-d612-4f5c-a29d-452835b84789","stepDefinitionIds":["9f765d74-f49d-4638-a307-02235dd1f4f1"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"value":"42","start":7,"children":[]},"parameterTypeName":"int"}]}]}]}} +{"testCaseStarted":{"attempt":0,"testCaseId":"f7a2dad9-3141-4d27-8f3c-07285103756a","id":"e09dffa3-9e4c-4ee7-9a0a-b43bff094804","timestamp":{"seconds":1624564794,"nanos":942000000}}} +{"testStepStarted":{"testCaseStartedId":"e09dffa3-9e4c-4ee7-9a0a-b43bff094804","testStepId":"448e7c9c-2150-4c82-acf4-4d99f506d591","timestamp":{"seconds":1624564794,"nanos":943000000}}} +{"testStepFinished":{"testCaseStartedId":"e09dffa3-9e4c-4ee7-9a0a-b43bff094804","testStepId":"448e7c9c-2150-4c82-acf4-4d99f506d591","testStepResult":{"duration":{"seconds":0,"nanos":205677},"status":"PASSED"},"timestamp":{"seconds":1624564794,"nanos":943000000}}} +{"testCaseFinished":{"testCaseStartedId":"e09dffa3-9e4c-4ee7-9a0a-b43bff094804","timestamp":{"seconds":1624564794,"nanos":943000000},"willBeRetried":false}} +{"testRunFinished":{"timestamp":{"seconds":1624564794,"nanos":943000000},"success":true}} diff --git a/compatibility-kit/javascript/features/parameter-types/parameter-types.feature.ndjson b/compatibility-kit/javascript/features/parameter-types/parameter-types.feature.ndjson index b3ec7d1952..e7ba045bb9 100644 --- a/compatibility-kit/javascript/features/parameter-types/parameter-types.feature.ndjson +++ b/compatibility-kit/javascript/features/parameter-types/parameter-types.feature.ndjson @@ -1,13 +1,13 @@ -{"meta":{"protocolVersion":"16.0.1","implementation":{"name":"fake-cucumber","version":"12.0.2"},"cpu":{"name":"x64"},"os":{"name":"linux","version":"5.10.25-linuxkit"},"runtime":{"name":"node.js","version":"12.16.2"}}} +{"meta":{"protocolVersion":"16.0.1","implementation":{"name":"fake-cucumber","version":"12.0.2"},"cpu":{"name":"x64"},"os":{"name":"darwin","version":"19.6.0"},"runtime":{"name":"node.js","version":"12.22.1"}}} {"source":{"data":"Feature: Parameter Types\n Cucumber lets you define your own parameter types, which can be used\n in Cucumber Expressions. This lets you define a precise domain-specific\n vocabulary which can be used to generate a glossary with examples taken\n from your scenarios. They also let you transform strings and tables into\n rich types.\n\n Scenario: flights\n Given LHR-CDG has been delayed 45 minutes\n","uri":"features/parameter-types/parameter-types.feature","mediaType":"text/x.cucumber.gherkin+plain"}} -{"gherkinDocument":{"feature":{"tags":[],"location":{"line":1,"column":1},"language":"en","keyword":"Feature","name":"Parameter Types","description":" Cucumber lets you define your own parameter types, which can be used\n in Cucumber Expressions. This lets you define a precise domain-specific\n vocabulary which can be used to generate a glossary with examples taken\n from your scenarios. They also let you transform strings and tables into\n rich types.","children":[{"scenario":{"id":"bc63c99b-1a6c-4909-8ff9-e222a9d15c0f","tags":[],"location":{"line":8,"column":3},"keyword":"Scenario","name":"flights","description":"","steps":[{"id":"a284a59c-446d-4654-8e62-75b2c8e10f88","location":{"line":9,"column":5},"keyword":"Given ","text":"LHR-CDG has been delayed 45 minutes"}],"examples":[]}}]},"comments":[],"uri":"features/parameter-types/parameter-types.feature"}} -{"pickle":{"id":"1828c6f4-50f7-48e2-83f2-b86947ea818e","uri":"features/parameter-types/parameter-types.feature","astNodeIds":["bc63c99b-1a6c-4909-8ff9-e222a9d15c0f"],"tags":[],"name":"flights","language":"en","steps":[{"id":"af052fd7-bbc6-4a97-9d62-94de82e982ae","text":"LHR-CDG has been delayed 45 minutes","astNodeIds":["a284a59c-446d-4654-8e62-75b2c8e10f88"]}]}} -{"parameterType":{"id":"ea576bf3-1698-4a44-afec-38d27f085755","name":"flight","regularExpressions":["([A-Z]{3})-([A-Z]{3})"],"preferForRegularExpressionMatch":false,"useForSnippets":true}} -{"stepDefinition":{"id":"fdf6ecf0-5178-449e-b8a7-280909906bd9","pattern":{"type":"CUCUMBER_EXPRESSION","source":"{flight} has been delayed {int} minutes"},"sourceReference":{"uri":"features/parameter-types/parameter-types.feature.ts","location":{"line":16}}}} -{"testRunStarted":{"timestamp":{"seconds":1623962944,"nanos":254000000}}} -{"testCase":{"id":"45d66ce0-9beb-42f9-9578-a6f16d8ccea8","pickleId":"1828c6f4-50f7-48e2-83f2-b86947ea818e","testSteps":[{"id":"8faed490-9697-4c43-b6f6-d7b0007ec450","pickleStepId":"af052fd7-bbc6-4a97-9d62-94de82e982ae","stepDefinitionIds":["fdf6ecf0-5178-449e-b8a7-280909906bd9"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"value":"LHR-CDG","start":0,"children":[{"value":"LHR","start":0,"children":[]},{"value":"CDG","start":4,"children":[]}]},"parameterTypeName":"flight"},{"group":{"value":"45","start":25,"children":[]},"parameterTypeName":"int"}]}]}]}} -{"testCaseStarted":{"attempt":0,"testCaseId":"45d66ce0-9beb-42f9-9578-a6f16d8ccea8","id":"91c518d0-0d85-43e3-9ad0-77ec30c86217","timestamp":{"seconds":1623962944,"nanos":257000000}}} -{"testStepStarted":{"testCaseStartedId":"91c518d0-0d85-43e3-9ad0-77ec30c86217","testStepId":"8faed490-9697-4c43-b6f6-d7b0007ec450","timestamp":{"seconds":1623962944,"nanos":261000000}}} -{"testStepFinished":{"testCaseStartedId":"91c518d0-0d85-43e3-9ad0-77ec30c86217","testStepId":"8faed490-9697-4c43-b6f6-d7b0007ec450","testStepResult":{"duration":{"seconds":0,"nanos":1208499},"status":"PASSED","willBeRetried":false},"timestamp":{"seconds":1623962944,"nanos":263000000}}} -{"testCaseFinished":{"testCaseStartedId":"91c518d0-0d85-43e3-9ad0-77ec30c86217","timestamp":{"seconds":1623962944,"nanos":264000000}}} -{"testRunFinished":{"timestamp":{"seconds":1623962944,"nanos":265000000},"success":true}} +{"gherkinDocument":{"feature":{"tags":[],"location":{"line":1,"column":1},"language":"en","keyword":"Feature","name":"Parameter Types","description":" Cucumber lets you define your own parameter types, which can be used\n in Cucumber Expressions. This lets you define a precise domain-specific\n vocabulary which can be used to generate a glossary with examples taken\n from your scenarios. They also let you transform strings and tables into\n rich types.","children":[{"scenario":{"id":"259fb4bb-0f0a-4155-a2cf-61319c7843db","tags":[],"location":{"line":8,"column":3},"keyword":"Scenario","name":"flights","description":"","steps":[{"id":"2d241dd4-4196-4287-b7c6-f50c4532d20b","location":{"line":9,"column":5},"keyword":"Given ","text":"LHR-CDG has been delayed 45 minutes"}],"examples":[]}}]},"comments":[],"uri":"features/parameter-types/parameter-types.feature"}} +{"pickle":{"id":"8d4ac61b-113d-4b60-9a97-75a30d7fe440","uri":"features/parameter-types/parameter-types.feature","astNodeIds":["259fb4bb-0f0a-4155-a2cf-61319c7843db"],"tags":[],"name":"flights","language":"en","steps":[{"id":"b3ff6544-040b-47eb-8f07-a9770e5780e7","text":"LHR-CDG has been delayed 45 minutes","astNodeIds":["2d241dd4-4196-4287-b7c6-f50c4532d20b"]}]}} +{"parameterType":{"id":"3e6e6e3e-61e7-47f4-a702-307e97593a0b","name":"flight","regularExpressions":["([A-Z]{3})-([A-Z]{3})"],"preferForRegularExpressionMatch":false,"useForSnippets":true}} +{"stepDefinition":{"id":"f598d760-07ee-4c39-bc0e-90921688f2cd","pattern":{"type":"CUCUMBER_EXPRESSION","source":"{flight} has been delayed {int} minutes"},"sourceReference":{"uri":"features/parameter-types/parameter-types.feature.ts","location":{"line":16}}}} +{"testRunStarted":{"timestamp":{"seconds":1624564795,"nanos":401000000}}} +{"testCase":{"id":"b31b5b46-8d72-4d3d-83ec-db57eb002f6b","pickleId":"8d4ac61b-113d-4b60-9a97-75a30d7fe440","testSteps":[{"id":"e6a3d27e-b6d0-446c-9fe2-e67e13c0e013","pickleStepId":"b3ff6544-040b-47eb-8f07-a9770e5780e7","stepDefinitionIds":["f598d760-07ee-4c39-bc0e-90921688f2cd"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"value":"LHR-CDG","start":0,"children":[{"value":"LHR","start":0,"children":[]},{"value":"CDG","start":4,"children":[]}]},"parameterTypeName":"flight"},{"group":{"value":"45","start":25,"children":[]},"parameterTypeName":"int"}]}]}]}} +{"testCaseStarted":{"attempt":0,"testCaseId":"b31b5b46-8d72-4d3d-83ec-db57eb002f6b","id":"a9e913d7-cab3-4f19-b1aa-6b83b0fa83c6","timestamp":{"seconds":1624564795,"nanos":402000000}}} +{"testStepStarted":{"testCaseStartedId":"a9e913d7-cab3-4f19-b1aa-6b83b0fa83c6","testStepId":"e6a3d27e-b6d0-446c-9fe2-e67e13c0e013","timestamp":{"seconds":1624564795,"nanos":402000000}}} +{"testStepFinished":{"testCaseStartedId":"a9e913d7-cab3-4f19-b1aa-6b83b0fa83c6","testStepId":"e6a3d27e-b6d0-446c-9fe2-e67e13c0e013","testStepResult":{"duration":{"seconds":0,"nanos":274851},"status":"PASSED"},"timestamp":{"seconds":1624564795,"nanos":402000000}}} +{"testCaseFinished":{"testCaseStartedId":"a9e913d7-cab3-4f19-b1aa-6b83b0fa83c6","timestamp":{"seconds":1624564795,"nanos":402000000},"willBeRetried":false}} +{"testRunFinished":{"timestamp":{"seconds":1624564795,"nanos":403000000},"success":true}} diff --git a/compatibility-kit/javascript/features/retry/retry.feature.ndjson b/compatibility-kit/javascript/features/retry/retry.feature.ndjson index 5b479d17a1..bd8a0ffa7e 100644 --- a/compatibility-kit/javascript/features/retry/retry.feature.ndjson +++ b/compatibility-kit/javascript/features/retry/retry.feature.ndjson @@ -1,66 +1,66 @@ {"meta":{"protocolVersion":"16.0.1","implementation":{"name":"fake-cucumber","version":"12.0.2"},"cpu":{"name":"x64"},"os":{"name":"darwin","version":"19.6.0"},"runtime":{"name":"node.js","version":"12.22.1"}}} {"source":{"data":"Feature: Retry\n\n Some Cucumber implementations support a Retry mechanism, where test cases that fail\n can be retried up to a limited number of attempts in the same test run.\n\n Non-passing statuses other than FAILED don't trigger a retry - they are not going to pass\n however many times we attempt them.\n\n Scenario: test case passes on the first attempt\n Given a step that always passes\n\n Scenario: test case passes on the second attempt\n Given a step that passes the second time\n\n Scenario: test case passes on the final attempt\n Given a step that passes the third time\n\n Scenario: test case fails on every attempt\n Given a step that always fails\n\n Scenario: don't retry on PENDING\n Given a pending step\n\n Scenario: don't retry on UNDEFINED\n Given a non-existent step\n","uri":"features/retry/retry.feature","mediaType":"text/x.cucumber.gherkin+plain"}} -{"gherkinDocument":{"feature":{"tags":[],"location":{"line":1,"column":1},"language":"en","keyword":"Feature","name":"Retry","description":" Some Cucumber implementations support a Retry mechanism, where test cases that fail\n can be retried up to a limited number of attempts in the same test run.\n\n Non-passing statuses other than FAILED don't trigger a retry - they are not going to pass\n however many times we attempt them.","children":[{"scenario":{"id":"7603853e-0f58-4e37-aa4f-f27cbde73b52","tags":[],"location":{"line":9,"column":3},"keyword":"Scenario","name":"test case passes on the first attempt","description":"","steps":[{"id":"2cdbea5f-a23d-4323-82a1-2e59aa42a166","location":{"line":10,"column":5},"keyword":"Given ","text":"a step that always passes"}],"examples":[]}},{"scenario":{"id":"ab274e86-328d-4b78-b414-d9d74ca9a799","tags":[],"location":{"line":12,"column":3},"keyword":"Scenario","name":"test case passes on the second attempt","description":"","steps":[{"id":"24cc7d4b-af0d-4895-bbb4-4b97f1e0db68","location":{"line":13,"column":5},"keyword":"Given ","text":"a step that passes the second time"}],"examples":[]}},{"scenario":{"id":"3e760d81-06f6-444d-a816-db2c22e10906","tags":[],"location":{"line":15,"column":3},"keyword":"Scenario","name":"test case passes on the final attempt","description":"","steps":[{"id":"564a75ae-5418-4ea6-af97-bbf89782b0bd","location":{"line":16,"column":5},"keyword":"Given ","text":"a step that passes the third time"}],"examples":[]}},{"scenario":{"id":"0849d98f-1af7-474b-a0f2-91a5039c9942","tags":[],"location":{"line":18,"column":3},"keyword":"Scenario","name":"test case fails on every attempt","description":"","steps":[{"id":"4c5ff741-eaaf-47b1-a4b5-3f061d5ee8fd","location":{"line":19,"column":5},"keyword":"Given ","text":"a step that always fails"}],"examples":[]}},{"scenario":{"id":"56a26755-0f6e-468c-bfaa-137ce00816c2","tags":[],"location":{"line":21,"column":3},"keyword":"Scenario","name":"don't retry on PENDING","description":"","steps":[{"id":"ddb2c1a2-9465-4d27-a9c5-e2ac81169092","location":{"line":22,"column":5},"keyword":"Given ","text":"a pending step"}],"examples":[]}},{"scenario":{"id":"06b61799-6a1e-4662-9c33-f96188ea2cdf","tags":[],"location":{"line":24,"column":3},"keyword":"Scenario","name":"don't retry on UNDEFINED","description":"","steps":[{"id":"c1627101-eee4-4b4c-8dee-1f16f9c17ebc","location":{"line":25,"column":5},"keyword":"Given ","text":"a non-existent step"}],"examples":[]}}]},"comments":[],"uri":"features/retry/retry.feature"}} -{"pickle":{"id":"2edb773c-22d8-4ce8-8ecf-f2c79753bdb0","uri":"features/retry/retry.feature","astNodeIds":["7603853e-0f58-4e37-aa4f-f27cbde73b52"],"tags":[],"name":"test case passes on the first attempt","language":"en","steps":[{"id":"98521534-f829-44d7-91b8-f28d489fa172","text":"a step that always passes","astNodeIds":["2cdbea5f-a23d-4323-82a1-2e59aa42a166"]}]}} -{"pickle":{"id":"db886750-a80a-4755-b631-70e624449a3f","uri":"features/retry/retry.feature","astNodeIds":["ab274e86-328d-4b78-b414-d9d74ca9a799"],"tags":[],"name":"test case passes on the second attempt","language":"en","steps":[{"id":"f9ef5152-5af7-4a75-9f5c-c3e5e06140ac","text":"a step that passes the second time","astNodeIds":["24cc7d4b-af0d-4895-bbb4-4b97f1e0db68"]}]}} -{"pickle":{"id":"db9776f5-9f6b-4243-a684-938c858cf19c","uri":"features/retry/retry.feature","astNodeIds":["3e760d81-06f6-444d-a816-db2c22e10906"],"tags":[],"name":"test case passes on the final attempt","language":"en","steps":[{"id":"f652fa91-608b-4a20-a646-0d101db04f3e","text":"a step that passes the third time","astNodeIds":["564a75ae-5418-4ea6-af97-bbf89782b0bd"]}]}} -{"pickle":{"id":"b209df7b-73be-44fe-9cd1-542ff813601d","uri":"features/retry/retry.feature","astNodeIds":["0849d98f-1af7-474b-a0f2-91a5039c9942"],"tags":[],"name":"test case fails on every attempt","language":"en","steps":[{"id":"f3d4503a-9406-4602-8351-41c894db9a34","text":"a step that always fails","astNodeIds":["4c5ff741-eaaf-47b1-a4b5-3f061d5ee8fd"]}]}} -{"pickle":{"id":"b6af4834-fc8b-43ac-bd9c-5d67ca7f1ec6","uri":"features/retry/retry.feature","astNodeIds":["56a26755-0f6e-468c-bfaa-137ce00816c2"],"tags":[],"name":"don't retry on PENDING","language":"en","steps":[{"id":"67008a71-c5bf-4329-9b9b-46c245ce3cc5","text":"a pending step","astNodeIds":["ddb2c1a2-9465-4d27-a9c5-e2ac81169092"]}]}} -{"pickle":{"id":"e2d316d3-7b43-46cb-a1b3-064a7957ca79","uri":"features/retry/retry.feature","astNodeIds":["06b61799-6a1e-4662-9c33-f96188ea2cdf"],"tags":[],"name":"don't retry on UNDEFINED","language":"en","steps":[{"id":"a3592eb9-a5c8-49ed-914a-43afffe67a16","text":"a non-existent step","astNodeIds":["c1627101-eee4-4b4c-8dee-1f16f9c17ebc"]}]}} -{"stepDefinition":{"id":"3e1c68ed-0aab-4f2d-a259-e15e9a6ebd5a","pattern":{"type":"CUCUMBER_EXPRESSION","source":"a step that always passes"},"sourceReference":{"uri":"features/retry/retry.feature.ts","location":{"line":3}}}} -{"stepDefinition":{"id":"68d26e2c-fb5b-4544-84a5-2e14d4d02e60","pattern":{"type":"CUCUMBER_EXPRESSION","source":"a step that passes the second time"},"sourceReference":{"uri":"features/retry/retry.feature.ts","location":{"line":8}}}} -{"stepDefinition":{"id":"25f10a67-e3fa-4020-b4e6-e4f3e96f6e18","pattern":{"type":"CUCUMBER_EXPRESSION","source":"a step that passes the third time"},"sourceReference":{"uri":"features/retry/retry.feature.ts","location":{"line":16}}}} -{"stepDefinition":{"id":"65b8bc1e-c2c3-4ee5-b1b5-f39d12f6e45b","pattern":{"type":"CUCUMBER_EXPRESSION","source":"a step that always fails"},"sourceReference":{"uri":"features/retry/retry.feature.ts","location":{"line":23}}}} -{"stepDefinition":{"id":"ea5bf72d-6f6d-426a-81ca-97c510730e83","pattern":{"type":"CUCUMBER_EXPRESSION","source":"a pending step"},"sourceReference":{"uri":"features/retry/retry.feature.ts","location":{"line":27}}}} -{"testRunStarted":{"timestamp":{"seconds":1624479621,"nanos":37000000}}} -{"testCase":{"id":"e869a04a-54d4-4e6d-ba37-0d176572a68b","pickleId":"2edb773c-22d8-4ce8-8ecf-f2c79753bdb0","testSteps":[{"id":"3fc93e1e-7d01-4027-8b0c-9be49a4f2b7b","pickleStepId":"98521534-f829-44d7-91b8-f28d489fa172","stepDefinitionIds":["3e1c68ed-0aab-4f2d-a259-e15e9a6ebd5a"],"stepMatchArgumentsLists":[{"stepMatchArguments":[]}]}]}} -{"testCase":{"id":"f7d970d2-46ec-4787-947d-4039dbddf900","pickleId":"db886750-a80a-4755-b631-70e624449a3f","testSteps":[{"id":"0b491dd4-75fb-41b9-bcbc-5df96b5bf491","pickleStepId":"f9ef5152-5af7-4a75-9f5c-c3e5e06140ac","stepDefinitionIds":["68d26e2c-fb5b-4544-84a5-2e14d4d02e60"],"stepMatchArgumentsLists":[{"stepMatchArguments":[]}]}]}} -{"testCase":{"id":"68aef805-aba8-431a-949f-b0cad10d77ab","pickleId":"db9776f5-9f6b-4243-a684-938c858cf19c","testSteps":[{"id":"995d6230-9483-4462-a0ef-42196de0359c","pickleStepId":"f652fa91-608b-4a20-a646-0d101db04f3e","stepDefinitionIds":["25f10a67-e3fa-4020-b4e6-e4f3e96f6e18"],"stepMatchArgumentsLists":[{"stepMatchArguments":[]}]}]}} -{"testCase":{"id":"943d198e-24c4-4d8e-bd1f-2d8dbea9f670","pickleId":"b209df7b-73be-44fe-9cd1-542ff813601d","testSteps":[{"id":"bbe8e8b2-1fcb-4214-8f54-c96ddfea69dc","pickleStepId":"f3d4503a-9406-4602-8351-41c894db9a34","stepDefinitionIds":["65b8bc1e-c2c3-4ee5-b1b5-f39d12f6e45b"],"stepMatchArgumentsLists":[{"stepMatchArguments":[]}]}]}} -{"testCase":{"id":"aca0b91e-7723-4780-892d-ea075a312d9d","pickleId":"b6af4834-fc8b-43ac-bd9c-5d67ca7f1ec6","testSteps":[{"id":"6c1e4e74-7f10-4ecf-aa48-4c75d3ede25c","pickleStepId":"67008a71-c5bf-4329-9b9b-46c245ce3cc5","stepDefinitionIds":["ea5bf72d-6f6d-426a-81ca-97c510730e83"],"stepMatchArgumentsLists":[{"stepMatchArguments":[]}]}]}} -{"testCase":{"id":"61670aff-abf0-4d79-947e-4118f1a72978","pickleId":"e2d316d3-7b43-46cb-a1b3-064a7957ca79","testSteps":[{"id":"5f706baf-3d0d-4109-8513-baec0bd41966","pickleStepId":"a3592eb9-a5c8-49ed-914a-43afffe67a16","stepDefinitionIds":[],"stepMatchArgumentsLists":[]}]}} -{"testCaseStarted":{"attempt":0,"testCaseId":"e869a04a-54d4-4e6d-ba37-0d176572a68b","id":"66af4c15-f759-401c-8014-815262f60f4a","timestamp":{"seconds":1624479621,"nanos":38000000}}} -{"testStepStarted":{"testCaseStartedId":"66af4c15-f759-401c-8014-815262f60f4a","testStepId":"3fc93e1e-7d01-4027-8b0c-9be49a4f2b7b","timestamp":{"seconds":1624479621,"nanos":38000000}}} -{"testStepFinished":{"testCaseStartedId":"66af4c15-f759-401c-8014-815262f60f4a","testStepId":"3fc93e1e-7d01-4027-8b0c-9be49a4f2b7b","testStepResult":{"duration":{"seconds":0,"nanos":212281},"status":"PASSED","willBeRetried":false},"timestamp":{"seconds":1624479621,"nanos":38000000}}} -{"testCaseFinished":{"testCaseStartedId":"66af4c15-f759-401c-8014-815262f60f4a","timestamp":{"seconds":1624479621,"nanos":38000000}}} -{"testCaseStarted":{"attempt":0,"testCaseId":"f7d970d2-46ec-4787-947d-4039dbddf900","id":"0400dcdf-7d6d-4a1e-b0e4-72100a5b522b","timestamp":{"seconds":1624479621,"nanos":38000000}}} -{"testStepStarted":{"testCaseStartedId":"0400dcdf-7d6d-4a1e-b0e4-72100a5b522b","testStepId":"0b491dd4-75fb-41b9-bcbc-5df96b5bf491","timestamp":{"seconds":1624479621,"nanos":39000000}}} -{"testStepFinished":{"testCaseStartedId":"0400dcdf-7d6d-4a1e-b0e4-72100a5b522b","testStepId":"0b491dd4-75fb-41b9-bcbc-5df96b5bf491","testStepResult":{"duration":{"seconds":0,"nanos":46724},"status":"FAILED","willBeRetried":true,"message":"Exception in step\n at Object. (features/retry/retry.feature.ts:11:11)\n at Generator.next ()\n at new Promise ()\n at Generator.next ()\n at features/retry/retry.feature:13"},"timestamp":{"seconds":1624479621,"nanos":47000000}}} -{"testCaseFinished":{"testCaseStartedId":"0400dcdf-7d6d-4a1e-b0e4-72100a5b522b","timestamp":{"seconds":1624479621,"nanos":47000000}}} -{"testCaseStarted":{"attempt":1,"testCaseId":"f7d970d2-46ec-4787-947d-4039dbddf900","id":"e0c0f6a6-0cfd-48bf-9ebf-54187cb335fa","timestamp":{"seconds":1624479621,"nanos":47000000}}} -{"testStepStarted":{"testCaseStartedId":"e0c0f6a6-0cfd-48bf-9ebf-54187cb335fa","testStepId":"0b491dd4-75fb-41b9-bcbc-5df96b5bf491","timestamp":{"seconds":1624479621,"nanos":47000000}}} -{"testStepFinished":{"testCaseStartedId":"e0c0f6a6-0cfd-48bf-9ebf-54187cb335fa","testStepId":"0b491dd4-75fb-41b9-bcbc-5df96b5bf491","testStepResult":{"duration":{"seconds":0,"nanos":27645},"status":"PASSED","willBeRetried":false},"timestamp":{"seconds":1624479621,"nanos":47000000}}} -{"testCaseFinished":{"testCaseStartedId":"e0c0f6a6-0cfd-48bf-9ebf-54187cb335fa","timestamp":{"seconds":1624479621,"nanos":47000000}}} -{"testCaseStarted":{"attempt":0,"testCaseId":"68aef805-aba8-431a-949f-b0cad10d77ab","id":"5f4fe282-bede-4104-9034-b6ea01174de7","timestamp":{"seconds":1624479621,"nanos":47000000}}} -{"testStepStarted":{"testCaseStartedId":"5f4fe282-bede-4104-9034-b6ea01174de7","testStepId":"995d6230-9483-4462-a0ef-42196de0359c","timestamp":{"seconds":1624479621,"nanos":47000000}}} -{"testStepFinished":{"testCaseStartedId":"5f4fe282-bede-4104-9034-b6ea01174de7","testStepId":"995d6230-9483-4462-a0ef-42196de0359c","testStepResult":{"duration":{"seconds":0,"nanos":73441},"status":"FAILED","willBeRetried":true,"message":"Exception in step\n at Object. (features/retry/retry.feature.ts:19:11)\n at Generator.next ()\n at new Promise ()\n at Generator.next ()\n at features/retry/retry.feature:16"},"timestamp":{"seconds":1624479621,"nanos":48000000}}} -{"testCaseFinished":{"testCaseStartedId":"5f4fe282-bede-4104-9034-b6ea01174de7","timestamp":{"seconds":1624479621,"nanos":48000000}}} -{"testCaseStarted":{"attempt":1,"testCaseId":"68aef805-aba8-431a-949f-b0cad10d77ab","id":"20b51aa0-a4ef-4621-9485-4836010a857e","timestamp":{"seconds":1624479621,"nanos":48000000}}} -{"testStepStarted":{"testCaseStartedId":"20b51aa0-a4ef-4621-9485-4836010a857e","testStepId":"995d6230-9483-4462-a0ef-42196de0359c","timestamp":{"seconds":1624479621,"nanos":48000000}}} -{"testStepFinished":{"testCaseStartedId":"20b51aa0-a4ef-4621-9485-4836010a857e","testStepId":"995d6230-9483-4462-a0ef-42196de0359c","testStepResult":{"duration":{"seconds":0,"nanos":16002},"status":"FAILED","willBeRetried":true,"message":"Exception in step\n at Object. (features/retry/retry.feature.ts:19:11)\n at Generator.next ()\n at new Promise ()\n at Generator.next ()\n at features/retry/retry.feature:16"},"timestamp":{"seconds":1624479621,"nanos":49000000}}} -{"testCaseFinished":{"testCaseStartedId":"20b51aa0-a4ef-4621-9485-4836010a857e","timestamp":{"seconds":1624479621,"nanos":49000000}}} -{"testCaseStarted":{"attempt":2,"testCaseId":"68aef805-aba8-431a-949f-b0cad10d77ab","id":"54048a1b-4dd9-41c6-bd00-81b0b58025b3","timestamp":{"seconds":1624479621,"nanos":49000000}}} -{"testStepStarted":{"testCaseStartedId":"54048a1b-4dd9-41c6-bd00-81b0b58025b3","testStepId":"995d6230-9483-4462-a0ef-42196de0359c","timestamp":{"seconds":1624479621,"nanos":49000000}}} -{"testStepFinished":{"testCaseStartedId":"54048a1b-4dd9-41c6-bd00-81b0b58025b3","testStepId":"995d6230-9483-4462-a0ef-42196de0359c","testStepResult":{"duration":{"seconds":0,"nanos":12140},"status":"PASSED","willBeRetried":false},"timestamp":{"seconds":1624479621,"nanos":49000000}}} -{"testCaseFinished":{"testCaseStartedId":"54048a1b-4dd9-41c6-bd00-81b0b58025b3","timestamp":{"seconds":1624479621,"nanos":49000000}}} -{"testCaseStarted":{"attempt":0,"testCaseId":"943d198e-24c4-4d8e-bd1f-2d8dbea9f670","id":"1e30a6c4-aa34-45b9-af7f-b34cdafc0d1f","timestamp":{"seconds":1624479621,"nanos":49000000}}} -{"testStepStarted":{"testCaseStartedId":"1e30a6c4-aa34-45b9-af7f-b34cdafc0d1f","testStepId":"bbe8e8b2-1fcb-4214-8f54-c96ddfea69dc","timestamp":{"seconds":1624479621,"nanos":49000000}}} -{"testStepFinished":{"testCaseStartedId":"1e30a6c4-aa34-45b9-af7f-b34cdafc0d1f","testStepId":"bbe8e8b2-1fcb-4214-8f54-c96ddfea69dc","testStepResult":{"duration":{"seconds":0,"nanos":42235},"status":"FAILED","willBeRetried":true,"message":"Exception in step\n at Object. (features/retry/retry.feature.ts:24:9)\n at Generator.next ()\n at new Promise ()\n at Generator.next ()\n at features/retry/retry.feature:19"},"timestamp":{"seconds":1624479621,"nanos":49000000}}} -{"testCaseFinished":{"testCaseStartedId":"1e30a6c4-aa34-45b9-af7f-b34cdafc0d1f","timestamp":{"seconds":1624479621,"nanos":49000000}}} -{"testCaseStarted":{"attempt":1,"testCaseId":"943d198e-24c4-4d8e-bd1f-2d8dbea9f670","id":"a5ecc972-84fe-4781-bdbb-458d7d69dce2","timestamp":{"seconds":1624479621,"nanos":49000000}}} -{"testStepStarted":{"testCaseStartedId":"a5ecc972-84fe-4781-bdbb-458d7d69dce2","testStepId":"bbe8e8b2-1fcb-4214-8f54-c96ddfea69dc","timestamp":{"seconds":1624479621,"nanos":49000000}}} -{"testStepFinished":{"testCaseStartedId":"a5ecc972-84fe-4781-bdbb-458d7d69dce2","testStepId":"bbe8e8b2-1fcb-4214-8f54-c96ddfea69dc","testStepResult":{"duration":{"seconds":0,"nanos":13725},"status":"FAILED","willBeRetried":true,"message":"Exception in step\n at Object. (features/retry/retry.feature.ts:24:9)\n at Generator.next ()\n at new Promise ()\n at Generator.next ()\n at features/retry/retry.feature:19"},"timestamp":{"seconds":1624479621,"nanos":50000000}}} -{"testCaseFinished":{"testCaseStartedId":"a5ecc972-84fe-4781-bdbb-458d7d69dce2","timestamp":{"seconds":1624479621,"nanos":50000000}}} -{"testCaseStarted":{"attempt":2,"testCaseId":"943d198e-24c4-4d8e-bd1f-2d8dbea9f670","id":"ebf25135-9c9a-46eb-a02b-498a4a3063d8","timestamp":{"seconds":1624479621,"nanos":50000000}}} -{"testStepStarted":{"testCaseStartedId":"ebf25135-9c9a-46eb-a02b-498a4a3063d8","testStepId":"bbe8e8b2-1fcb-4214-8f54-c96ddfea69dc","timestamp":{"seconds":1624479621,"nanos":50000000}}} -{"testStepFinished":{"testCaseStartedId":"ebf25135-9c9a-46eb-a02b-498a4a3063d8","testStepId":"bbe8e8b2-1fcb-4214-8f54-c96ddfea69dc","testStepResult":{"duration":{"seconds":0,"nanos":13135},"status":"FAILED","willBeRetried":false,"message":"Exception in step\n at Object. (features/retry/retry.feature.ts:24:9)\n at Generator.next ()\n at new Promise ()\n at Generator.next ()\n at features/retry/retry.feature:19"},"timestamp":{"seconds":1624479621,"nanos":52000000}}} -{"testCaseFinished":{"testCaseStartedId":"ebf25135-9c9a-46eb-a02b-498a4a3063d8","timestamp":{"seconds":1624479621,"nanos":52000000}}} -{"testCaseStarted":{"attempt":0,"testCaseId":"aca0b91e-7723-4780-892d-ea075a312d9d","id":"34ac46c2-e1e3-4f5e-bb74-b3ebf20955f2","timestamp":{"seconds":1624479621,"nanos":52000000}}} -{"testStepStarted":{"testCaseStartedId":"34ac46c2-e1e3-4f5e-bb74-b3ebf20955f2","testStepId":"6c1e4e74-7f10-4ecf-aa48-4c75d3ede25c","timestamp":{"seconds":1624479621,"nanos":52000000}}} -{"testStepFinished":{"testCaseStartedId":"34ac46c2-e1e3-4f5e-bb74-b3ebf20955f2","testStepId":"6c1e4e74-7f10-4ecf-aa48-4c75d3ede25c","testStepResult":{"duration":{"seconds":0,"nanos":45027},"status":"PENDING","willBeRetried":false},"timestamp":{"seconds":1624479621,"nanos":52000000}}} -{"testCaseFinished":{"testCaseStartedId":"34ac46c2-e1e3-4f5e-bb74-b3ebf20955f2","timestamp":{"seconds":1624479621,"nanos":53000000}}} -{"testCaseStarted":{"attempt":0,"testCaseId":"61670aff-abf0-4d79-947e-4118f1a72978","id":"719b82aa-a12a-48a8-ba1f-c45ab653b8cc","timestamp":{"seconds":1624479621,"nanos":53000000}}} -{"testStepStarted":{"testCaseStartedId":"719b82aa-a12a-48a8-ba1f-c45ab653b8cc","testStepId":"5f706baf-3d0d-4109-8513-baec0bd41966","timestamp":{"seconds":1624479621,"nanos":53000000}}} -{"testStepFinished":{"testCaseStartedId":"719b82aa-a12a-48a8-ba1f-c45ab653b8cc","testStepId":"5f706baf-3d0d-4109-8513-baec0bd41966","testStepResult":{"duration":{"seconds":0,"nanos":0},"status":"UNDEFINED","willBeRetried":false},"timestamp":{"seconds":1624479621,"nanos":53000000}}} -{"testCaseFinished":{"testCaseStartedId":"719b82aa-a12a-48a8-ba1f-c45ab653b8cc","timestamp":{"seconds":1624479621,"nanos":53000000}}} -{"testRunFinished":{"timestamp":{"seconds":1624479621,"nanos":53000000},"success":false}} +{"gherkinDocument":{"feature":{"tags":[],"location":{"line":1,"column":1},"language":"en","keyword":"Feature","name":"Retry","description":" Some Cucumber implementations support a Retry mechanism, where test cases that fail\n can be retried up to a limited number of attempts in the same test run.\n\n Non-passing statuses other than FAILED don't trigger a retry - they are not going to pass\n however many times we attempt them.","children":[{"scenario":{"id":"cc897fa6-40a8-4cb7-b0c2-9416d403ba7a","tags":[],"location":{"line":9,"column":3},"keyword":"Scenario","name":"test case passes on the first attempt","description":"","steps":[{"id":"dac1a2a0-6ab7-4523-8c59-4126ca0d9819","location":{"line":10,"column":5},"keyword":"Given ","text":"a step that always passes"}],"examples":[]}},{"scenario":{"id":"dbcb6db1-c1f5-4f45-8806-93010bd43572","tags":[],"location":{"line":12,"column":3},"keyword":"Scenario","name":"test case passes on the second attempt","description":"","steps":[{"id":"61ec317f-c047-4977-98c5-bc272ef2cdee","location":{"line":13,"column":5},"keyword":"Given ","text":"a step that passes the second time"}],"examples":[]}},{"scenario":{"id":"7baf08d8-146e-47f8-a0af-a3efe4721e4c","tags":[],"location":{"line":15,"column":3},"keyword":"Scenario","name":"test case passes on the final attempt","description":"","steps":[{"id":"cfa9c815-83e4-408b-b3c2-397b6221902a","location":{"line":16,"column":5},"keyword":"Given ","text":"a step that passes the third time"}],"examples":[]}},{"scenario":{"id":"1e5ea307-1414-4c3b-9736-b5bf0867188e","tags":[],"location":{"line":18,"column":3},"keyword":"Scenario","name":"test case fails on every attempt","description":"","steps":[{"id":"be7dda51-f000-4304-9dd2-aecc32382063","location":{"line":19,"column":5},"keyword":"Given ","text":"a step that always fails"}],"examples":[]}},{"scenario":{"id":"18934346-9084-4988-a00e-2be7312732fe","tags":[],"location":{"line":21,"column":3},"keyword":"Scenario","name":"don't retry on PENDING","description":"","steps":[{"id":"cfc6144a-7edc-4108-a907-d657e7228632","location":{"line":22,"column":5},"keyword":"Given ","text":"a pending step"}],"examples":[]}},{"scenario":{"id":"1742cc38-aa0f-425c-8965-999039ab99d4","tags":[],"location":{"line":24,"column":3},"keyword":"Scenario","name":"don't retry on UNDEFINED","description":"","steps":[{"id":"09674041-0c59-461b-94aa-89913c47eabb","location":{"line":25,"column":5},"keyword":"Given ","text":"a non-existent step"}],"examples":[]}}]},"comments":[],"uri":"features/retry/retry.feature"}} +{"pickle":{"id":"a09e32e5-1562-48c0-afc1-bf206e423959","uri":"features/retry/retry.feature","astNodeIds":["cc897fa6-40a8-4cb7-b0c2-9416d403ba7a"],"tags":[],"name":"test case passes on the first attempt","language":"en","steps":[{"id":"0f6d2721-6251-40bb-828d-83652fa41345","text":"a step that always passes","astNodeIds":["dac1a2a0-6ab7-4523-8c59-4126ca0d9819"]}]}} +{"pickle":{"id":"d70f927e-9511-4e8c-832d-003c525d1d76","uri":"features/retry/retry.feature","astNodeIds":["dbcb6db1-c1f5-4f45-8806-93010bd43572"],"tags":[],"name":"test case passes on the second attempt","language":"en","steps":[{"id":"587db012-5347-40c1-b7db-c9b48cef1730","text":"a step that passes the second time","astNodeIds":["61ec317f-c047-4977-98c5-bc272ef2cdee"]}]}} +{"pickle":{"id":"c2341bd9-ca39-4df2-9c38-408709c9b512","uri":"features/retry/retry.feature","astNodeIds":["7baf08d8-146e-47f8-a0af-a3efe4721e4c"],"tags":[],"name":"test case passes on the final attempt","language":"en","steps":[{"id":"b5c91864-9fc0-4c1c-b1a6-11be160b4aee","text":"a step that passes the third time","astNodeIds":["cfa9c815-83e4-408b-b3c2-397b6221902a"]}]}} +{"pickle":{"id":"9b38372e-08fc-4621-8e13-28aa3be1bff8","uri":"features/retry/retry.feature","astNodeIds":["1e5ea307-1414-4c3b-9736-b5bf0867188e"],"tags":[],"name":"test case fails on every attempt","language":"en","steps":[{"id":"383ab032-eb07-4e3f-bd0f-7d8d2516e0c0","text":"a step that always fails","astNodeIds":["be7dda51-f000-4304-9dd2-aecc32382063"]}]}} +{"pickle":{"id":"93f14609-076d-4987-ac65-2226f3633e69","uri":"features/retry/retry.feature","astNodeIds":["18934346-9084-4988-a00e-2be7312732fe"],"tags":[],"name":"don't retry on PENDING","language":"en","steps":[{"id":"e187313b-43a3-4c35-93c4-679fea7ffd51","text":"a pending step","astNodeIds":["cfc6144a-7edc-4108-a907-d657e7228632"]}]}} +{"pickle":{"id":"196358fc-a4d4-4afd-aa65-62bab89ae67b","uri":"features/retry/retry.feature","astNodeIds":["1742cc38-aa0f-425c-8965-999039ab99d4"],"tags":[],"name":"don't retry on UNDEFINED","language":"en","steps":[{"id":"b9f85968-4b12-49be-ad1c-8078368f3a51","text":"a non-existent step","astNodeIds":["09674041-0c59-461b-94aa-89913c47eabb"]}]}} +{"stepDefinition":{"id":"239a5751-616f-44d2-92fe-01e10e6e4613","pattern":{"type":"CUCUMBER_EXPRESSION","source":"a step that always passes"},"sourceReference":{"uri":"features/retry/retry.feature.ts","location":{"line":3}}}} +{"stepDefinition":{"id":"a7291734-ef53-41e7-893f-52943f5292d2","pattern":{"type":"CUCUMBER_EXPRESSION","source":"a step that passes the second time"},"sourceReference":{"uri":"features/retry/retry.feature.ts","location":{"line":8}}}} +{"stepDefinition":{"id":"b53242d2-d292-46b9-b522-6e6030105b2a","pattern":{"type":"CUCUMBER_EXPRESSION","source":"a step that passes the third time"},"sourceReference":{"uri":"features/retry/retry.feature.ts","location":{"line":16}}}} +{"stepDefinition":{"id":"b927795e-a893-49ad-b86f-65a6d741f2c6","pattern":{"type":"CUCUMBER_EXPRESSION","source":"a step that always fails"},"sourceReference":{"uri":"features/retry/retry.feature.ts","location":{"line":23}}}} +{"stepDefinition":{"id":"7db40e6c-fa37-42d2-b147-63b780dcf352","pattern":{"type":"CUCUMBER_EXPRESSION","source":"a pending step"},"sourceReference":{"uri":"features/retry/retry.feature.ts","location":{"line":27}}}} +{"testRunStarted":{"timestamp":{"seconds":1624564795,"nanos":859000000}}} +{"testCase":{"id":"a55b52be-6143-49fa-97be-52612864e22d","pickleId":"a09e32e5-1562-48c0-afc1-bf206e423959","testSteps":[{"id":"b6f24aec-e344-46e1-9d94-a41888067227","pickleStepId":"0f6d2721-6251-40bb-828d-83652fa41345","stepDefinitionIds":["239a5751-616f-44d2-92fe-01e10e6e4613"],"stepMatchArgumentsLists":[{"stepMatchArguments":[]}]}]}} +{"testCase":{"id":"5a62255a-90be-4df9-a45a-1df6aca945ce","pickleId":"d70f927e-9511-4e8c-832d-003c525d1d76","testSteps":[{"id":"b9f7070b-e645-4dda-bde7-4ad3a4414a69","pickleStepId":"587db012-5347-40c1-b7db-c9b48cef1730","stepDefinitionIds":["a7291734-ef53-41e7-893f-52943f5292d2"],"stepMatchArgumentsLists":[{"stepMatchArguments":[]}]}]}} +{"testCase":{"id":"5acaf872-0d74-4786-8f07-5aebade649af","pickleId":"c2341bd9-ca39-4df2-9c38-408709c9b512","testSteps":[{"id":"2104c895-3deb-47cc-81a8-05b3bc3f7d5f","pickleStepId":"b5c91864-9fc0-4c1c-b1a6-11be160b4aee","stepDefinitionIds":["b53242d2-d292-46b9-b522-6e6030105b2a"],"stepMatchArgumentsLists":[{"stepMatchArguments":[]}]}]}} +{"testCase":{"id":"474ff432-e642-45ee-bc36-36cef07f274f","pickleId":"9b38372e-08fc-4621-8e13-28aa3be1bff8","testSteps":[{"id":"29173ed7-65b4-4b33-a2dd-bddcc93a7a42","pickleStepId":"383ab032-eb07-4e3f-bd0f-7d8d2516e0c0","stepDefinitionIds":["b927795e-a893-49ad-b86f-65a6d741f2c6"],"stepMatchArgumentsLists":[{"stepMatchArguments":[]}]}]}} +{"testCase":{"id":"7eb302af-f97a-4c89-946e-157af9a3add2","pickleId":"93f14609-076d-4987-ac65-2226f3633e69","testSteps":[{"id":"3347df56-c5d2-48d2-a5cc-d4d31f52c4bd","pickleStepId":"e187313b-43a3-4c35-93c4-679fea7ffd51","stepDefinitionIds":["7db40e6c-fa37-42d2-b147-63b780dcf352"],"stepMatchArgumentsLists":[{"stepMatchArguments":[]}]}]}} +{"testCase":{"id":"43da219d-9a4f-4e5a-ad05-2ae22b048639","pickleId":"196358fc-a4d4-4afd-aa65-62bab89ae67b","testSteps":[{"id":"8d128a40-29b1-4950-bdfa-0366632df4d2","pickleStepId":"b9f85968-4b12-49be-ad1c-8078368f3a51","stepDefinitionIds":[],"stepMatchArgumentsLists":[]}]}} +{"testCaseStarted":{"attempt":0,"testCaseId":"a55b52be-6143-49fa-97be-52612864e22d","id":"58239969-114a-476d-add5-9d4f6e82c41a","timestamp":{"seconds":1624564795,"nanos":859000000}}} +{"testStepStarted":{"testCaseStartedId":"58239969-114a-476d-add5-9d4f6e82c41a","testStepId":"b6f24aec-e344-46e1-9d94-a41888067227","timestamp":{"seconds":1624564795,"nanos":860000000}}} +{"testStepFinished":{"testCaseStartedId":"58239969-114a-476d-add5-9d4f6e82c41a","testStepId":"b6f24aec-e344-46e1-9d94-a41888067227","testStepResult":{"duration":{"seconds":0,"nanos":146560},"status":"PASSED"},"timestamp":{"seconds":1624564795,"nanos":860000000}}} +{"testCaseFinished":{"testCaseStartedId":"58239969-114a-476d-add5-9d4f6e82c41a","timestamp":{"seconds":1624564795,"nanos":860000000},"willBeRetried":false}} +{"testCaseStarted":{"attempt":0,"testCaseId":"5a62255a-90be-4df9-a45a-1df6aca945ce","id":"27cf0746-c54e-41ad-baf6-2f37839cfc74","timestamp":{"seconds":1624564795,"nanos":860000000}}} +{"testStepStarted":{"testCaseStartedId":"27cf0746-c54e-41ad-baf6-2f37839cfc74","testStepId":"b9f7070b-e645-4dda-bde7-4ad3a4414a69","timestamp":{"seconds":1624564795,"nanos":860000000}}} +{"testStepFinished":{"testCaseStartedId":"27cf0746-c54e-41ad-baf6-2f37839cfc74","testStepId":"b9f7070b-e645-4dda-bde7-4ad3a4414a69","testStepResult":{"duration":{"seconds":0,"nanos":41313},"status":"FAILED","message":"Exception in step\n at Object. (features/retry/retry.feature.ts:11:11)\n at Generator.next ()\n at new Promise ()\n at Generator.next ()\n at features/retry/retry.feature:13"},"timestamp":{"seconds":1624564795,"nanos":869000000}}} +{"testCaseFinished":{"testCaseStartedId":"27cf0746-c54e-41ad-baf6-2f37839cfc74","timestamp":{"seconds":1624564795,"nanos":870000000},"willBeRetried":true}} +{"testCaseStarted":{"attempt":1,"testCaseId":"5a62255a-90be-4df9-a45a-1df6aca945ce","id":"43649f70-f16f-4283-a571-c26a785f1eb8","timestamp":{"seconds":1624564795,"nanos":870000000}}} +{"testStepStarted":{"testCaseStartedId":"43649f70-f16f-4283-a571-c26a785f1eb8","testStepId":"b9f7070b-e645-4dda-bde7-4ad3a4414a69","timestamp":{"seconds":1624564795,"nanos":870000000}}} +{"testStepFinished":{"testCaseStartedId":"43649f70-f16f-4283-a571-c26a785f1eb8","testStepId":"b9f7070b-e645-4dda-bde7-4ad3a4414a69","testStepResult":{"duration":{"seconds":0,"nanos":20487},"status":"PASSED"},"timestamp":{"seconds":1624564795,"nanos":870000000}}} +{"testCaseFinished":{"testCaseStartedId":"43649f70-f16f-4283-a571-c26a785f1eb8","timestamp":{"seconds":1624564795,"nanos":870000000},"willBeRetried":false}} +{"testCaseStarted":{"attempt":0,"testCaseId":"5acaf872-0d74-4786-8f07-5aebade649af","id":"c0ff4cc7-0dfc-4503-961c-e092e3c89f3a","timestamp":{"seconds":1624564795,"nanos":870000000}}} +{"testStepStarted":{"testCaseStartedId":"c0ff4cc7-0dfc-4503-961c-e092e3c89f3a","testStepId":"2104c895-3deb-47cc-81a8-05b3bc3f7d5f","timestamp":{"seconds":1624564795,"nanos":870000000}}} +{"testStepFinished":{"testCaseStartedId":"c0ff4cc7-0dfc-4503-961c-e092e3c89f3a","testStepId":"2104c895-3deb-47cc-81a8-05b3bc3f7d5f","testStepResult":{"duration":{"seconds":0,"nanos":83470},"status":"FAILED","message":"Exception in step\n at Object. (features/retry/retry.feature.ts:19:11)\n at Generator.next ()\n at new Promise ()\n at Generator.next ()\n at features/retry/retry.feature:16"},"timestamp":{"seconds":1624564795,"nanos":871000000}}} +{"testCaseFinished":{"testCaseStartedId":"c0ff4cc7-0dfc-4503-961c-e092e3c89f3a","timestamp":{"seconds":1624564795,"nanos":871000000},"willBeRetried":true}} +{"testCaseStarted":{"attempt":1,"testCaseId":"5acaf872-0d74-4786-8f07-5aebade649af","id":"1c05f026-2cfb-41d9-97f0-55f1b66cf47f","timestamp":{"seconds":1624564795,"nanos":871000000}}} +{"testStepStarted":{"testCaseStartedId":"1c05f026-2cfb-41d9-97f0-55f1b66cf47f","testStepId":"2104c895-3deb-47cc-81a8-05b3bc3f7d5f","timestamp":{"seconds":1624564795,"nanos":871000000}}} +{"testStepFinished":{"testCaseStartedId":"1c05f026-2cfb-41d9-97f0-55f1b66cf47f","testStepId":"2104c895-3deb-47cc-81a8-05b3bc3f7d5f","testStepResult":{"duration":{"seconds":0,"nanos":52978},"status":"FAILED","message":"Exception in step\n at Object. (features/retry/retry.feature.ts:19:11)\n at Generator.next ()\n at new Promise ()\n at Generator.next ()\n at features/retry/retry.feature:16"},"timestamp":{"seconds":1624564795,"nanos":872000000}}} +{"testCaseFinished":{"testCaseStartedId":"1c05f026-2cfb-41d9-97f0-55f1b66cf47f","timestamp":{"seconds":1624564795,"nanos":872000000},"willBeRetried":true}} +{"testCaseStarted":{"attempt":2,"testCaseId":"5acaf872-0d74-4786-8f07-5aebade649af","id":"942bebfe-233a-46ca-9a0b-44b2982f4ca2","timestamp":{"seconds":1624564795,"nanos":872000000}}} +{"testStepStarted":{"testCaseStartedId":"942bebfe-233a-46ca-9a0b-44b2982f4ca2","testStepId":"2104c895-3deb-47cc-81a8-05b3bc3f7d5f","timestamp":{"seconds":1624564795,"nanos":872000000}}} +{"testStepFinished":{"testCaseStartedId":"942bebfe-233a-46ca-9a0b-44b2982f4ca2","testStepId":"2104c895-3deb-47cc-81a8-05b3bc3f7d5f","testStepResult":{"duration":{"seconds":0,"nanos":11381},"status":"PASSED"},"timestamp":{"seconds":1624564795,"nanos":872000000}}} +{"testCaseFinished":{"testCaseStartedId":"942bebfe-233a-46ca-9a0b-44b2982f4ca2","timestamp":{"seconds":1624564795,"nanos":872000000},"willBeRetried":false}} +{"testCaseStarted":{"attempt":0,"testCaseId":"474ff432-e642-45ee-bc36-36cef07f274f","id":"3eaa62f0-e492-4d1c-b756-52ee3d9d0a54","timestamp":{"seconds":1624564795,"nanos":872000000}}} +{"testStepStarted":{"testCaseStartedId":"3eaa62f0-e492-4d1c-b756-52ee3d9d0a54","testStepId":"29173ed7-65b4-4b33-a2dd-bddcc93a7a42","timestamp":{"seconds":1624564795,"nanos":872000000}}} +{"testStepFinished":{"testCaseStartedId":"3eaa62f0-e492-4d1c-b756-52ee3d9d0a54","testStepId":"29173ed7-65b4-4b33-a2dd-bddcc93a7a42","testStepResult":{"duration":{"seconds":0,"nanos":45960},"status":"FAILED","message":"Exception in step\n at Object. (features/retry/retry.feature.ts:24:9)\n at Generator.next ()\n at new Promise ()\n at Generator.next ()\n at features/retry/retry.feature:19"},"timestamp":{"seconds":1624564795,"nanos":872000000}}} +{"testCaseFinished":{"testCaseStartedId":"3eaa62f0-e492-4d1c-b756-52ee3d9d0a54","timestamp":{"seconds":1624564795,"nanos":872000000},"willBeRetried":true}} +{"testCaseStarted":{"attempt":1,"testCaseId":"474ff432-e642-45ee-bc36-36cef07f274f","id":"6f29bffc-6b81-4857-9774-dfcf340b26a6","timestamp":{"seconds":1624564795,"nanos":872000000}}} +{"testStepStarted":{"testCaseStartedId":"6f29bffc-6b81-4857-9774-dfcf340b26a6","testStepId":"29173ed7-65b4-4b33-a2dd-bddcc93a7a42","timestamp":{"seconds":1624564795,"nanos":872000000}}} +{"testStepFinished":{"testCaseStartedId":"6f29bffc-6b81-4857-9774-dfcf340b26a6","testStepId":"29173ed7-65b4-4b33-a2dd-bddcc93a7a42","testStepResult":{"duration":{"seconds":0,"nanos":15107},"status":"FAILED","message":"Exception in step\n at Object. (features/retry/retry.feature.ts:24:9)\n at Generator.next ()\n at new Promise ()\n at Generator.next ()\n at features/retry/retry.feature:19"},"timestamp":{"seconds":1624564795,"nanos":873000000}}} +{"testCaseFinished":{"testCaseStartedId":"6f29bffc-6b81-4857-9774-dfcf340b26a6","timestamp":{"seconds":1624564795,"nanos":873000000},"willBeRetried":true}} +{"testCaseStarted":{"attempt":2,"testCaseId":"474ff432-e642-45ee-bc36-36cef07f274f","id":"619febc0-95d5-4089-a6ae-84267e527ec4","timestamp":{"seconds":1624564795,"nanos":873000000}}} +{"testStepStarted":{"testCaseStartedId":"619febc0-95d5-4089-a6ae-84267e527ec4","testStepId":"29173ed7-65b4-4b33-a2dd-bddcc93a7a42","timestamp":{"seconds":1624564795,"nanos":873000000}}} +{"testStepFinished":{"testCaseStartedId":"619febc0-95d5-4089-a6ae-84267e527ec4","testStepId":"29173ed7-65b4-4b33-a2dd-bddcc93a7a42","testStepResult":{"duration":{"seconds":0,"nanos":15311},"status":"FAILED","message":"Exception in step\n at Object. (features/retry/retry.feature.ts:24:9)\n at Generator.next ()\n at new Promise ()\n at Generator.next ()\n at features/retry/retry.feature:19"},"timestamp":{"seconds":1624564795,"nanos":873000000}}} +{"testCaseFinished":{"testCaseStartedId":"619febc0-95d5-4089-a6ae-84267e527ec4","timestamp":{"seconds":1624564795,"nanos":873000000},"willBeRetried":false}} +{"testCaseStarted":{"attempt":0,"testCaseId":"7eb302af-f97a-4c89-946e-157af9a3add2","id":"57f1473b-b381-49d6-bf14-98015b3baa50","timestamp":{"seconds":1624564795,"nanos":874000000}}} +{"testStepStarted":{"testCaseStartedId":"57f1473b-b381-49d6-bf14-98015b3baa50","testStepId":"3347df56-c5d2-48d2-a5cc-d4d31f52c4bd","timestamp":{"seconds":1624564795,"nanos":874000000}}} +{"testStepFinished":{"testCaseStartedId":"57f1473b-b381-49d6-bf14-98015b3baa50","testStepId":"3347df56-c5d2-48d2-a5cc-d4d31f52c4bd","testStepResult":{"duration":{"seconds":0,"nanos":32261},"status":"PENDING"},"timestamp":{"seconds":1624564795,"nanos":874000000}}} +{"testCaseFinished":{"testCaseStartedId":"57f1473b-b381-49d6-bf14-98015b3baa50","timestamp":{"seconds":1624564795,"nanos":874000000},"willBeRetried":false}} +{"testCaseStarted":{"attempt":0,"testCaseId":"43da219d-9a4f-4e5a-ad05-2ae22b048639","id":"45821f76-e117-40ce-b450-6428c6bbf72f","timestamp":{"seconds":1624564795,"nanos":876000000}}} +{"testStepStarted":{"testCaseStartedId":"45821f76-e117-40ce-b450-6428c6bbf72f","testStepId":"8d128a40-29b1-4950-bdfa-0366632df4d2","timestamp":{"seconds":1624564795,"nanos":876000000}}} +{"testStepFinished":{"testCaseStartedId":"45821f76-e117-40ce-b450-6428c6bbf72f","testStepId":"8d128a40-29b1-4950-bdfa-0366632df4d2","testStepResult":{"duration":{"seconds":0,"nanos":0},"status":"UNDEFINED"},"timestamp":{"seconds":1624564795,"nanos":876000000}}} +{"testCaseFinished":{"testCaseStartedId":"45821f76-e117-40ce-b450-6428c6bbf72f","timestamp":{"seconds":1624564795,"nanos":876000000},"willBeRetried":false}} +{"testRunFinished":{"timestamp":{"seconds":1624564795,"nanos":876000000},"success":false}} diff --git a/compatibility-kit/javascript/features/rules/rules.feature.ndjson b/compatibility-kit/javascript/features/rules/rules.feature.ndjson index d2c7f24dc1..557ac82cc2 100644 --- a/compatibility-kit/javascript/features/rules/rules.feature.ndjson +++ b/compatibility-kit/javascript/features/rules/rules.feature.ndjson @@ -1,45 +1,45 @@ -{"meta":{"protocolVersion":"16.0.1","implementation":{"name":"fake-cucumber","version":"12.0.2"},"cpu":{"name":"x64"},"os":{"name":"linux","version":"5.10.25-linuxkit"},"runtime":{"name":"node.js","version":"12.16.2"}}} +{"meta":{"protocolVersion":"16.0.1","implementation":{"name":"fake-cucumber","version":"12.0.2"},"cpu":{"name":"x64"},"os":{"name":"darwin","version":"19.6.0"},"runtime":{"name":"node.js","version":"12.22.1"}}} {"source":{"data":"Feature: Rules\n You can place scenarios inside rules. This makes is possible to structure\n Gherkin documents in the same way as [example maps](https://cucumber.io/blog/bdd/example-mapping-introduction/).\n You can also use the Examples synonym for Scenario to make them even more similar.\n\n Rule: a sale cannot happen if change cannot be returned\n # sad path\n Example: no change\n Given there are 5 0.20 coins inside\n When the customer tries to buy a 0.85 chocolate with a 1 coin\n Then the sale should not happen\n\n # happy path\n Example: exact change\n Given there are 5 0.20 coins inside\n And there are 3 chocolates inside\n When the customer tries to buy a 0.80 chocolate with a 1 coin\n Then the customer's change should be 1 0.20 coin\n\n @some-tag\n Rule: a sale cannot happen if we're out of stock\n # sad path\n Example: no chocolates left\n Given there are no chocolates inside\n But there are 10 0.5 coins inside\n When the customer tries to buy a 0.85 chocolate with a 1 coin\n Then the sale should not happen\n","uri":"features/rules/rules.feature","mediaType":"text/x.cucumber.gherkin+plain"}} -{"gherkinDocument":{"feature":{"tags":[],"location":{"line":1,"column":1},"language":"en","keyword":"Feature","name":"Rules","description":" You can place scenarios inside rules. This makes is possible to structure\n Gherkin documents in the same way as [example maps](https://cucumber.io/blog/bdd/example-mapping-introduction/).\n You can also use the Examples synonym for Scenario to make them even more similar.","children":[{"rule":{"id":"8279d316-06f1-4462-b953-09807efee0b6","location":{"line":6,"column":3},"keyword":"Rule","name":"a sale cannot happen if change cannot be returned","description":"","children":[{"scenario":{"id":"ed4fe613-19d5-435b-9155-0abfd68411ff","tags":[],"location":{"line":8,"column":5},"keyword":"Example","name":"no change","description":"","steps":[{"id":"caaa2cf3-bd6b-4841-8dd7-07c0a9b5d39d","location":{"line":9,"column":7},"keyword":"Given ","text":"there are 5 0.20 coins inside"},{"id":"cf00008d-3f9f-4de5-bb90-8699f437d73f","location":{"line":10,"column":7},"keyword":"When ","text":"the customer tries to buy a 0.85 chocolate with a 1 coin"},{"id":"19fc43a3-6c24-4140-b92e-5719de9a7475","location":{"line":11,"column":7},"keyword":"Then ","text":"the sale should not happen"}],"examples":[]}},{"scenario":{"id":"a0b4c24c-caec-48f2-816b-f48ab55af00c","tags":[],"location":{"line":14,"column":5},"keyword":"Example","name":"exact change","description":"","steps":[{"id":"714617d1-5d89-4690-95d2-a7c6a47cbb33","location":{"line":15,"column":7},"keyword":"Given ","text":"there are 5 0.20 coins inside"},{"id":"10b99b95-a563-4fd4-a39f-cf8fea7d6582","location":{"line":16,"column":7},"keyword":"And ","text":"there are 3 chocolates inside"},{"id":"ce3e4620-a8e2-4657-94c6-61a7d250ce23","location":{"line":17,"column":7},"keyword":"When ","text":"the customer tries to buy a 0.80 chocolate with a 1 coin"},{"id":"ce7802f5-88eb-4f20-a911-d1300c03fb08","location":{"line":18,"column":7},"keyword":"Then ","text":"the customer's change should be 1 0.20 coin"}],"examples":[]}}],"tags":[]}},{"rule":{"id":"8f949f3c-8e33-4500-802a-bcac897167e2","location":{"line":21,"column":3},"keyword":"Rule","name":"a sale cannot happen if we're out of stock","description":"","children":[{"scenario":{"id":"e46867af-37e6-4ce0-b2cd-9d3f7cf9c8ca","tags":[],"location":{"line":23,"column":5},"keyword":"Example","name":"no chocolates left","description":"","steps":[{"id":"54d125db-7f06-4e2e-9529-849bd003c0e6","location":{"line":24,"column":7},"keyword":"Given ","text":"there are no chocolates inside"},{"id":"55eb6db3-47ac-4321-b69b-0d5cf7a7bc43","location":{"line":25,"column":7},"keyword":"But ","text":"there are 10 0.5 coins inside"},{"id":"69b88580-4da4-4178-9238-fe935d607a18","location":{"line":26,"column":7},"keyword":"When ","text":"the customer tries to buy a 0.85 chocolate with a 1 coin"},{"id":"ded76bf2-beb5-4a25-99bb-566fb2ad73fb","location":{"line":27,"column":7},"keyword":"Then ","text":"the sale should not happen"}],"examples":[]}}],"tags":[{"location":{"line":20,"column":3},"name":"@some-tag","id":"618322c3-5a40-4337-aab9-c563d8434d78"}]}}]},"comments":[{"location":{"line":7,"column":1},"text":" # sad path"},{"location":{"line":13,"column":1},"text":" # happy path"},{"location":{"line":22,"column":1},"text":" # sad path"}],"uri":"features/rules/rules.feature"}} -{"pickle":{"id":"96c1b175-e7a6-4e99-bc93-906ef40b76a6","uri":"features/rules/rules.feature","astNodeIds":["ed4fe613-19d5-435b-9155-0abfd68411ff"],"tags":[],"name":"no change","language":"en","steps":[{"id":"01df48fa-aef7-46f1-be89-c08dc8d7ced3","text":"there are 5 0.20 coins inside","astNodeIds":["caaa2cf3-bd6b-4841-8dd7-07c0a9b5d39d"]},{"id":"8a96f86b-56cf-4db2-9551-9c03c4a22ad2","text":"the customer tries to buy a 0.85 chocolate with a 1 coin","astNodeIds":["cf00008d-3f9f-4de5-bb90-8699f437d73f"]},{"id":"04b175d5-7000-45ad-a8e3-45ce8bdca25b","text":"the sale should not happen","astNodeIds":["19fc43a3-6c24-4140-b92e-5719de9a7475"]}]}} -{"pickle":{"id":"f17a70b1-21d6-494d-9f42-f3356a5dd80d","uri":"features/rules/rules.feature","astNodeIds":["a0b4c24c-caec-48f2-816b-f48ab55af00c"],"tags":[],"name":"exact change","language":"en","steps":[{"id":"10ca45ee-4cba-47fe-84cf-8db02c9bea97","text":"there are 5 0.20 coins inside","astNodeIds":["714617d1-5d89-4690-95d2-a7c6a47cbb33"]},{"id":"3524c464-0ccb-4fa2-9967-965315462f70","text":"there are 3 chocolates inside","astNodeIds":["10b99b95-a563-4fd4-a39f-cf8fea7d6582"]},{"id":"49a8ff0c-c35b-446f-88d1-30172a202d8e","text":"the customer tries to buy a 0.80 chocolate with a 1 coin","astNodeIds":["ce3e4620-a8e2-4657-94c6-61a7d250ce23"]},{"id":"aba25411-7742-4983-ae6a-2bc05a4489e0","text":"the customer's change should be 1 0.20 coin","astNodeIds":["ce7802f5-88eb-4f20-a911-d1300c03fb08"]}]}} -{"pickle":{"id":"ab8d8ba8-4def-49fd-ada2-b0e4f104a91f","uri":"features/rules/rules.feature","astNodeIds":["e46867af-37e6-4ce0-b2cd-9d3f7cf9c8ca"],"tags":[{"name":"@some-tag","astNodeId":"618322c3-5a40-4337-aab9-c563d8434d78"}],"name":"no chocolates left","language":"en","steps":[{"id":"ec9ee3de-fc58-481e-bb3c-22cddd6668f2","text":"there are no chocolates inside","astNodeIds":["54d125db-7f06-4e2e-9529-849bd003c0e6"]},{"id":"4b52169c-fdd1-416a-a668-d98c989f58eb","text":"there are 10 0.5 coins inside","astNodeIds":["55eb6db3-47ac-4321-b69b-0d5cf7a7bc43"]},{"id":"199398a3-4707-481b-99ae-046e7d4354e8","text":"the customer tries to buy a 0.85 chocolate with a 1 coin","astNodeIds":["69b88580-4da4-4178-9238-fe935d607a18"]},{"id":"d6af01ab-25bf-4b6c-8df8-5fb71cc84259","text":"the sale should not happen","astNodeIds":["ded76bf2-beb5-4a25-99bb-566fb2ad73fb"]}]}} -{"stepDefinition":{"id":"ef067acb-3d04-4e96-b09e-46a4b5dbd9e0","pattern":{"type":"CUCUMBER_EXPRESSION","source":"there are {int} {float} coins inside"},"sourceReference":{"uri":"features/rules/rules.feature.ts","location":{"line":4}}}} -{"stepDefinition":{"id":"ecd66afb-6028-4eda-9466-d69a88d52a16","pattern":{"type":"CUCUMBER_EXPRESSION","source":"there are no chocolates inside"},"sourceReference":{"uri":"features/rules/rules.feature.ts","location":{"line":10}}}} -{"stepDefinition":{"id":"5bb69676-c031-455b-b637-432e3255e218","pattern":{"type":"CUCUMBER_EXPRESSION","source":"there are {int} chocolates inside"},"sourceReference":{"uri":"features/rules/rules.feature.ts","location":{"line":14}}}} -{"stepDefinition":{"id":"8b266d05-189d-4dd7-bcd8-71ff880b601a","pattern":{"type":"CUCUMBER_EXPRESSION","source":"the customer tries to buy a {float} chocolate with a {float} coin"},"sourceReference":{"uri":"features/rules/rules.feature.ts","location":{"line":19}}}} -{"stepDefinition":{"id":"4c082181-4306-49e4-a7f8-424639de4896","pattern":{"type":"CUCUMBER_EXPRESSION","source":"the sale should not happen"},"sourceReference":{"uri":"features/rules/rules.feature.ts","location":{"line":25}}}} -{"stepDefinition":{"id":"60446919-402d-45b8-a619-352a5e94a777","pattern":{"type":"CUCUMBER_EXPRESSION","source":"the customer's change should be {int} {float} coin(s)"},"sourceReference":{"uri":"features/rules/rules.feature.ts","location":{"line":29}}}} -{"testRunStarted":{"timestamp":{"seconds":1623962945,"nanos":941000000}}} -{"testCase":{"id":"ec283c92-7a66-4f61-80f4-a44f76947d34","pickleId":"96c1b175-e7a6-4e99-bc93-906ef40b76a6","testSteps":[{"id":"6905458f-ce87-466f-a959-5a2770efbe14","pickleStepId":"01df48fa-aef7-46f1-be89-c08dc8d7ced3","stepDefinitionIds":["ef067acb-3d04-4e96-b09e-46a4b5dbd9e0"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"value":"5","start":10,"children":[]},"parameterTypeName":"int"},{"group":{"value":"0.20","start":12,"children":[]},"parameterTypeName":"float"}]}]},{"id":"431e29bc-9d29-4846-8f91-69a7798ec2e1","pickleStepId":"8a96f86b-56cf-4db2-9551-9c03c4a22ad2","stepDefinitionIds":["8b266d05-189d-4dd7-bcd8-71ff880b601a"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"value":"0.85","start":28,"children":[]},"parameterTypeName":"float"},{"group":{"value":"1","start":50,"children":[]},"parameterTypeName":"float"}]}]},{"id":"2ca3d62f-491d-445d-a549-c85bf1dbb197","pickleStepId":"04b175d5-7000-45ad-a8e3-45ce8bdca25b","stepDefinitionIds":["4c082181-4306-49e4-a7f8-424639de4896"],"stepMatchArgumentsLists":[{"stepMatchArguments":[]}]}]}} -{"testCase":{"id":"cb876154-a008-4ead-a8e2-4cf88361488a","pickleId":"f17a70b1-21d6-494d-9f42-f3356a5dd80d","testSteps":[{"id":"a0b41e0c-ce35-4f14-8f9a-2344de8c00f4","pickleStepId":"10ca45ee-4cba-47fe-84cf-8db02c9bea97","stepDefinitionIds":["ef067acb-3d04-4e96-b09e-46a4b5dbd9e0"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"value":"5","start":10,"children":[]},"parameterTypeName":"int"},{"group":{"value":"0.20","start":12,"children":[]},"parameterTypeName":"float"}]}]},{"id":"9a739935-e88f-4711-b9d3-a17b1fbf4606","pickleStepId":"3524c464-0ccb-4fa2-9967-965315462f70","stepDefinitionIds":["5bb69676-c031-455b-b637-432e3255e218"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"value":"3","start":10,"children":[]},"parameterTypeName":"int"}]}]},{"id":"3747d063-f48c-4084-b83d-1cab95687b58","pickleStepId":"49a8ff0c-c35b-446f-88d1-30172a202d8e","stepDefinitionIds":["8b266d05-189d-4dd7-bcd8-71ff880b601a"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"value":"0.80","start":28,"children":[]},"parameterTypeName":"float"},{"group":{"value":"1","start":50,"children":[]},"parameterTypeName":"float"}]}]},{"id":"3759660f-068e-4b6a-9fe7-f77245c1dbc0","pickleStepId":"aba25411-7742-4983-ae6a-2bc05a4489e0","stepDefinitionIds":["60446919-402d-45b8-a619-352a5e94a777"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"value":"1","start":32,"children":[]},"parameterTypeName":"int"},{"group":{"value":"0.20","start":34,"children":[]},"parameterTypeName":"float"}]}]}]}} -{"testCase":{"id":"809ba805-4604-4c48-8ffb-cde31d2f7454","pickleId":"ab8d8ba8-4def-49fd-ada2-b0e4f104a91f","testSteps":[{"id":"d80921c0-8a20-488b-9df2-e17bbcc94617","pickleStepId":"ec9ee3de-fc58-481e-bb3c-22cddd6668f2","stepDefinitionIds":["ecd66afb-6028-4eda-9466-d69a88d52a16"],"stepMatchArgumentsLists":[{"stepMatchArguments":[]}]},{"id":"dc7b77b4-ad67-4960-a352-0c6717c97255","pickleStepId":"4b52169c-fdd1-416a-a668-d98c989f58eb","stepDefinitionIds":["ef067acb-3d04-4e96-b09e-46a4b5dbd9e0"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"value":"10","start":10,"children":[]},"parameterTypeName":"int"},{"group":{"value":"0.5","start":13,"children":[]},"parameterTypeName":"float"}]}]},{"id":"13c33bef-9283-4766-88ff-eab43a2750d7","pickleStepId":"199398a3-4707-481b-99ae-046e7d4354e8","stepDefinitionIds":["8b266d05-189d-4dd7-bcd8-71ff880b601a"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"value":"0.85","start":28,"children":[]},"parameterTypeName":"float"},{"group":{"value":"1","start":50,"children":[]},"parameterTypeName":"float"}]}]},{"id":"ad7833c0-9266-4318-895a-b9a8bce7645d","pickleStepId":"d6af01ab-25bf-4b6c-8df8-5fb71cc84259","stepDefinitionIds":["4c082181-4306-49e4-a7f8-424639de4896"],"stepMatchArgumentsLists":[{"stepMatchArguments":[]}]}]}} -{"testCaseStarted":{"attempt":0,"testCaseId":"ec283c92-7a66-4f61-80f4-a44f76947d34","id":"26fc5d47-584b-465f-9e32-008953547f2f","timestamp":{"seconds":1623962945,"nanos":946000000}}} -{"testStepStarted":{"testCaseStartedId":"26fc5d47-584b-465f-9e32-008953547f2f","testStepId":"6905458f-ce87-466f-a959-5a2770efbe14","timestamp":{"seconds":1623962945,"nanos":947000000}}} -{"testStepFinished":{"testCaseStartedId":"26fc5d47-584b-465f-9e32-008953547f2f","testStepId":"6905458f-ce87-466f-a959-5a2770efbe14","testStepResult":{"duration":{"seconds":0,"nanos":1006799},"status":"PASSED","willBeRetried":false},"timestamp":{"seconds":1623962945,"nanos":948000000}}} -{"testStepStarted":{"testCaseStartedId":"26fc5d47-584b-465f-9e32-008953547f2f","testStepId":"431e29bc-9d29-4846-8f91-69a7798ec2e1","timestamp":{"seconds":1623962945,"nanos":949000000}}} -{"testStepFinished":{"testCaseStartedId":"26fc5d47-584b-465f-9e32-008953547f2f","testStepId":"431e29bc-9d29-4846-8f91-69a7798ec2e1","testStepResult":{"duration":{"seconds":0,"nanos":97699},"status":"PASSED","willBeRetried":false},"timestamp":{"seconds":1623962945,"nanos":950000000}}} -{"testStepStarted":{"testCaseStartedId":"26fc5d47-584b-465f-9e32-008953547f2f","testStepId":"2ca3d62f-491d-445d-a549-c85bf1dbb197","timestamp":{"seconds":1623962945,"nanos":950000000}}} -{"testStepFinished":{"testCaseStartedId":"26fc5d47-584b-465f-9e32-008953547f2f","testStepId":"2ca3d62f-491d-445d-a549-c85bf1dbb197","testStepResult":{"duration":{"seconds":0,"nanos":66799},"status":"PASSED","willBeRetried":false},"timestamp":{"seconds":1623962945,"nanos":951000000}}} -{"testCaseFinished":{"testCaseStartedId":"26fc5d47-584b-465f-9e32-008953547f2f","timestamp":{"seconds":1623962945,"nanos":952000000}}} -{"testCaseStarted":{"attempt":0,"testCaseId":"cb876154-a008-4ead-a8e2-4cf88361488a","id":"9f485852-ee27-4b17-ac85-03c88c4f025d","timestamp":{"seconds":1623962945,"nanos":953000000}}} -{"testStepStarted":{"testCaseStartedId":"9f485852-ee27-4b17-ac85-03c88c4f025d","testStepId":"a0b41e0c-ce35-4f14-8f9a-2344de8c00f4","timestamp":{"seconds":1623962945,"nanos":953000000}}} -{"testStepFinished":{"testCaseStartedId":"9f485852-ee27-4b17-ac85-03c88c4f025d","testStepId":"a0b41e0c-ce35-4f14-8f9a-2344de8c00f4","testStepResult":{"duration":{"seconds":0,"nanos":39000},"status":"PASSED","willBeRetried":false},"timestamp":{"seconds":1623962945,"nanos":954000000}}} -{"testStepStarted":{"testCaseStartedId":"9f485852-ee27-4b17-ac85-03c88c4f025d","testStepId":"9a739935-e88f-4711-b9d3-a17b1fbf4606","timestamp":{"seconds":1623962945,"nanos":954000000}}} -{"testStepFinished":{"testCaseStartedId":"9f485852-ee27-4b17-ac85-03c88c4f025d","testStepId":"9a739935-e88f-4711-b9d3-a17b1fbf4606","testStepResult":{"duration":{"seconds":0,"nanos":83299},"status":"PASSED","willBeRetried":false},"timestamp":{"seconds":1623962945,"nanos":955000000}}} -{"testStepStarted":{"testCaseStartedId":"9f485852-ee27-4b17-ac85-03c88c4f025d","testStepId":"3747d063-f48c-4084-b83d-1cab95687b58","timestamp":{"seconds":1623962945,"nanos":955000000}}} -{"testStepFinished":{"testCaseStartedId":"9f485852-ee27-4b17-ac85-03c88c4f025d","testStepId":"3747d063-f48c-4084-b83d-1cab95687b58","testStepResult":{"duration":{"seconds":0,"nanos":28300},"status":"PASSED","willBeRetried":false},"timestamp":{"seconds":1623962945,"nanos":956000000}}} -{"testStepStarted":{"testCaseStartedId":"9f485852-ee27-4b17-ac85-03c88c4f025d","testStepId":"3759660f-068e-4b6a-9fe7-f77245c1dbc0","timestamp":{"seconds":1623962945,"nanos":957000000}}} -{"testStepFinished":{"testCaseStartedId":"9f485852-ee27-4b17-ac85-03c88c4f025d","testStepId":"3759660f-068e-4b6a-9fe7-f77245c1dbc0","testStepResult":{"duration":{"seconds":0,"nanos":90499},"status":"PASSED","willBeRetried":false},"timestamp":{"seconds":1623962945,"nanos":957000000}}} -{"testCaseFinished":{"testCaseStartedId":"9f485852-ee27-4b17-ac85-03c88c4f025d","timestamp":{"seconds":1623962945,"nanos":958000000}}} -{"testCaseStarted":{"attempt":0,"testCaseId":"809ba805-4604-4c48-8ffb-cde31d2f7454","id":"6fb0f5d9-89c9-426f-ab09-a15e72dae471","timestamp":{"seconds":1623962945,"nanos":958000000}}} -{"testStepStarted":{"testCaseStartedId":"6fb0f5d9-89c9-426f-ab09-a15e72dae471","testStepId":"d80921c0-8a20-488b-9df2-e17bbcc94617","timestamp":{"seconds":1623962945,"nanos":959000000}}} -{"testStepFinished":{"testCaseStartedId":"6fb0f5d9-89c9-426f-ab09-a15e72dae471","testStepId":"d80921c0-8a20-488b-9df2-e17bbcc94617","testStepResult":{"duration":{"seconds":0,"nanos":67499},"status":"PASSED","willBeRetried":false},"timestamp":{"seconds":1623962945,"nanos":960000000}}} -{"testStepStarted":{"testCaseStartedId":"6fb0f5d9-89c9-426f-ab09-a15e72dae471","testStepId":"dc7b77b4-ad67-4960-a352-0c6717c97255","timestamp":{"seconds":1623962945,"nanos":960000000}}} -{"testStepFinished":{"testCaseStartedId":"6fb0f5d9-89c9-426f-ab09-a15e72dae471","testStepId":"dc7b77b4-ad67-4960-a352-0c6717c97255","testStepResult":{"duration":{"seconds":0,"nanos":29000},"status":"PASSED","willBeRetried":false},"timestamp":{"seconds":1623962945,"nanos":961000000}}} -{"testStepStarted":{"testCaseStartedId":"6fb0f5d9-89c9-426f-ab09-a15e72dae471","testStepId":"13c33bef-9283-4766-88ff-eab43a2750d7","timestamp":{"seconds":1623962945,"nanos":961000000}}} -{"testStepFinished":{"testCaseStartedId":"6fb0f5d9-89c9-426f-ab09-a15e72dae471","testStepId":"13c33bef-9283-4766-88ff-eab43a2750d7","testStepResult":{"duration":{"seconds":0,"nanos":23999},"status":"PASSED","willBeRetried":false},"timestamp":{"seconds":1623962945,"nanos":962000000}}} -{"testStepStarted":{"testCaseStartedId":"6fb0f5d9-89c9-426f-ab09-a15e72dae471","testStepId":"ad7833c0-9266-4318-895a-b9a8bce7645d","timestamp":{"seconds":1623962945,"nanos":962000000}}} -{"testStepFinished":{"testCaseStartedId":"6fb0f5d9-89c9-426f-ab09-a15e72dae471","testStepId":"ad7833c0-9266-4318-895a-b9a8bce7645d","testStepResult":{"duration":{"seconds":0,"nanos":27300},"status":"PASSED","willBeRetried":false},"timestamp":{"seconds":1623962945,"nanos":963000000}}} -{"testCaseFinished":{"testCaseStartedId":"6fb0f5d9-89c9-426f-ab09-a15e72dae471","timestamp":{"seconds":1623962945,"nanos":963000000}}} -{"testRunFinished":{"timestamp":{"seconds":1623962945,"nanos":964000000},"success":true}} +{"gherkinDocument":{"feature":{"tags":[],"location":{"line":1,"column":1},"language":"en","keyword":"Feature","name":"Rules","description":" You can place scenarios inside rules. This makes is possible to structure\n Gherkin documents in the same way as [example maps](https://cucumber.io/blog/bdd/example-mapping-introduction/).\n You can also use the Examples synonym for Scenario to make them even more similar.","children":[{"rule":{"id":"bf86d724-5ffa-4269-a86f-8c52af23098c","location":{"line":6,"column":3},"keyword":"Rule","name":"a sale cannot happen if change cannot be returned","description":"","children":[{"scenario":{"id":"28688c35-43ed-4c3a-a5dd-de49401e0076","tags":[],"location":{"line":8,"column":5},"keyword":"Example","name":"no change","description":"","steps":[{"id":"8c43f2e5-1610-4553-af20-acb1862f91c0","location":{"line":9,"column":7},"keyword":"Given ","text":"there are 5 0.20 coins inside"},{"id":"61d69702-9425-44eb-afb4-305b57c5645b","location":{"line":10,"column":7},"keyword":"When ","text":"the customer tries to buy a 0.85 chocolate with a 1 coin"},{"id":"8f8b9a6b-bbfb-401b-ab4d-7b01917532e4","location":{"line":11,"column":7},"keyword":"Then ","text":"the sale should not happen"}],"examples":[]}},{"scenario":{"id":"4e597890-6329-4240-b663-1e72c9956bc3","tags":[],"location":{"line":14,"column":5},"keyword":"Example","name":"exact change","description":"","steps":[{"id":"0ce770c7-4e82-4a58-9250-89d257aed5be","location":{"line":15,"column":7},"keyword":"Given ","text":"there are 5 0.20 coins inside"},{"id":"e6216412-ddb5-4da9-adeb-687916d9acae","location":{"line":16,"column":7},"keyword":"And ","text":"there are 3 chocolates inside"},{"id":"610ba180-0a09-4b8a-b676-396ed6dc2321","location":{"line":17,"column":7},"keyword":"When ","text":"the customer tries to buy a 0.80 chocolate with a 1 coin"},{"id":"eb32568e-5a4c-4565-b988-bdfcd8c83718","location":{"line":18,"column":7},"keyword":"Then ","text":"the customer's change should be 1 0.20 coin"}],"examples":[]}}],"tags":[]}},{"rule":{"id":"fe65cdf6-0bf1-4a67-889b-a88dcc46ffde","location":{"line":21,"column":3},"keyword":"Rule","name":"a sale cannot happen if we're out of stock","description":"","children":[{"scenario":{"id":"6da3dd9a-237a-4e7d-a99e-a22e54318f1e","tags":[],"location":{"line":23,"column":5},"keyword":"Example","name":"no chocolates left","description":"","steps":[{"id":"831709df-5518-490c-96d9-25b504cc0dbd","location":{"line":24,"column":7},"keyword":"Given ","text":"there are no chocolates inside"},{"id":"fd13c7c8-9116-476b-b2a9-a572ec455490","location":{"line":25,"column":7},"keyword":"But ","text":"there are 10 0.5 coins inside"},{"id":"8c23e454-2885-4d21-9e1d-8927830f131f","location":{"line":26,"column":7},"keyword":"When ","text":"the customer tries to buy a 0.85 chocolate with a 1 coin"},{"id":"1d5b8e69-a7f1-403d-ab65-ad63959af159","location":{"line":27,"column":7},"keyword":"Then ","text":"the sale should not happen"}],"examples":[]}}],"tags":[{"location":{"line":20,"column":3},"name":"@some-tag","id":"d74ab25b-b9c9-47d9-8af2-3462ecb899f4"}]}}]},"comments":[{"location":{"line":7,"column":1},"text":" # sad path"},{"location":{"line":13,"column":1},"text":" # happy path"},{"location":{"line":22,"column":1},"text":" # sad path"}],"uri":"features/rules/rules.feature"}} +{"pickle":{"id":"2fc48045-7433-48d9-8f8b-00e25850484f","uri":"features/rules/rules.feature","astNodeIds":["28688c35-43ed-4c3a-a5dd-de49401e0076"],"tags":[],"name":"no change","language":"en","steps":[{"id":"63385866-98b7-467f-9705-1ca7113275c1","text":"there are 5 0.20 coins inside","astNodeIds":["8c43f2e5-1610-4553-af20-acb1862f91c0"]},{"id":"7fcbe621-82b7-4197-9425-1e62b188a947","text":"the customer tries to buy a 0.85 chocolate with a 1 coin","astNodeIds":["61d69702-9425-44eb-afb4-305b57c5645b"]},{"id":"95263ce0-89c3-4de4-a87c-e51ded3aea5d","text":"the sale should not happen","astNodeIds":["8f8b9a6b-bbfb-401b-ab4d-7b01917532e4"]}]}} +{"pickle":{"id":"47addf2d-ae63-4d20-9b70-8c7ef19d89fd","uri":"features/rules/rules.feature","astNodeIds":["4e597890-6329-4240-b663-1e72c9956bc3"],"tags":[],"name":"exact change","language":"en","steps":[{"id":"04b7d0c8-be88-4c8f-a2ef-c1408a4268d8","text":"there are 5 0.20 coins inside","astNodeIds":["0ce770c7-4e82-4a58-9250-89d257aed5be"]},{"id":"449545f9-f29e-476e-a934-22ec3e8ffccf","text":"there are 3 chocolates inside","astNodeIds":["e6216412-ddb5-4da9-adeb-687916d9acae"]},{"id":"c8af6422-1d57-46f8-b1af-dacc61176c43","text":"the customer tries to buy a 0.80 chocolate with a 1 coin","astNodeIds":["610ba180-0a09-4b8a-b676-396ed6dc2321"]},{"id":"bc2a98c0-f2e7-4087-a741-bb78e0bdeb50","text":"the customer's change should be 1 0.20 coin","astNodeIds":["eb32568e-5a4c-4565-b988-bdfcd8c83718"]}]}} +{"pickle":{"id":"63ae146f-dd3e-4e26-a416-8cede80311ca","uri":"features/rules/rules.feature","astNodeIds":["6da3dd9a-237a-4e7d-a99e-a22e54318f1e"],"tags":[{"name":"@some-tag","astNodeId":"d74ab25b-b9c9-47d9-8af2-3462ecb899f4"}],"name":"no chocolates left","language":"en","steps":[{"id":"fd1bc34d-a495-46f4-8e30-f2d014253a21","text":"there are no chocolates inside","astNodeIds":["831709df-5518-490c-96d9-25b504cc0dbd"]},{"id":"c53adfdd-b306-42f9-af28-d3e4b1bb4c42","text":"there are 10 0.5 coins inside","astNodeIds":["fd13c7c8-9116-476b-b2a9-a572ec455490"]},{"id":"57f4e046-dffe-4ed7-b557-b32af8ba17d7","text":"the customer tries to buy a 0.85 chocolate with a 1 coin","astNodeIds":["8c23e454-2885-4d21-9e1d-8927830f131f"]},{"id":"12f72c6d-3f2b-445d-90d5-da49662c5e62","text":"the sale should not happen","astNodeIds":["1d5b8e69-a7f1-403d-ab65-ad63959af159"]}]}} +{"stepDefinition":{"id":"1a9303f4-e481-41a1-b5dd-2cb0d048a716","pattern":{"type":"CUCUMBER_EXPRESSION","source":"there are {int} {float} coins inside"},"sourceReference":{"uri":"features/rules/rules.feature.ts","location":{"line":4}}}} +{"stepDefinition":{"id":"050cede4-a7b1-4c17-b8de-4b961e3e47b3","pattern":{"type":"CUCUMBER_EXPRESSION","source":"there are no chocolates inside"},"sourceReference":{"uri":"features/rules/rules.feature.ts","location":{"line":10}}}} +{"stepDefinition":{"id":"1494746d-7d4d-41f5-83bf-fee4b41261d2","pattern":{"type":"CUCUMBER_EXPRESSION","source":"there are {int} chocolates inside"},"sourceReference":{"uri":"features/rules/rules.feature.ts","location":{"line":14}}}} +{"stepDefinition":{"id":"c8c27fe0-3a7f-495b-af98-b1cb8d92ab8b","pattern":{"type":"CUCUMBER_EXPRESSION","source":"the customer tries to buy a {float} chocolate with a {float} coin"},"sourceReference":{"uri":"features/rules/rules.feature.ts","location":{"line":19}}}} +{"stepDefinition":{"id":"0c7228f7-1ef4-46f9-8934-56e556fd8f25","pattern":{"type":"CUCUMBER_EXPRESSION","source":"the sale should not happen"},"sourceReference":{"uri":"features/rules/rules.feature.ts","location":{"line":25}}}} +{"stepDefinition":{"id":"9301cd38-2820-4c59-b0e5-faec777203a8","pattern":{"type":"CUCUMBER_EXPRESSION","source":"the customer's change should be {int} {float} coin(s)"},"sourceReference":{"uri":"features/rules/rules.feature.ts","location":{"line":29}}}} +{"testRunStarted":{"timestamp":{"seconds":1624564796,"nanos":322000000}}} +{"testCase":{"id":"4c1b51cc-b4f4-428e-a4ed-e6c2be9d6a11","pickleId":"2fc48045-7433-48d9-8f8b-00e25850484f","testSteps":[{"id":"f0c512b9-8a7e-4b3f-acb3-358b8153b656","pickleStepId":"63385866-98b7-467f-9705-1ca7113275c1","stepDefinitionIds":["1a9303f4-e481-41a1-b5dd-2cb0d048a716"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"value":"5","start":10,"children":[]},"parameterTypeName":"int"},{"group":{"value":"0.20","start":12,"children":[]},"parameterTypeName":"float"}]}]},{"id":"19bdbabc-9c12-4054-93b0-906aa18db78a","pickleStepId":"7fcbe621-82b7-4197-9425-1e62b188a947","stepDefinitionIds":["c8c27fe0-3a7f-495b-af98-b1cb8d92ab8b"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"value":"0.85","start":28,"children":[]},"parameterTypeName":"float"},{"group":{"value":"1","start":50,"children":[]},"parameterTypeName":"float"}]}]},{"id":"9b3756a5-bf1e-401e-adf4-e4bac000cbe2","pickleStepId":"95263ce0-89c3-4de4-a87c-e51ded3aea5d","stepDefinitionIds":["0c7228f7-1ef4-46f9-8934-56e556fd8f25"],"stepMatchArgumentsLists":[{"stepMatchArguments":[]}]}]}} +{"testCase":{"id":"9b115909-5b02-4c1a-ba89-0056cbd14af3","pickleId":"47addf2d-ae63-4d20-9b70-8c7ef19d89fd","testSteps":[{"id":"6e49e672-29a6-44ba-983f-c677801f2450","pickleStepId":"04b7d0c8-be88-4c8f-a2ef-c1408a4268d8","stepDefinitionIds":["1a9303f4-e481-41a1-b5dd-2cb0d048a716"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"value":"5","start":10,"children":[]},"parameterTypeName":"int"},{"group":{"value":"0.20","start":12,"children":[]},"parameterTypeName":"float"}]}]},{"id":"46eb12e1-18ef-4637-ae8d-9d7301af1f2f","pickleStepId":"449545f9-f29e-476e-a934-22ec3e8ffccf","stepDefinitionIds":["1494746d-7d4d-41f5-83bf-fee4b41261d2"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"value":"3","start":10,"children":[]},"parameterTypeName":"int"}]}]},{"id":"5b15cc73-8ab4-482a-845f-f781bfd698dc","pickleStepId":"c8af6422-1d57-46f8-b1af-dacc61176c43","stepDefinitionIds":["c8c27fe0-3a7f-495b-af98-b1cb8d92ab8b"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"value":"0.80","start":28,"children":[]},"parameterTypeName":"float"},{"group":{"value":"1","start":50,"children":[]},"parameterTypeName":"float"}]}]},{"id":"79e100c9-beb4-424f-8ec7-2ffd602933c2","pickleStepId":"bc2a98c0-f2e7-4087-a741-bb78e0bdeb50","stepDefinitionIds":["9301cd38-2820-4c59-b0e5-faec777203a8"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"value":"1","start":32,"children":[]},"parameterTypeName":"int"},{"group":{"value":"0.20","start":34,"children":[]},"parameterTypeName":"float"}]}]}]}} +{"testCase":{"id":"155ec320-d1d8-4ac2-8b5d-9db47ad30272","pickleId":"63ae146f-dd3e-4e26-a416-8cede80311ca","testSteps":[{"id":"365bc7f5-6de5-4d2f-84d2-109dff50d267","pickleStepId":"fd1bc34d-a495-46f4-8e30-f2d014253a21","stepDefinitionIds":["050cede4-a7b1-4c17-b8de-4b961e3e47b3"],"stepMatchArgumentsLists":[{"stepMatchArguments":[]}]},{"id":"f5e571c1-b5ce-425d-ae17-f9643feb3e7a","pickleStepId":"c53adfdd-b306-42f9-af28-d3e4b1bb4c42","stepDefinitionIds":["1a9303f4-e481-41a1-b5dd-2cb0d048a716"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"value":"10","start":10,"children":[]},"parameterTypeName":"int"},{"group":{"value":"0.5","start":13,"children":[]},"parameterTypeName":"float"}]}]},{"id":"45500474-f36e-4200-bfed-23f6ca9cc404","pickleStepId":"57f4e046-dffe-4ed7-b557-b32af8ba17d7","stepDefinitionIds":["c8c27fe0-3a7f-495b-af98-b1cb8d92ab8b"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"value":"0.85","start":28,"children":[]},"parameterTypeName":"float"},{"group":{"value":"1","start":50,"children":[]},"parameterTypeName":"float"}]}]},{"id":"e199ef32-3fb0-4a3a-a4b0-074702b9cbbe","pickleStepId":"12f72c6d-3f2b-445d-90d5-da49662c5e62","stepDefinitionIds":["0c7228f7-1ef4-46f9-8934-56e556fd8f25"],"stepMatchArgumentsLists":[{"stepMatchArguments":[]}]}]}} +{"testCaseStarted":{"attempt":0,"testCaseId":"4c1b51cc-b4f4-428e-a4ed-e6c2be9d6a11","id":"6f384af9-26ba-4b58-8bd6-fe71add3a4d5","timestamp":{"seconds":1624564796,"nanos":322000000}}} +{"testStepStarted":{"testCaseStartedId":"6f384af9-26ba-4b58-8bd6-fe71add3a4d5","testStepId":"f0c512b9-8a7e-4b3f-acb3-358b8153b656","timestamp":{"seconds":1624564796,"nanos":323000000}}} +{"testStepFinished":{"testCaseStartedId":"6f384af9-26ba-4b58-8bd6-fe71add3a4d5","testStepId":"f0c512b9-8a7e-4b3f-acb3-358b8153b656","testStepResult":{"duration":{"seconds":0,"nanos":223645},"status":"PASSED"},"timestamp":{"seconds":1624564796,"nanos":323000000}}} +{"testStepStarted":{"testCaseStartedId":"6f384af9-26ba-4b58-8bd6-fe71add3a4d5","testStepId":"19bdbabc-9c12-4054-93b0-906aa18db78a","timestamp":{"seconds":1624564796,"nanos":323000000}}} +{"testStepFinished":{"testCaseStartedId":"6f384af9-26ba-4b58-8bd6-fe71add3a4d5","testStepId":"19bdbabc-9c12-4054-93b0-906aa18db78a","testStepResult":{"duration":{"seconds":0,"nanos":27921},"status":"PASSED"},"timestamp":{"seconds":1624564796,"nanos":323000000}}} +{"testStepStarted":{"testCaseStartedId":"6f384af9-26ba-4b58-8bd6-fe71add3a4d5","testStepId":"9b3756a5-bf1e-401e-adf4-e4bac000cbe2","timestamp":{"seconds":1624564796,"nanos":323000000}}} +{"testStepFinished":{"testCaseStartedId":"6f384af9-26ba-4b58-8bd6-fe71add3a4d5","testStepId":"9b3756a5-bf1e-401e-adf4-e4bac000cbe2","testStepResult":{"duration":{"seconds":0,"nanos":17653},"status":"PASSED"},"timestamp":{"seconds":1624564796,"nanos":323000000}}} +{"testCaseFinished":{"testCaseStartedId":"6f384af9-26ba-4b58-8bd6-fe71add3a4d5","timestamp":{"seconds":1624564796,"nanos":323000000},"willBeRetried":false}} +{"testCaseStarted":{"attempt":0,"testCaseId":"9b115909-5b02-4c1a-ba89-0056cbd14af3","id":"ce60b4dd-1336-4f74-9af0-0b7669d20a15","timestamp":{"seconds":1624564796,"nanos":323000000}}} +{"testStepStarted":{"testCaseStartedId":"ce60b4dd-1336-4f74-9af0-0b7669d20a15","testStepId":"6e49e672-29a6-44ba-983f-c677801f2450","timestamp":{"seconds":1624564796,"nanos":323000000}}} +{"testStepFinished":{"testCaseStartedId":"ce60b4dd-1336-4f74-9af0-0b7669d20a15","testStepId":"6e49e672-29a6-44ba-983f-c677801f2450","testStepResult":{"duration":{"seconds":0,"nanos":15471},"status":"PASSED"},"timestamp":{"seconds":1624564796,"nanos":323000000}}} +{"testStepStarted":{"testCaseStartedId":"ce60b4dd-1336-4f74-9af0-0b7669d20a15","testStepId":"46eb12e1-18ef-4637-ae8d-9d7301af1f2f","timestamp":{"seconds":1624564796,"nanos":323000000}}} +{"testStepFinished":{"testCaseStartedId":"ce60b4dd-1336-4f74-9af0-0b7669d20a15","testStepId":"46eb12e1-18ef-4637-ae8d-9d7301af1f2f","testStepResult":{"duration":{"seconds":0,"nanos":27032},"status":"PASSED"},"timestamp":{"seconds":1624564796,"nanos":323000000}}} +{"testStepStarted":{"testCaseStartedId":"ce60b4dd-1336-4f74-9af0-0b7669d20a15","testStepId":"5b15cc73-8ab4-482a-845f-f781bfd698dc","timestamp":{"seconds":1624564796,"nanos":323000000}}} +{"testStepFinished":{"testCaseStartedId":"ce60b4dd-1336-4f74-9af0-0b7669d20a15","testStepId":"5b15cc73-8ab4-482a-845f-f781bfd698dc","testStepResult":{"duration":{"seconds":0,"nanos":10545},"status":"PASSED"},"timestamp":{"seconds":1624564796,"nanos":324000000}}} +{"testStepStarted":{"testCaseStartedId":"ce60b4dd-1336-4f74-9af0-0b7669d20a15","testStepId":"79e100c9-beb4-424f-8ec7-2ffd602933c2","timestamp":{"seconds":1624564796,"nanos":324000000}}} +{"testStepFinished":{"testCaseStartedId":"ce60b4dd-1336-4f74-9af0-0b7669d20a15","testStepId":"79e100c9-beb4-424f-8ec7-2ffd602933c2","testStepResult":{"duration":{"seconds":0,"nanos":26253},"status":"PASSED"},"timestamp":{"seconds":1624564796,"nanos":324000000}}} +{"testCaseFinished":{"testCaseStartedId":"ce60b4dd-1336-4f74-9af0-0b7669d20a15","timestamp":{"seconds":1624564796,"nanos":324000000},"willBeRetried":false}} +{"testCaseStarted":{"attempt":0,"testCaseId":"155ec320-d1d8-4ac2-8b5d-9db47ad30272","id":"30406f5e-6e1c-4e9a-8484-f44202a370c1","timestamp":{"seconds":1624564796,"nanos":324000000}}} +{"testStepStarted":{"testCaseStartedId":"30406f5e-6e1c-4e9a-8484-f44202a370c1","testStepId":"365bc7f5-6de5-4d2f-84d2-109dff50d267","timestamp":{"seconds":1624564796,"nanos":324000000}}} +{"testStepFinished":{"testCaseStartedId":"30406f5e-6e1c-4e9a-8484-f44202a370c1","testStepId":"365bc7f5-6de5-4d2f-84d2-109dff50d267","testStepResult":{"duration":{"seconds":0,"nanos":18667},"status":"PASSED"},"timestamp":{"seconds":1624564796,"nanos":324000000}}} +{"testStepStarted":{"testCaseStartedId":"30406f5e-6e1c-4e9a-8484-f44202a370c1","testStepId":"f5e571c1-b5ce-425d-ae17-f9643feb3e7a","timestamp":{"seconds":1624564796,"nanos":324000000}}} +{"testStepFinished":{"testCaseStartedId":"30406f5e-6e1c-4e9a-8484-f44202a370c1","testStepId":"f5e571c1-b5ce-425d-ae17-f9643feb3e7a","testStepResult":{"duration":{"seconds":0,"nanos":11537},"status":"PASSED"},"timestamp":{"seconds":1624564796,"nanos":324000000}}} +{"testStepStarted":{"testCaseStartedId":"30406f5e-6e1c-4e9a-8484-f44202a370c1","testStepId":"45500474-f36e-4200-bfed-23f6ca9cc404","timestamp":{"seconds":1624564796,"nanos":324000000}}} +{"testStepFinished":{"testCaseStartedId":"30406f5e-6e1c-4e9a-8484-f44202a370c1","testStepId":"45500474-f36e-4200-bfed-23f6ca9cc404","testStepResult":{"duration":{"seconds":0,"nanos":9544},"status":"PASSED"},"timestamp":{"seconds":1624564796,"nanos":324000000}}} +{"testStepStarted":{"testCaseStartedId":"30406f5e-6e1c-4e9a-8484-f44202a370c1","testStepId":"e199ef32-3fb0-4a3a-a4b0-074702b9cbbe","timestamp":{"seconds":1624564796,"nanos":324000000}}} +{"testStepFinished":{"testCaseStartedId":"30406f5e-6e1c-4e9a-8484-f44202a370c1","testStepId":"e199ef32-3fb0-4a3a-a4b0-074702b9cbbe","testStepResult":{"duration":{"seconds":0,"nanos":18490},"status":"PASSED"},"timestamp":{"seconds":1624564796,"nanos":324000000}}} +{"testCaseFinished":{"testCaseStartedId":"30406f5e-6e1c-4e9a-8484-f44202a370c1","timestamp":{"seconds":1624564796,"nanos":324000000},"willBeRetried":false}} +{"testRunFinished":{"timestamp":{"seconds":1624564796,"nanos":324000000},"success":true}} diff --git a/compatibility-kit/javascript/features/stack-traces/stack-traces.feature.ndjson b/compatibility-kit/javascript/features/stack-traces/stack-traces.feature.ndjson index 2366ce7535..5bef88bd15 100644 --- a/compatibility-kit/javascript/features/stack-traces/stack-traces.feature.ndjson +++ b/compatibility-kit/javascript/features/stack-traces/stack-traces.feature.ndjson @@ -1,12 +1,12 @@ -{"meta":{"protocolVersion":"16.0.1","implementation":{"name":"fake-cucumber","version":"12.0.2"},"cpu":{"name":"x64"},"os":{"name":"linux","version":"5.10.25-linuxkit"},"runtime":{"name":"node.js","version":"12.16.2"}}} +{"meta":{"protocolVersion":"16.0.1","implementation":{"name":"fake-cucumber","version":"12.0.2"},"cpu":{"name":"x64"},"os":{"name":"darwin","version":"19.6.0"},"runtime":{"name":"node.js","version":"12.22.1"}}} {"source":{"data":"Feature: Stack traces\n Nothing beats stack traces when it comes to diagnosing the source of a bug.\n Cucumber provides helpful stack traces that:\n \n - Include a stack frame from the Gherkin document\n - Remove uninteresting frames by default\n\n The first line of the stack trace must contain the feature file.\n\n Scenario: A failing step\n When a step throws an exception\n","uri":"features/stack-traces/stack-traces.feature","mediaType":"text/x.cucumber.gherkin+plain"}} -{"gherkinDocument":{"feature":{"tags":[],"location":{"line":1,"column":1},"language":"en","keyword":"Feature","name":"Stack traces","description":" Nothing beats stack traces when it comes to diagnosing the source of a bug.\n Cucumber provides helpful stack traces that:\n \n - Include a stack frame from the Gherkin document\n - Remove uninteresting frames by default\n\n The first line of the stack trace must contain the feature file.","children":[{"scenario":{"id":"e9d50854-0480-4b0f-a802-d33afd342244","tags":[],"location":{"line":10,"column":3},"keyword":"Scenario","name":"A failing step","description":"","steps":[{"id":"bb3e5462-9617-46b6-ac4e-988a0f31a092","location":{"line":11,"column":5},"keyword":"When ","text":"a step throws an exception"}],"examples":[]}}]},"comments":[],"uri":"features/stack-traces/stack-traces.feature"}} -{"pickle":{"id":"fcb63f77-9dc2-4689-bbfd-10b9041a13be","uri":"features/stack-traces/stack-traces.feature","astNodeIds":["e9d50854-0480-4b0f-a802-d33afd342244"],"tags":[],"name":"A failing step","language":"en","steps":[{"id":"92389458-b422-435e-ad1c-036799c6be66","text":"a step throws an exception","astNodeIds":["bb3e5462-9617-46b6-ac4e-988a0f31a092"]}]}} -{"stepDefinition":{"id":"99674999-b9e7-49c4-a40d-2a2e12a0d7e8","pattern":{"type":"CUCUMBER_EXPRESSION","source":"a step throws an exception"},"sourceReference":{"uri":"features/stack-traces/stack-traces.feature.ts","location":{"line":3}}}} -{"testRunStarted":{"timestamp":{"seconds":1623962947,"nanos":558000000}}} -{"testCase":{"id":"fed7b2dd-7738-4601-bc3b-38051a7a9770","pickleId":"fcb63f77-9dc2-4689-bbfd-10b9041a13be","testSteps":[{"id":"b700e350-572f-4e49-bc72-ecbc944f7d01","pickleStepId":"92389458-b422-435e-ad1c-036799c6be66","stepDefinitionIds":["99674999-b9e7-49c4-a40d-2a2e12a0d7e8"],"stepMatchArgumentsLists":[{"stepMatchArguments":[]}]}]}} -{"testCaseStarted":{"attempt":0,"testCaseId":"fed7b2dd-7738-4601-bc3b-38051a7a9770","id":"56c50b3c-e5c6-4b40-8711-0605b87687c1","timestamp":{"seconds":1623962947,"nanos":560000000}}} -{"testStepStarted":{"testCaseStartedId":"56c50b3c-e5c6-4b40-8711-0605b87687c1","testStepId":"b700e350-572f-4e49-bc72-ecbc944f7d01","timestamp":{"seconds":1623962947,"nanos":562000000}}} -{"testStepFinished":{"testCaseStartedId":"56c50b3c-e5c6-4b40-8711-0605b87687c1","testStepId":"b700e350-572f-4e49-bc72-ecbc944f7d01","testStepResult":{"duration":{"seconds":0,"nanos":283299},"status":"FAILED","willBeRetried":false,"message":"BOOM\n at Object. (features/stack-traces/stack-traces.feature.ts:4:9)\n at Generator.next ()\n at new Promise ()\n at Generator.next ()\n at features/stack-traces/stack-traces.feature:11"},"timestamp":{"seconds":1623962947,"nanos":585000000}}} -{"testCaseFinished":{"testCaseStartedId":"56c50b3c-e5c6-4b40-8711-0605b87687c1","timestamp":{"seconds":1623962947,"nanos":586000000}}} -{"testRunFinished":{"timestamp":{"seconds":1623962947,"nanos":587000000},"success":false}} +{"gherkinDocument":{"feature":{"tags":[],"location":{"line":1,"column":1},"language":"en","keyword":"Feature","name":"Stack traces","description":" Nothing beats stack traces when it comes to diagnosing the source of a bug.\n Cucumber provides helpful stack traces that:\n \n - Include a stack frame from the Gherkin document\n - Remove uninteresting frames by default\n\n The first line of the stack trace must contain the feature file.","children":[{"scenario":{"id":"0a080172-6145-4879-8c35-d9bfb76a5b3a","tags":[],"location":{"line":10,"column":3},"keyword":"Scenario","name":"A failing step","description":"","steps":[{"id":"9fd026f9-f347-4cf6-b311-c5a5c886811f","location":{"line":11,"column":5},"keyword":"When ","text":"a step throws an exception"}],"examples":[]}}]},"comments":[],"uri":"features/stack-traces/stack-traces.feature"}} +{"pickle":{"id":"8b6c1e32-5aee-4c50-b230-11251893b355","uri":"features/stack-traces/stack-traces.feature","astNodeIds":["0a080172-6145-4879-8c35-d9bfb76a5b3a"],"tags":[],"name":"A failing step","language":"en","steps":[{"id":"f35390f6-d544-43aa-8807-288b2c529e4e","text":"a step throws an exception","astNodeIds":["9fd026f9-f347-4cf6-b311-c5a5c886811f"]}]}} +{"stepDefinition":{"id":"29f11973-2da4-48dc-bf64-1d2e6a3c591a","pattern":{"type":"CUCUMBER_EXPRESSION","source":"a step throws an exception"},"sourceReference":{"uri":"features/stack-traces/stack-traces.feature.ts","location":{"line":3}}}} +{"testRunStarted":{"timestamp":{"seconds":1624564796,"nanos":763000000}}} +{"testCase":{"id":"82e0d39d-3973-4e3d-a9ff-6a65accc31b7","pickleId":"8b6c1e32-5aee-4c50-b230-11251893b355","testSteps":[{"id":"883ded2b-3b20-4906-8f30-e2f3ded7c0c3","pickleStepId":"f35390f6-d544-43aa-8807-288b2c529e4e","stepDefinitionIds":["29f11973-2da4-48dc-bf64-1d2e6a3c591a"],"stepMatchArgumentsLists":[{"stepMatchArguments":[]}]}]}} +{"testCaseStarted":{"attempt":0,"testCaseId":"82e0d39d-3973-4e3d-a9ff-6a65accc31b7","id":"1f1ed9b8-493e-406e-924d-97c82730b275","timestamp":{"seconds":1624564796,"nanos":764000000}}} +{"testStepStarted":{"testCaseStartedId":"1f1ed9b8-493e-406e-924d-97c82730b275","testStepId":"883ded2b-3b20-4906-8f30-e2f3ded7c0c3","timestamp":{"seconds":1624564796,"nanos":764000000}}} +{"testStepFinished":{"testCaseStartedId":"1f1ed9b8-493e-406e-924d-97c82730b275","testStepId":"883ded2b-3b20-4906-8f30-e2f3ded7c0c3","testStepResult":{"duration":{"seconds":0,"nanos":82261},"status":"FAILED","message":"BOOM\n at Object. (features/stack-traces/stack-traces.feature.ts:4:9)\n at Generator.next ()\n at new Promise ()\n at Generator.next ()\n at features/stack-traces/stack-traces.feature:11"},"timestamp":{"seconds":1624564796,"nanos":772000000}}} +{"testCaseFinished":{"testCaseStartedId":"1f1ed9b8-493e-406e-924d-97c82730b275","timestamp":{"seconds":1624564796,"nanos":772000000},"willBeRetried":false}} +{"testRunFinished":{"timestamp":{"seconds":1624564796,"nanos":772000000},"success":false}} diff --git a/compatibility-kit/javascript/features/unknown-parameter-type/unknown-parameter-type.feature.ndjson b/compatibility-kit/javascript/features/unknown-parameter-type/unknown-parameter-type.feature.ndjson index f1ba268949..2f462777a0 100644 --- a/compatibility-kit/javascript/features/unknown-parameter-type/unknown-parameter-type.feature.ndjson +++ b/compatibility-kit/javascript/features/unknown-parameter-type/unknown-parameter-type.feature.ndjson @@ -1,12 +1,12 @@ -{"meta":{"protocolVersion":"16.0.1","implementation":{"name":"fake-cucumber","version":"12.0.2"},"cpu":{"name":"x64"},"os":{"name":"linux","version":"5.10.25-linuxkit"},"runtime":{"name":"node.js","version":"12.16.2"}}} +{"meta":{"protocolVersion":"16.0.1","implementation":{"name":"fake-cucumber","version":"12.0.2"},"cpu":{"name":"x64"},"os":{"name":"darwin","version":"19.6.0"},"runtime":{"name":"node.js","version":"12.22.1"}}} {"source":{"data":"Feature: Parameter Types\n Cucumber will generate an error message if a step definition registers\n an unknown parameter type, but the suite will run.\n\n Scenario: undefined parameter type\n Given CDG is closed because of a strike","uri":"features/unknown-parameter-type/unknown-parameter-type.feature","mediaType":"text/x.cucumber.gherkin+plain"}} -{"gherkinDocument":{"feature":{"tags":[],"location":{"line":1,"column":1},"language":"en","keyword":"Feature","name":"Parameter Types","description":" Cucumber will generate an error message if a step definition registers\n an unknown parameter type, but the suite will run.","children":[{"scenario":{"id":"c8ce75ed-448c-47ce-931b-513fc19ce8d8","tags":[],"location":{"line":5,"column":3},"keyword":"Scenario","name":"undefined parameter type","description":"","steps":[{"id":"e329eb67-1311-4e0d-b682-f4c4d87c63bd","location":{"line":6,"column":5},"keyword":"Given ","text":"CDG is closed because of a strike"}],"examples":[]}}]},"comments":[],"uri":"features/unknown-parameter-type/unknown-parameter-type.feature"}} -{"pickle":{"id":"652a4ef9-e630-4810-842d-1d12587f1bd9","uri":"features/unknown-parameter-type/unknown-parameter-type.feature","astNodeIds":["c8ce75ed-448c-47ce-931b-513fc19ce8d8"],"tags":[],"name":"undefined parameter type","language":"en","steps":[{"id":"a7eb210a-f515-46cb-90be-b56f267fefb7","text":"CDG is closed because of a strike","astNodeIds":["e329eb67-1311-4e0d-b682-f4c4d87c63bd"]}]}} +{"gherkinDocument":{"feature":{"tags":[],"location":{"line":1,"column":1},"language":"en","keyword":"Feature","name":"Parameter Types","description":" Cucumber will generate an error message if a step definition registers\n an unknown parameter type, but the suite will run.","children":[{"scenario":{"id":"4c0d5772-8d63-47c9-8a2e-93cd48b77f93","tags":[],"location":{"line":5,"column":3},"keyword":"Scenario","name":"undefined parameter type","description":"","steps":[{"id":"af4afc94-a1a0-487c-b71e-b93d4e385c1c","location":{"line":6,"column":5},"keyword":"Given ","text":"CDG is closed because of a strike"}],"examples":[]}}]},"comments":[],"uri":"features/unknown-parameter-type/unknown-parameter-type.feature"}} +{"pickle":{"id":"6cb7d3e5-184c-49d2-a8bc-2c79a5f7fec0","uri":"features/unknown-parameter-type/unknown-parameter-type.feature","astNodeIds":["4c0d5772-8d63-47c9-8a2e-93cd48b77f93"],"tags":[],"name":"undefined parameter type","language":"en","steps":[{"id":"2cbd36e6-d430-452b-9738-a62432ddef8e","text":"CDG is closed because of a strike","astNodeIds":["af4afc94-a1a0-487c-b71e-b93d4e385c1c"]}]}} {"undefinedParameterType":{"expression":"{airport} is closed because of a strike","name":"airport"}} -{"testRunStarted":{"timestamp":{"seconds":1623962949,"nanos":209000000}}} -{"testCase":{"id":"fd7dfab6-7043-4cd8-8ed2-0868c8280beb","pickleId":"652a4ef9-e630-4810-842d-1d12587f1bd9","testSteps":[{"id":"c38b8e82-73bc-44bf-820f-da370ae21995","pickleStepId":"a7eb210a-f515-46cb-90be-b56f267fefb7","stepDefinitionIds":[],"stepMatchArgumentsLists":[]}]}} -{"testCaseStarted":{"attempt":0,"testCaseId":"fd7dfab6-7043-4cd8-8ed2-0868c8280beb","id":"dbbf6a5c-ac07-49da-8388-0ddd654e2057","timestamp":{"seconds":1623962949,"nanos":211000000}}} -{"testStepStarted":{"testCaseStartedId":"dbbf6a5c-ac07-49da-8388-0ddd654e2057","testStepId":"c38b8e82-73bc-44bf-820f-da370ae21995","timestamp":{"seconds":1623962949,"nanos":212000000}}} -{"testStepFinished":{"testCaseStartedId":"dbbf6a5c-ac07-49da-8388-0ddd654e2057","testStepId":"c38b8e82-73bc-44bf-820f-da370ae21995","testStepResult":{"duration":{"seconds":0,"nanos":0},"status":"UNDEFINED","willBeRetried":false},"timestamp":{"seconds":1623962949,"nanos":213000000}}} -{"testCaseFinished":{"testCaseStartedId":"dbbf6a5c-ac07-49da-8388-0ddd654e2057","timestamp":{"seconds":1623962949,"nanos":214000000}}} -{"testRunFinished":{"timestamp":{"seconds":1623962949,"nanos":215000000},"success":false}} +{"testRunStarted":{"timestamp":{"seconds":1624564797,"nanos":215000000}}} +{"testCase":{"id":"04e4f84d-54ee-4876-9241-a1641bcb0a43","pickleId":"6cb7d3e5-184c-49d2-a8bc-2c79a5f7fec0","testSteps":[{"id":"65dcc73e-1951-4473-915b-f9ca7f87c346","pickleStepId":"2cbd36e6-d430-452b-9738-a62432ddef8e","stepDefinitionIds":[],"stepMatchArgumentsLists":[]}]}} +{"testCaseStarted":{"attempt":0,"testCaseId":"04e4f84d-54ee-4876-9241-a1641bcb0a43","id":"308c735e-373f-45ed-a7bd-e5eee3e6e508","timestamp":{"seconds":1624564797,"nanos":215000000}}} +{"testStepStarted":{"testCaseStartedId":"308c735e-373f-45ed-a7bd-e5eee3e6e508","testStepId":"65dcc73e-1951-4473-915b-f9ca7f87c346","timestamp":{"seconds":1624564797,"nanos":215000000}}} +{"testStepFinished":{"testCaseStartedId":"308c735e-373f-45ed-a7bd-e5eee3e6e508","testStepId":"65dcc73e-1951-4473-915b-f9ca7f87c346","testStepResult":{"duration":{"seconds":0,"nanos":0},"status":"UNDEFINED"},"timestamp":{"seconds":1624564797,"nanos":216000000}}} +{"testCaseFinished":{"testCaseStartedId":"308c735e-373f-45ed-a7bd-e5eee3e6e508","timestamp":{"seconds":1624564797,"nanos":216000000},"willBeRetried":false}} +{"testRunFinished":{"timestamp":{"seconds":1624564797,"nanos":216000000},"success":false}} From c23fde0fd657ea67c93623a13d3aeafd38d3a816 Mon Sep 17 00:00:00 2001 From: David Goss Date: Fri, 25 Jun 2021 08:27:51 +0100 Subject: [PATCH 33/38] review feedback --- fake-cucumber/javascript/src/TestCase.ts | 2 +- fake-cucumber/javascript/src/TestPlan.ts | 2 +- fake-cucumber/javascript/src/cli.ts | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/fake-cucumber/javascript/src/TestCase.ts b/fake-cucumber/javascript/src/TestCase.ts index 3b9cdf775c..86e861248a 100644 --- a/fake-cucumber/javascript/src/TestCase.ts +++ b/fake-cucumber/javascript/src/TestCase.ts @@ -60,7 +60,7 @@ export default class TestCase implements ITestCase { testStepResults.push(testStepResult) } - const willBeRetried = retryable && getWorstTestStepResult(testStepResults).status === "FAILED" + const willBeRetried = retryable && getWorstTestStepResult(testStepResults).status === messages.TestStepResultStatus.FAILED listener({ testCaseFinished: { diff --git a/fake-cucumber/javascript/src/TestPlan.ts b/fake-cucumber/javascript/src/TestPlan.ts index 47e5d25093..d75270c7ab 100644 --- a/fake-cucumber/javascript/src/TestPlan.ts +++ b/fake-cucumber/javascript/src/TestPlan.ts @@ -48,7 +48,7 @@ export default class TestPlan implements ITestPlan { attempt < allowedAttempts - 1, this.supportCode.newId() ) - if (testStepResultStatus !== 'FAILED') { + if (testStepResultStatus !== messages.TestStepResultStatus.FAILED) { break } } diff --git a/fake-cucumber/javascript/src/cli.ts b/fake-cucumber/javascript/src/cli.ts index d3f13bac8a..66a48ce786 100644 --- a/fake-cucumber/javascript/src/cli.ts +++ b/fake-cucumber/javascript/src/cli.ts @@ -13,7 +13,7 @@ import { RunOptions } from './types' const program = new Command() program.version(packageJson.version) program.option('-r, --require ', 'override require path') -program.option('--retry ', 'allow up to retries') +program.option('--retry ', 'allow up to retries for scenarios that fail') program.option('--predictable-ids', 'Use predictable ids', false) async function main() { From 451cf019d0fd33aeef8345bad9882962c2ff982c Mon Sep 17 00:00:00 2001 From: David Goss Date: Fri, 25 Jun 2021 09:16:41 +0100 Subject: [PATCH 34/38] update various changelogs --- compatibility-kit/CHANGELOG.md | 2 ++ fake-cucumber/CHANGELOG.md | 2 ++ messages/CHANGELOG.md | 1 + query/CHANGELOG.md | 8 ++++++++ 4 files changed, 13 insertions(+) diff --git a/compatibility-kit/CHANGELOG.md b/compatibility-kit/CHANGELOG.md index b77abb84c8..9dc05ffa20 100644 --- a/compatibility-kit/CHANGELOG.md +++ b/compatibility-kit/CHANGELOG.md @@ -11,6 +11,8 @@ and this project adheres to [Semantic Versioning](http://semver.org/). * Added Examples to the attachments feature to generate messages for fixing [#1173](https://github.com/cucumber/common/issues/1173) +* Added `retry` feature to validate Retry behaviour in implementations that have it ([#1631](https://github.com/cucumber/common/pull/1631)) +* Added mechanism to optionally specify CLI options for `fake-cucumber` per feature ### Changed diff --git a/fake-cucumber/CHANGELOG.md b/fake-cucumber/CHANGELOG.md index 8dea282d20..a5f9a864c0 100644 --- a/fake-cucumber/CHANGELOG.md +++ b/fake-cucumber/CHANGELOG.md @@ -9,6 +9,8 @@ and this project adheres to [Semantic Versioning](http://semver.org/). ### Added +* Add support for retrying failed scenarios via `--retry ` option ([#1631](https://github.com/cucumber/common/pull/1631)) + ### Changed ### Deprecated diff --git a/messages/CHANGELOG.md b/messages/CHANGELOG.md index ee074934c1..1ddd169694 100644 --- a/messages/CHANGELOG.md +++ b/messages/CHANGELOG.md @@ -14,6 +14,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/). ### Changed +* Move `willBeRetried` field from `TestStepResult` to `TestCaseFinished` ([#902](https://github.com/cucumber/common/issues/902) [#1631](https://github.com/cucumber/common/pull/1631)) * [Go] Move module paths to point to monorepo ([#1550](https://github.com/cucumber/common/issues/1550)) diff --git a/query/CHANGELOG.md b/query/CHANGELOG.md index c849c2bdb9..d6129567b7 100644 --- a/query/CHANGELOG.md +++ b/query/CHANGELOG.md @@ -17,6 +17,14 @@ and this project adheres to [Semantic Versioning](http://semver.org/). ### Fixed +* Methods that return/map step results now include results from _only the last attempt_ where there have been retries ([#1631](https://github.com/cucumber/common/pull/1631)). Affects methods: + * `Query#getPickleStepAttachments` + * `Query#getPickleStepTestStepResults` + * `Query#getPickleTestStepResults` + * `Query#getStatusCounts` + * `Query#getTestStepResults` + * `Query#getTestStepsAttachments` + ## [10.1.0] - 2021-05-31 ### Added From 9ef340f9bc77d58a0ff8e006cd7f6a854d8a748f Mon Sep 17 00:00:00 2001 From: David Goss Date: Fri, 25 Jun 2021 14:45:34 +0100 Subject: [PATCH 35/38] remove use of PENDING in retry cck feature --- .../javascript/features/retry/retry.feature | 3 - .../features/retry/retry.feature.ndjson | 123 +++++++++--------- .../features/retry/retry.feature.ts | 4 - 3 files changed, 58 insertions(+), 72 deletions(-) diff --git a/compatibility-kit/javascript/features/retry/retry.feature b/compatibility-kit/javascript/features/retry/retry.feature index ac24f74ae2..79f9188d11 100644 --- a/compatibility-kit/javascript/features/retry/retry.feature +++ b/compatibility-kit/javascript/features/retry/retry.feature @@ -18,8 +18,5 @@ Feature: Retry Scenario: test case fails on every attempt Given a step that always fails - Scenario: don't retry on PENDING - Given a pending step - Scenario: don't retry on UNDEFINED Given a non-existent step diff --git a/compatibility-kit/javascript/features/retry/retry.feature.ndjson b/compatibility-kit/javascript/features/retry/retry.feature.ndjson index bd8a0ffa7e..ad11a11945 100644 --- a/compatibility-kit/javascript/features/retry/retry.feature.ndjson +++ b/compatibility-kit/javascript/features/retry/retry.feature.ndjson @@ -1,66 +1,59 @@ {"meta":{"protocolVersion":"16.0.1","implementation":{"name":"fake-cucumber","version":"12.0.2"},"cpu":{"name":"x64"},"os":{"name":"darwin","version":"19.6.0"},"runtime":{"name":"node.js","version":"12.22.1"}}} -{"source":{"data":"Feature: Retry\n\n Some Cucumber implementations support a Retry mechanism, where test cases that fail\n can be retried up to a limited number of attempts in the same test run.\n\n Non-passing statuses other than FAILED don't trigger a retry - they are not going to pass\n however many times we attempt them.\n\n Scenario: test case passes on the first attempt\n Given a step that always passes\n\n Scenario: test case passes on the second attempt\n Given a step that passes the second time\n\n Scenario: test case passes on the final attempt\n Given a step that passes the third time\n\n Scenario: test case fails on every attempt\n Given a step that always fails\n\n Scenario: don't retry on PENDING\n Given a pending step\n\n Scenario: don't retry on UNDEFINED\n Given a non-existent step\n","uri":"features/retry/retry.feature","mediaType":"text/x.cucumber.gherkin+plain"}} -{"gherkinDocument":{"feature":{"tags":[],"location":{"line":1,"column":1},"language":"en","keyword":"Feature","name":"Retry","description":" Some Cucumber implementations support a Retry mechanism, where test cases that fail\n can be retried up to a limited number of attempts in the same test run.\n\n Non-passing statuses other than FAILED don't trigger a retry - they are not going to pass\n however many times we attempt them.","children":[{"scenario":{"id":"cc897fa6-40a8-4cb7-b0c2-9416d403ba7a","tags":[],"location":{"line":9,"column":3},"keyword":"Scenario","name":"test case passes on the first attempt","description":"","steps":[{"id":"dac1a2a0-6ab7-4523-8c59-4126ca0d9819","location":{"line":10,"column":5},"keyword":"Given ","text":"a step that always passes"}],"examples":[]}},{"scenario":{"id":"dbcb6db1-c1f5-4f45-8806-93010bd43572","tags":[],"location":{"line":12,"column":3},"keyword":"Scenario","name":"test case passes on the second attempt","description":"","steps":[{"id":"61ec317f-c047-4977-98c5-bc272ef2cdee","location":{"line":13,"column":5},"keyword":"Given ","text":"a step that passes the second time"}],"examples":[]}},{"scenario":{"id":"7baf08d8-146e-47f8-a0af-a3efe4721e4c","tags":[],"location":{"line":15,"column":3},"keyword":"Scenario","name":"test case passes on the final attempt","description":"","steps":[{"id":"cfa9c815-83e4-408b-b3c2-397b6221902a","location":{"line":16,"column":5},"keyword":"Given ","text":"a step that passes the third time"}],"examples":[]}},{"scenario":{"id":"1e5ea307-1414-4c3b-9736-b5bf0867188e","tags":[],"location":{"line":18,"column":3},"keyword":"Scenario","name":"test case fails on every attempt","description":"","steps":[{"id":"be7dda51-f000-4304-9dd2-aecc32382063","location":{"line":19,"column":5},"keyword":"Given ","text":"a step that always fails"}],"examples":[]}},{"scenario":{"id":"18934346-9084-4988-a00e-2be7312732fe","tags":[],"location":{"line":21,"column":3},"keyword":"Scenario","name":"don't retry on PENDING","description":"","steps":[{"id":"cfc6144a-7edc-4108-a907-d657e7228632","location":{"line":22,"column":5},"keyword":"Given ","text":"a pending step"}],"examples":[]}},{"scenario":{"id":"1742cc38-aa0f-425c-8965-999039ab99d4","tags":[],"location":{"line":24,"column":3},"keyword":"Scenario","name":"don't retry on UNDEFINED","description":"","steps":[{"id":"09674041-0c59-461b-94aa-89913c47eabb","location":{"line":25,"column":5},"keyword":"Given ","text":"a non-existent step"}],"examples":[]}}]},"comments":[],"uri":"features/retry/retry.feature"}} -{"pickle":{"id":"a09e32e5-1562-48c0-afc1-bf206e423959","uri":"features/retry/retry.feature","astNodeIds":["cc897fa6-40a8-4cb7-b0c2-9416d403ba7a"],"tags":[],"name":"test case passes on the first attempt","language":"en","steps":[{"id":"0f6d2721-6251-40bb-828d-83652fa41345","text":"a step that always passes","astNodeIds":["dac1a2a0-6ab7-4523-8c59-4126ca0d9819"]}]}} -{"pickle":{"id":"d70f927e-9511-4e8c-832d-003c525d1d76","uri":"features/retry/retry.feature","astNodeIds":["dbcb6db1-c1f5-4f45-8806-93010bd43572"],"tags":[],"name":"test case passes on the second attempt","language":"en","steps":[{"id":"587db012-5347-40c1-b7db-c9b48cef1730","text":"a step that passes the second time","astNodeIds":["61ec317f-c047-4977-98c5-bc272ef2cdee"]}]}} -{"pickle":{"id":"c2341bd9-ca39-4df2-9c38-408709c9b512","uri":"features/retry/retry.feature","astNodeIds":["7baf08d8-146e-47f8-a0af-a3efe4721e4c"],"tags":[],"name":"test case passes on the final attempt","language":"en","steps":[{"id":"b5c91864-9fc0-4c1c-b1a6-11be160b4aee","text":"a step that passes the third time","astNodeIds":["cfa9c815-83e4-408b-b3c2-397b6221902a"]}]}} -{"pickle":{"id":"9b38372e-08fc-4621-8e13-28aa3be1bff8","uri":"features/retry/retry.feature","astNodeIds":["1e5ea307-1414-4c3b-9736-b5bf0867188e"],"tags":[],"name":"test case fails on every attempt","language":"en","steps":[{"id":"383ab032-eb07-4e3f-bd0f-7d8d2516e0c0","text":"a step that always fails","astNodeIds":["be7dda51-f000-4304-9dd2-aecc32382063"]}]}} -{"pickle":{"id":"93f14609-076d-4987-ac65-2226f3633e69","uri":"features/retry/retry.feature","astNodeIds":["18934346-9084-4988-a00e-2be7312732fe"],"tags":[],"name":"don't retry on PENDING","language":"en","steps":[{"id":"e187313b-43a3-4c35-93c4-679fea7ffd51","text":"a pending step","astNodeIds":["cfc6144a-7edc-4108-a907-d657e7228632"]}]}} -{"pickle":{"id":"196358fc-a4d4-4afd-aa65-62bab89ae67b","uri":"features/retry/retry.feature","astNodeIds":["1742cc38-aa0f-425c-8965-999039ab99d4"],"tags":[],"name":"don't retry on UNDEFINED","language":"en","steps":[{"id":"b9f85968-4b12-49be-ad1c-8078368f3a51","text":"a non-existent step","astNodeIds":["09674041-0c59-461b-94aa-89913c47eabb"]}]}} -{"stepDefinition":{"id":"239a5751-616f-44d2-92fe-01e10e6e4613","pattern":{"type":"CUCUMBER_EXPRESSION","source":"a step that always passes"},"sourceReference":{"uri":"features/retry/retry.feature.ts","location":{"line":3}}}} -{"stepDefinition":{"id":"a7291734-ef53-41e7-893f-52943f5292d2","pattern":{"type":"CUCUMBER_EXPRESSION","source":"a step that passes the second time"},"sourceReference":{"uri":"features/retry/retry.feature.ts","location":{"line":8}}}} -{"stepDefinition":{"id":"b53242d2-d292-46b9-b522-6e6030105b2a","pattern":{"type":"CUCUMBER_EXPRESSION","source":"a step that passes the third time"},"sourceReference":{"uri":"features/retry/retry.feature.ts","location":{"line":16}}}} -{"stepDefinition":{"id":"b927795e-a893-49ad-b86f-65a6d741f2c6","pattern":{"type":"CUCUMBER_EXPRESSION","source":"a step that always fails"},"sourceReference":{"uri":"features/retry/retry.feature.ts","location":{"line":23}}}} -{"stepDefinition":{"id":"7db40e6c-fa37-42d2-b147-63b780dcf352","pattern":{"type":"CUCUMBER_EXPRESSION","source":"a pending step"},"sourceReference":{"uri":"features/retry/retry.feature.ts","location":{"line":27}}}} -{"testRunStarted":{"timestamp":{"seconds":1624564795,"nanos":859000000}}} -{"testCase":{"id":"a55b52be-6143-49fa-97be-52612864e22d","pickleId":"a09e32e5-1562-48c0-afc1-bf206e423959","testSteps":[{"id":"b6f24aec-e344-46e1-9d94-a41888067227","pickleStepId":"0f6d2721-6251-40bb-828d-83652fa41345","stepDefinitionIds":["239a5751-616f-44d2-92fe-01e10e6e4613"],"stepMatchArgumentsLists":[{"stepMatchArguments":[]}]}]}} -{"testCase":{"id":"5a62255a-90be-4df9-a45a-1df6aca945ce","pickleId":"d70f927e-9511-4e8c-832d-003c525d1d76","testSteps":[{"id":"b9f7070b-e645-4dda-bde7-4ad3a4414a69","pickleStepId":"587db012-5347-40c1-b7db-c9b48cef1730","stepDefinitionIds":["a7291734-ef53-41e7-893f-52943f5292d2"],"stepMatchArgumentsLists":[{"stepMatchArguments":[]}]}]}} -{"testCase":{"id":"5acaf872-0d74-4786-8f07-5aebade649af","pickleId":"c2341bd9-ca39-4df2-9c38-408709c9b512","testSteps":[{"id":"2104c895-3deb-47cc-81a8-05b3bc3f7d5f","pickleStepId":"b5c91864-9fc0-4c1c-b1a6-11be160b4aee","stepDefinitionIds":["b53242d2-d292-46b9-b522-6e6030105b2a"],"stepMatchArgumentsLists":[{"stepMatchArguments":[]}]}]}} -{"testCase":{"id":"474ff432-e642-45ee-bc36-36cef07f274f","pickleId":"9b38372e-08fc-4621-8e13-28aa3be1bff8","testSteps":[{"id":"29173ed7-65b4-4b33-a2dd-bddcc93a7a42","pickleStepId":"383ab032-eb07-4e3f-bd0f-7d8d2516e0c0","stepDefinitionIds":["b927795e-a893-49ad-b86f-65a6d741f2c6"],"stepMatchArgumentsLists":[{"stepMatchArguments":[]}]}]}} -{"testCase":{"id":"7eb302af-f97a-4c89-946e-157af9a3add2","pickleId":"93f14609-076d-4987-ac65-2226f3633e69","testSteps":[{"id":"3347df56-c5d2-48d2-a5cc-d4d31f52c4bd","pickleStepId":"e187313b-43a3-4c35-93c4-679fea7ffd51","stepDefinitionIds":["7db40e6c-fa37-42d2-b147-63b780dcf352"],"stepMatchArgumentsLists":[{"stepMatchArguments":[]}]}]}} -{"testCase":{"id":"43da219d-9a4f-4e5a-ad05-2ae22b048639","pickleId":"196358fc-a4d4-4afd-aa65-62bab89ae67b","testSteps":[{"id":"8d128a40-29b1-4950-bdfa-0366632df4d2","pickleStepId":"b9f85968-4b12-49be-ad1c-8078368f3a51","stepDefinitionIds":[],"stepMatchArgumentsLists":[]}]}} -{"testCaseStarted":{"attempt":0,"testCaseId":"a55b52be-6143-49fa-97be-52612864e22d","id":"58239969-114a-476d-add5-9d4f6e82c41a","timestamp":{"seconds":1624564795,"nanos":859000000}}} -{"testStepStarted":{"testCaseStartedId":"58239969-114a-476d-add5-9d4f6e82c41a","testStepId":"b6f24aec-e344-46e1-9d94-a41888067227","timestamp":{"seconds":1624564795,"nanos":860000000}}} -{"testStepFinished":{"testCaseStartedId":"58239969-114a-476d-add5-9d4f6e82c41a","testStepId":"b6f24aec-e344-46e1-9d94-a41888067227","testStepResult":{"duration":{"seconds":0,"nanos":146560},"status":"PASSED"},"timestamp":{"seconds":1624564795,"nanos":860000000}}} -{"testCaseFinished":{"testCaseStartedId":"58239969-114a-476d-add5-9d4f6e82c41a","timestamp":{"seconds":1624564795,"nanos":860000000},"willBeRetried":false}} -{"testCaseStarted":{"attempt":0,"testCaseId":"5a62255a-90be-4df9-a45a-1df6aca945ce","id":"27cf0746-c54e-41ad-baf6-2f37839cfc74","timestamp":{"seconds":1624564795,"nanos":860000000}}} -{"testStepStarted":{"testCaseStartedId":"27cf0746-c54e-41ad-baf6-2f37839cfc74","testStepId":"b9f7070b-e645-4dda-bde7-4ad3a4414a69","timestamp":{"seconds":1624564795,"nanos":860000000}}} -{"testStepFinished":{"testCaseStartedId":"27cf0746-c54e-41ad-baf6-2f37839cfc74","testStepId":"b9f7070b-e645-4dda-bde7-4ad3a4414a69","testStepResult":{"duration":{"seconds":0,"nanos":41313},"status":"FAILED","message":"Exception in step\n at Object. (features/retry/retry.feature.ts:11:11)\n at Generator.next ()\n at new Promise ()\n at Generator.next ()\n at features/retry/retry.feature:13"},"timestamp":{"seconds":1624564795,"nanos":869000000}}} -{"testCaseFinished":{"testCaseStartedId":"27cf0746-c54e-41ad-baf6-2f37839cfc74","timestamp":{"seconds":1624564795,"nanos":870000000},"willBeRetried":true}} -{"testCaseStarted":{"attempt":1,"testCaseId":"5a62255a-90be-4df9-a45a-1df6aca945ce","id":"43649f70-f16f-4283-a571-c26a785f1eb8","timestamp":{"seconds":1624564795,"nanos":870000000}}} -{"testStepStarted":{"testCaseStartedId":"43649f70-f16f-4283-a571-c26a785f1eb8","testStepId":"b9f7070b-e645-4dda-bde7-4ad3a4414a69","timestamp":{"seconds":1624564795,"nanos":870000000}}} -{"testStepFinished":{"testCaseStartedId":"43649f70-f16f-4283-a571-c26a785f1eb8","testStepId":"b9f7070b-e645-4dda-bde7-4ad3a4414a69","testStepResult":{"duration":{"seconds":0,"nanos":20487},"status":"PASSED"},"timestamp":{"seconds":1624564795,"nanos":870000000}}} -{"testCaseFinished":{"testCaseStartedId":"43649f70-f16f-4283-a571-c26a785f1eb8","timestamp":{"seconds":1624564795,"nanos":870000000},"willBeRetried":false}} -{"testCaseStarted":{"attempt":0,"testCaseId":"5acaf872-0d74-4786-8f07-5aebade649af","id":"c0ff4cc7-0dfc-4503-961c-e092e3c89f3a","timestamp":{"seconds":1624564795,"nanos":870000000}}} -{"testStepStarted":{"testCaseStartedId":"c0ff4cc7-0dfc-4503-961c-e092e3c89f3a","testStepId":"2104c895-3deb-47cc-81a8-05b3bc3f7d5f","timestamp":{"seconds":1624564795,"nanos":870000000}}} -{"testStepFinished":{"testCaseStartedId":"c0ff4cc7-0dfc-4503-961c-e092e3c89f3a","testStepId":"2104c895-3deb-47cc-81a8-05b3bc3f7d5f","testStepResult":{"duration":{"seconds":0,"nanos":83470},"status":"FAILED","message":"Exception in step\n at Object. (features/retry/retry.feature.ts:19:11)\n at Generator.next ()\n at new Promise ()\n at Generator.next ()\n at features/retry/retry.feature:16"},"timestamp":{"seconds":1624564795,"nanos":871000000}}} -{"testCaseFinished":{"testCaseStartedId":"c0ff4cc7-0dfc-4503-961c-e092e3c89f3a","timestamp":{"seconds":1624564795,"nanos":871000000},"willBeRetried":true}} -{"testCaseStarted":{"attempt":1,"testCaseId":"5acaf872-0d74-4786-8f07-5aebade649af","id":"1c05f026-2cfb-41d9-97f0-55f1b66cf47f","timestamp":{"seconds":1624564795,"nanos":871000000}}} -{"testStepStarted":{"testCaseStartedId":"1c05f026-2cfb-41d9-97f0-55f1b66cf47f","testStepId":"2104c895-3deb-47cc-81a8-05b3bc3f7d5f","timestamp":{"seconds":1624564795,"nanos":871000000}}} -{"testStepFinished":{"testCaseStartedId":"1c05f026-2cfb-41d9-97f0-55f1b66cf47f","testStepId":"2104c895-3deb-47cc-81a8-05b3bc3f7d5f","testStepResult":{"duration":{"seconds":0,"nanos":52978},"status":"FAILED","message":"Exception in step\n at Object. (features/retry/retry.feature.ts:19:11)\n at Generator.next ()\n at new Promise ()\n at Generator.next ()\n at features/retry/retry.feature:16"},"timestamp":{"seconds":1624564795,"nanos":872000000}}} -{"testCaseFinished":{"testCaseStartedId":"1c05f026-2cfb-41d9-97f0-55f1b66cf47f","timestamp":{"seconds":1624564795,"nanos":872000000},"willBeRetried":true}} -{"testCaseStarted":{"attempt":2,"testCaseId":"5acaf872-0d74-4786-8f07-5aebade649af","id":"942bebfe-233a-46ca-9a0b-44b2982f4ca2","timestamp":{"seconds":1624564795,"nanos":872000000}}} -{"testStepStarted":{"testCaseStartedId":"942bebfe-233a-46ca-9a0b-44b2982f4ca2","testStepId":"2104c895-3deb-47cc-81a8-05b3bc3f7d5f","timestamp":{"seconds":1624564795,"nanos":872000000}}} -{"testStepFinished":{"testCaseStartedId":"942bebfe-233a-46ca-9a0b-44b2982f4ca2","testStepId":"2104c895-3deb-47cc-81a8-05b3bc3f7d5f","testStepResult":{"duration":{"seconds":0,"nanos":11381},"status":"PASSED"},"timestamp":{"seconds":1624564795,"nanos":872000000}}} -{"testCaseFinished":{"testCaseStartedId":"942bebfe-233a-46ca-9a0b-44b2982f4ca2","timestamp":{"seconds":1624564795,"nanos":872000000},"willBeRetried":false}} -{"testCaseStarted":{"attempt":0,"testCaseId":"474ff432-e642-45ee-bc36-36cef07f274f","id":"3eaa62f0-e492-4d1c-b756-52ee3d9d0a54","timestamp":{"seconds":1624564795,"nanos":872000000}}} -{"testStepStarted":{"testCaseStartedId":"3eaa62f0-e492-4d1c-b756-52ee3d9d0a54","testStepId":"29173ed7-65b4-4b33-a2dd-bddcc93a7a42","timestamp":{"seconds":1624564795,"nanos":872000000}}} -{"testStepFinished":{"testCaseStartedId":"3eaa62f0-e492-4d1c-b756-52ee3d9d0a54","testStepId":"29173ed7-65b4-4b33-a2dd-bddcc93a7a42","testStepResult":{"duration":{"seconds":0,"nanos":45960},"status":"FAILED","message":"Exception in step\n at Object. (features/retry/retry.feature.ts:24:9)\n at Generator.next ()\n at new Promise ()\n at Generator.next ()\n at features/retry/retry.feature:19"},"timestamp":{"seconds":1624564795,"nanos":872000000}}} -{"testCaseFinished":{"testCaseStartedId":"3eaa62f0-e492-4d1c-b756-52ee3d9d0a54","timestamp":{"seconds":1624564795,"nanos":872000000},"willBeRetried":true}} -{"testCaseStarted":{"attempt":1,"testCaseId":"474ff432-e642-45ee-bc36-36cef07f274f","id":"6f29bffc-6b81-4857-9774-dfcf340b26a6","timestamp":{"seconds":1624564795,"nanos":872000000}}} -{"testStepStarted":{"testCaseStartedId":"6f29bffc-6b81-4857-9774-dfcf340b26a6","testStepId":"29173ed7-65b4-4b33-a2dd-bddcc93a7a42","timestamp":{"seconds":1624564795,"nanos":872000000}}} -{"testStepFinished":{"testCaseStartedId":"6f29bffc-6b81-4857-9774-dfcf340b26a6","testStepId":"29173ed7-65b4-4b33-a2dd-bddcc93a7a42","testStepResult":{"duration":{"seconds":0,"nanos":15107},"status":"FAILED","message":"Exception in step\n at Object. (features/retry/retry.feature.ts:24:9)\n at Generator.next ()\n at new Promise ()\n at Generator.next ()\n at features/retry/retry.feature:19"},"timestamp":{"seconds":1624564795,"nanos":873000000}}} -{"testCaseFinished":{"testCaseStartedId":"6f29bffc-6b81-4857-9774-dfcf340b26a6","timestamp":{"seconds":1624564795,"nanos":873000000},"willBeRetried":true}} -{"testCaseStarted":{"attempt":2,"testCaseId":"474ff432-e642-45ee-bc36-36cef07f274f","id":"619febc0-95d5-4089-a6ae-84267e527ec4","timestamp":{"seconds":1624564795,"nanos":873000000}}} -{"testStepStarted":{"testCaseStartedId":"619febc0-95d5-4089-a6ae-84267e527ec4","testStepId":"29173ed7-65b4-4b33-a2dd-bddcc93a7a42","timestamp":{"seconds":1624564795,"nanos":873000000}}} -{"testStepFinished":{"testCaseStartedId":"619febc0-95d5-4089-a6ae-84267e527ec4","testStepId":"29173ed7-65b4-4b33-a2dd-bddcc93a7a42","testStepResult":{"duration":{"seconds":0,"nanos":15311},"status":"FAILED","message":"Exception in step\n at Object. (features/retry/retry.feature.ts:24:9)\n at Generator.next ()\n at new Promise ()\n at Generator.next ()\n at features/retry/retry.feature:19"},"timestamp":{"seconds":1624564795,"nanos":873000000}}} -{"testCaseFinished":{"testCaseStartedId":"619febc0-95d5-4089-a6ae-84267e527ec4","timestamp":{"seconds":1624564795,"nanos":873000000},"willBeRetried":false}} -{"testCaseStarted":{"attempt":0,"testCaseId":"7eb302af-f97a-4c89-946e-157af9a3add2","id":"57f1473b-b381-49d6-bf14-98015b3baa50","timestamp":{"seconds":1624564795,"nanos":874000000}}} -{"testStepStarted":{"testCaseStartedId":"57f1473b-b381-49d6-bf14-98015b3baa50","testStepId":"3347df56-c5d2-48d2-a5cc-d4d31f52c4bd","timestamp":{"seconds":1624564795,"nanos":874000000}}} -{"testStepFinished":{"testCaseStartedId":"57f1473b-b381-49d6-bf14-98015b3baa50","testStepId":"3347df56-c5d2-48d2-a5cc-d4d31f52c4bd","testStepResult":{"duration":{"seconds":0,"nanos":32261},"status":"PENDING"},"timestamp":{"seconds":1624564795,"nanos":874000000}}} -{"testCaseFinished":{"testCaseStartedId":"57f1473b-b381-49d6-bf14-98015b3baa50","timestamp":{"seconds":1624564795,"nanos":874000000},"willBeRetried":false}} -{"testCaseStarted":{"attempt":0,"testCaseId":"43da219d-9a4f-4e5a-ad05-2ae22b048639","id":"45821f76-e117-40ce-b450-6428c6bbf72f","timestamp":{"seconds":1624564795,"nanos":876000000}}} -{"testStepStarted":{"testCaseStartedId":"45821f76-e117-40ce-b450-6428c6bbf72f","testStepId":"8d128a40-29b1-4950-bdfa-0366632df4d2","timestamp":{"seconds":1624564795,"nanos":876000000}}} -{"testStepFinished":{"testCaseStartedId":"45821f76-e117-40ce-b450-6428c6bbf72f","testStepId":"8d128a40-29b1-4950-bdfa-0366632df4d2","testStepResult":{"duration":{"seconds":0,"nanos":0},"status":"UNDEFINED"},"timestamp":{"seconds":1624564795,"nanos":876000000}}} -{"testCaseFinished":{"testCaseStartedId":"45821f76-e117-40ce-b450-6428c6bbf72f","timestamp":{"seconds":1624564795,"nanos":876000000},"willBeRetried":false}} -{"testRunFinished":{"timestamp":{"seconds":1624564795,"nanos":876000000},"success":false}} +{"source":{"data":"Feature: Retry\n\n Some Cucumber implementations support a Retry mechanism, where test cases that fail\n can be retried up to a limited number of attempts in the same test run.\n\n Non-passing statuses other than FAILED don't trigger a retry - they are not going to pass\n however many times we attempt them.\n\n Scenario: test case passes on the first attempt\n Given a step that always passes\n\n Scenario: test case passes on the second attempt\n Given a step that passes the second time\n\n Scenario: test case passes on the final attempt\n Given a step that passes the third time\n\n Scenario: test case fails on every attempt\n Given a step that always fails\n\n Scenario: don't retry on UNDEFINED\n Given a non-existent step\n","uri":"features/retry/retry.feature","mediaType":"text/x.cucumber.gherkin+plain"}} +{"gherkinDocument":{"feature":{"tags":[],"location":{"line":1,"column":1},"language":"en","keyword":"Feature","name":"Retry","description":" Some Cucumber implementations support a Retry mechanism, where test cases that fail\n can be retried up to a limited number of attempts in the same test run.\n\n Non-passing statuses other than FAILED don't trigger a retry - they are not going to pass\n however many times we attempt them.","children":[{"scenario":{"id":"1684fbe6-6b89-445e-87e9-01224e90cb4a","tags":[],"location":{"line":9,"column":3},"keyword":"Scenario","name":"test case passes on the first attempt","description":"","steps":[{"id":"a33cde8a-8eba-428f-a37b-1093b3653c8e","location":{"line":10,"column":5},"keyword":"Given ","text":"a step that always passes"}],"examples":[]}},{"scenario":{"id":"12bc3353-46a3-42a2-87a5-9cce2fef7c47","tags":[],"location":{"line":12,"column":3},"keyword":"Scenario","name":"test case passes on the second attempt","description":"","steps":[{"id":"12bb178f-e645-4ed8-bffb-a01f5bd3e9a0","location":{"line":13,"column":5},"keyword":"Given ","text":"a step that passes the second time"}],"examples":[]}},{"scenario":{"id":"a0f98fff-af59-4753-ab80-3ddc79c46eb9","tags":[],"location":{"line":15,"column":3},"keyword":"Scenario","name":"test case passes on the final attempt","description":"","steps":[{"id":"809513a7-36b2-4e9d-bd0c-3eaf2de945ca","location":{"line":16,"column":5},"keyword":"Given ","text":"a step that passes the third time"}],"examples":[]}},{"scenario":{"id":"b2c31862-0b4a-4d13-8fcc-d1a08f672371","tags":[],"location":{"line":18,"column":3},"keyword":"Scenario","name":"test case fails on every attempt","description":"","steps":[{"id":"7357c0b1-8c11-4706-b10e-5dde0c7ffd9a","location":{"line":19,"column":5},"keyword":"Given ","text":"a step that always fails"}],"examples":[]}},{"scenario":{"id":"abf4f6fa-0740-4cf9-a76d-cf3a5b3cb947","tags":[],"location":{"line":21,"column":3},"keyword":"Scenario","name":"don't retry on UNDEFINED","description":"","steps":[{"id":"595b9ed6-c89d-4822-a4c9-abbc2a1407c9","location":{"line":22,"column":5},"keyword":"Given ","text":"a non-existent step"}],"examples":[]}}]},"comments":[],"uri":"features/retry/retry.feature"}} +{"pickle":{"id":"8be93b22-832d-4d90-83b4-daac69570d58","uri":"features/retry/retry.feature","astNodeIds":["1684fbe6-6b89-445e-87e9-01224e90cb4a"],"tags":[],"name":"test case passes on the first attempt","language":"en","steps":[{"id":"8c1836d1-8829-4cb6-9606-6a6a70f43737","text":"a step that always passes","astNodeIds":["a33cde8a-8eba-428f-a37b-1093b3653c8e"]}]}} +{"pickle":{"id":"4b1a0036-306a-4627-92de-b428d9504677","uri":"features/retry/retry.feature","astNodeIds":["12bc3353-46a3-42a2-87a5-9cce2fef7c47"],"tags":[],"name":"test case passes on the second attempt","language":"en","steps":[{"id":"388e929c-f504-4828-8101-3c9f3ec4c0b5","text":"a step that passes the second time","astNodeIds":["12bb178f-e645-4ed8-bffb-a01f5bd3e9a0"]}]}} +{"pickle":{"id":"c477119f-6b3a-472b-bccc-352f9ea655e8","uri":"features/retry/retry.feature","astNodeIds":["a0f98fff-af59-4753-ab80-3ddc79c46eb9"],"tags":[],"name":"test case passes on the final attempt","language":"en","steps":[{"id":"b7e567eb-9a33-4cba-b002-9b568396ba1f","text":"a step that passes the third time","astNodeIds":["809513a7-36b2-4e9d-bd0c-3eaf2de945ca"]}]}} +{"pickle":{"id":"d1d0bbac-4fc3-4daf-9ef6-5c9ad0473488","uri":"features/retry/retry.feature","astNodeIds":["b2c31862-0b4a-4d13-8fcc-d1a08f672371"],"tags":[],"name":"test case fails on every attempt","language":"en","steps":[{"id":"cde7af40-e96c-40a0-a47e-0bb4ca1822aa","text":"a step that always fails","astNodeIds":["7357c0b1-8c11-4706-b10e-5dde0c7ffd9a"]}]}} +{"pickle":{"id":"9ddb4411-e87d-4414-886a-42b37b784c38","uri":"features/retry/retry.feature","astNodeIds":["abf4f6fa-0740-4cf9-a76d-cf3a5b3cb947"],"tags":[],"name":"don't retry on UNDEFINED","language":"en","steps":[{"id":"1de2cfe9-c7b9-4157-85a8-a4af828be198","text":"a non-existent step","astNodeIds":["595b9ed6-c89d-4822-a4c9-abbc2a1407c9"]}]}} +{"stepDefinition":{"id":"97d31652-36c6-4bc7-bce9-909d2883e8c8","pattern":{"type":"CUCUMBER_EXPRESSION","source":"a step that always passes"},"sourceReference":{"uri":"features/retry/retry.feature.ts","location":{"line":3}}}} +{"stepDefinition":{"id":"be6ae498-9048-4fb2-88dc-37195c9d758d","pattern":{"type":"CUCUMBER_EXPRESSION","source":"a step that passes the second time"},"sourceReference":{"uri":"features/retry/retry.feature.ts","location":{"line":8}}}} +{"stepDefinition":{"id":"e6ff6d7e-b342-45e8-a0d3-77ce212e0d84","pattern":{"type":"CUCUMBER_EXPRESSION","source":"a step that passes the third time"},"sourceReference":{"uri":"features/retry/retry.feature.ts","location":{"line":16}}}} +{"stepDefinition":{"id":"b0f64a22-6ccb-4e8a-bac4-9b76464ec32e","pattern":{"type":"CUCUMBER_EXPRESSION","source":"a step that always fails"},"sourceReference":{"uri":"features/retry/retry.feature.ts","location":{"line":23}}}} +{"testRunStarted":{"timestamp":{"seconds":1624628684,"nanos":659000000}}} +{"testCase":{"id":"ac0e8816-3b74-4408-8092-f1331a4d3be0","pickleId":"8be93b22-832d-4d90-83b4-daac69570d58","testSteps":[{"id":"59585c2c-8def-4370-b338-b956954356c4","pickleStepId":"8c1836d1-8829-4cb6-9606-6a6a70f43737","stepDefinitionIds":["97d31652-36c6-4bc7-bce9-909d2883e8c8"],"stepMatchArgumentsLists":[{"stepMatchArguments":[]}]}]}} +{"testCase":{"id":"725c6ecf-7fac-48f7-b5fb-3393721ee77d","pickleId":"4b1a0036-306a-4627-92de-b428d9504677","testSteps":[{"id":"31733270-59b5-4394-be2b-4f35a8744eaa","pickleStepId":"388e929c-f504-4828-8101-3c9f3ec4c0b5","stepDefinitionIds":["be6ae498-9048-4fb2-88dc-37195c9d758d"],"stepMatchArgumentsLists":[{"stepMatchArguments":[]}]}]}} +{"testCase":{"id":"792c3951-3578-4aec-8f1b-8607105774d0","pickleId":"c477119f-6b3a-472b-bccc-352f9ea655e8","testSteps":[{"id":"94fef3da-e36b-48bf-a001-278ee592d8cb","pickleStepId":"b7e567eb-9a33-4cba-b002-9b568396ba1f","stepDefinitionIds":["e6ff6d7e-b342-45e8-a0d3-77ce212e0d84"],"stepMatchArgumentsLists":[{"stepMatchArguments":[]}]}]}} +{"testCase":{"id":"e47c9dee-7b22-4122-8529-1bb43bfd4627","pickleId":"d1d0bbac-4fc3-4daf-9ef6-5c9ad0473488","testSteps":[{"id":"c8d1302e-6fae-4869-94b6-58dda5a523e4","pickleStepId":"cde7af40-e96c-40a0-a47e-0bb4ca1822aa","stepDefinitionIds":["b0f64a22-6ccb-4e8a-bac4-9b76464ec32e"],"stepMatchArgumentsLists":[{"stepMatchArguments":[]}]}]}} +{"testCase":{"id":"27effc7b-ccc3-4ee9-9b74-ffe14345d9e3","pickleId":"9ddb4411-e87d-4414-886a-42b37b784c38","testSteps":[{"id":"654fa50f-8581-4354-8c7f-ea2449f7bf1d","pickleStepId":"1de2cfe9-c7b9-4157-85a8-a4af828be198","stepDefinitionIds":[],"stepMatchArgumentsLists":[]}]}} +{"testCaseStarted":{"attempt":0,"testCaseId":"ac0e8816-3b74-4408-8092-f1331a4d3be0","id":"e37bf06b-c4e7-4598-a1b7-70bd41dca5a2","timestamp":{"seconds":1624628684,"nanos":659000000}}} +{"testStepStarted":{"testCaseStartedId":"e37bf06b-c4e7-4598-a1b7-70bd41dca5a2","testStepId":"59585c2c-8def-4370-b338-b956954356c4","timestamp":{"seconds":1624628684,"nanos":659000000}}} +{"testStepFinished":{"testCaseStartedId":"e37bf06b-c4e7-4598-a1b7-70bd41dca5a2","testStepId":"59585c2c-8def-4370-b338-b956954356c4","testStepResult":{"duration":{"seconds":0,"nanos":217846},"status":"PASSED"},"timestamp":{"seconds":1624628684,"nanos":660000000}}} +{"testCaseFinished":{"testCaseStartedId":"e37bf06b-c4e7-4598-a1b7-70bd41dca5a2","timestamp":{"seconds":1624628684,"nanos":660000000},"willBeRetried":false}} +{"testCaseStarted":{"attempt":0,"testCaseId":"725c6ecf-7fac-48f7-b5fb-3393721ee77d","id":"9bce17b0-a4ad-44a7-b5df-4afb1228961a","timestamp":{"seconds":1624628684,"nanos":660000000}}} +{"testStepStarted":{"testCaseStartedId":"9bce17b0-a4ad-44a7-b5df-4afb1228961a","testStepId":"31733270-59b5-4394-be2b-4f35a8744eaa","timestamp":{"seconds":1624628684,"nanos":660000000}}} +{"testStepFinished":{"testCaseStartedId":"9bce17b0-a4ad-44a7-b5df-4afb1228961a","testStepId":"31733270-59b5-4394-be2b-4f35a8744eaa","testStepResult":{"duration":{"seconds":0,"nanos":45143},"status":"FAILED","message":"Exception in step\n at Object. (features/retry/retry.feature.ts:11:11)\n at Generator.next ()\n at new Promise ()\n at Generator.next ()\n at features/retry/retry.feature:13"},"timestamp":{"seconds":1624628684,"nanos":669000000}}} +{"testCaseFinished":{"testCaseStartedId":"9bce17b0-a4ad-44a7-b5df-4afb1228961a","timestamp":{"seconds":1624628684,"nanos":669000000},"willBeRetried":true}} +{"testCaseStarted":{"attempt":1,"testCaseId":"725c6ecf-7fac-48f7-b5fb-3393721ee77d","id":"2846d080-371f-403e-82c7-d10861395c05","timestamp":{"seconds":1624628684,"nanos":669000000}}} +{"testStepStarted":{"testCaseStartedId":"2846d080-371f-403e-82c7-d10861395c05","testStepId":"31733270-59b5-4394-be2b-4f35a8744eaa","timestamp":{"seconds":1624628684,"nanos":669000000}}} +{"testStepFinished":{"testCaseStartedId":"2846d080-371f-403e-82c7-d10861395c05","testStepId":"31733270-59b5-4394-be2b-4f35a8744eaa","testStepResult":{"duration":{"seconds":0,"nanos":19432},"status":"PASSED"},"timestamp":{"seconds":1624628684,"nanos":669000000}}} +{"testCaseFinished":{"testCaseStartedId":"2846d080-371f-403e-82c7-d10861395c05","timestamp":{"seconds":1624628684,"nanos":670000000},"willBeRetried":false}} +{"testCaseStarted":{"attempt":0,"testCaseId":"792c3951-3578-4aec-8f1b-8607105774d0","id":"4648c6c8-c9af-474b-b6d2-097392094feb","timestamp":{"seconds":1624628684,"nanos":670000000}}} +{"testStepStarted":{"testCaseStartedId":"4648c6c8-c9af-474b-b6d2-097392094feb","testStepId":"94fef3da-e36b-48bf-a001-278ee592d8cb","timestamp":{"seconds":1624628684,"nanos":670000000}}} +{"testStepFinished":{"testCaseStartedId":"4648c6c8-c9af-474b-b6d2-097392094feb","testStepId":"94fef3da-e36b-48bf-a001-278ee592d8cb","testStepResult":{"duration":{"seconds":0,"nanos":62716},"status":"FAILED","message":"Exception in step\n at Object. (features/retry/retry.feature.ts:19:11)\n at Generator.next ()\n at new Promise ()\n at Generator.next ()\n at features/retry/retry.feature:16"},"timestamp":{"seconds":1624628684,"nanos":670000000}}} +{"testCaseFinished":{"testCaseStartedId":"4648c6c8-c9af-474b-b6d2-097392094feb","timestamp":{"seconds":1624628684,"nanos":670000000},"willBeRetried":true}} +{"testCaseStarted":{"attempt":1,"testCaseId":"792c3951-3578-4aec-8f1b-8607105774d0","id":"2bb1d1bc-c3cd-433a-9e36-dce54e4fab77","timestamp":{"seconds":1624628684,"nanos":670000000}}} +{"testStepStarted":{"testCaseStartedId":"2bb1d1bc-c3cd-433a-9e36-dce54e4fab77","testStepId":"94fef3da-e36b-48bf-a001-278ee592d8cb","timestamp":{"seconds":1624628684,"nanos":670000000}}} +{"testStepFinished":{"testCaseStartedId":"2bb1d1bc-c3cd-433a-9e36-dce54e4fab77","testStepId":"94fef3da-e36b-48bf-a001-278ee592d8cb","testStepResult":{"duration":{"seconds":0,"nanos":16051},"status":"FAILED","message":"Exception in step\n at Object. (features/retry/retry.feature.ts:19:11)\n at Generator.next ()\n at new Promise ()\n at Generator.next ()\n at features/retry/retry.feature:16"},"timestamp":{"seconds":1624628684,"nanos":671000000}}} +{"testCaseFinished":{"testCaseStartedId":"2bb1d1bc-c3cd-433a-9e36-dce54e4fab77","timestamp":{"seconds":1624628684,"nanos":671000000},"willBeRetried":true}} +{"testCaseStarted":{"attempt":2,"testCaseId":"792c3951-3578-4aec-8f1b-8607105774d0","id":"861f9138-bb30-493a-8410-5fccbda847cc","timestamp":{"seconds":1624628684,"nanos":671000000}}} +{"testStepStarted":{"testCaseStartedId":"861f9138-bb30-493a-8410-5fccbda847cc","testStepId":"94fef3da-e36b-48bf-a001-278ee592d8cb","timestamp":{"seconds":1624628684,"nanos":671000000}}} +{"testStepFinished":{"testCaseStartedId":"861f9138-bb30-493a-8410-5fccbda847cc","testStepId":"94fef3da-e36b-48bf-a001-278ee592d8cb","testStepResult":{"duration":{"seconds":0,"nanos":12340},"status":"PASSED"},"timestamp":{"seconds":1624628684,"nanos":671000000}}} +{"testCaseFinished":{"testCaseStartedId":"861f9138-bb30-493a-8410-5fccbda847cc","timestamp":{"seconds":1624628684,"nanos":671000000},"willBeRetried":false}} +{"testCaseStarted":{"attempt":0,"testCaseId":"e47c9dee-7b22-4122-8529-1bb43bfd4627","id":"2f36085c-9569-48a2-8214-4a45b72f33fc","timestamp":{"seconds":1624628684,"nanos":671000000}}} +{"testStepStarted":{"testCaseStartedId":"2f36085c-9569-48a2-8214-4a45b72f33fc","testStepId":"c8d1302e-6fae-4869-94b6-58dda5a523e4","timestamp":{"seconds":1624628684,"nanos":671000000}}} +{"testStepFinished":{"testCaseStartedId":"2f36085c-9569-48a2-8214-4a45b72f33fc","testStepId":"c8d1302e-6fae-4869-94b6-58dda5a523e4","testStepResult":{"duration":{"seconds":0,"nanos":47416},"status":"FAILED","message":"Exception in step\n at Object. (features/retry/retry.feature.ts:24:9)\n at Generator.next ()\n at new Promise ()\n at Generator.next ()\n at features/retry/retry.feature:19"},"timestamp":{"seconds":1624628684,"nanos":672000000}}} +{"testCaseFinished":{"testCaseStartedId":"2f36085c-9569-48a2-8214-4a45b72f33fc","timestamp":{"seconds":1624628684,"nanos":672000000},"willBeRetried":true}} +{"testCaseStarted":{"attempt":1,"testCaseId":"e47c9dee-7b22-4122-8529-1bb43bfd4627","id":"805948e2-37fa-4e4c-8b37-db198a9c12b3","timestamp":{"seconds":1624628684,"nanos":672000000}}} +{"testStepStarted":{"testCaseStartedId":"805948e2-37fa-4e4c-8b37-db198a9c12b3","testStepId":"c8d1302e-6fae-4869-94b6-58dda5a523e4","timestamp":{"seconds":1624628684,"nanos":672000000}}} +{"testStepFinished":{"testCaseStartedId":"805948e2-37fa-4e4c-8b37-db198a9c12b3","testStepId":"c8d1302e-6fae-4869-94b6-58dda5a523e4","testStepResult":{"duration":{"seconds":0,"nanos":36505},"status":"FAILED","message":"Exception in step\n at Object. (features/retry/retry.feature.ts:24:9)\n at Generator.next ()\n at new Promise ()\n at Generator.next ()\n at features/retry/retry.feature:19"},"timestamp":{"seconds":1624628684,"nanos":673000000}}} +{"testCaseFinished":{"testCaseStartedId":"805948e2-37fa-4e4c-8b37-db198a9c12b3","timestamp":{"seconds":1624628684,"nanos":673000000},"willBeRetried":true}} +{"testCaseStarted":{"attempt":2,"testCaseId":"e47c9dee-7b22-4122-8529-1bb43bfd4627","id":"3708f78a-ce99-43d7-82c7-e344a25de223","timestamp":{"seconds":1624628684,"nanos":673000000}}} +{"testStepStarted":{"testCaseStartedId":"3708f78a-ce99-43d7-82c7-e344a25de223","testStepId":"c8d1302e-6fae-4869-94b6-58dda5a523e4","timestamp":{"seconds":1624628684,"nanos":673000000}}} +{"testStepFinished":{"testCaseStartedId":"3708f78a-ce99-43d7-82c7-e344a25de223","testStepId":"c8d1302e-6fae-4869-94b6-58dda5a523e4","testStepResult":{"duration":{"seconds":0,"nanos":19217},"status":"FAILED","message":"Exception in step\n at Object. (features/retry/retry.feature.ts:24:9)\n at Generator.next ()\n at new Promise ()\n at Generator.next ()\n at features/retry/retry.feature:19"},"timestamp":{"seconds":1624628684,"nanos":674000000}}} +{"testCaseFinished":{"testCaseStartedId":"3708f78a-ce99-43d7-82c7-e344a25de223","timestamp":{"seconds":1624628684,"nanos":674000000},"willBeRetried":false}} +{"testCaseStarted":{"attempt":0,"testCaseId":"27effc7b-ccc3-4ee9-9b74-ffe14345d9e3","id":"d6fac813-febf-4c7f-8626-4d834fb663dc","timestamp":{"seconds":1624628684,"nanos":674000000}}} +{"testStepStarted":{"testCaseStartedId":"d6fac813-febf-4c7f-8626-4d834fb663dc","testStepId":"654fa50f-8581-4354-8c7f-ea2449f7bf1d","timestamp":{"seconds":1624628684,"nanos":674000000}}} +{"testStepFinished":{"testCaseStartedId":"d6fac813-febf-4c7f-8626-4d834fb663dc","testStepId":"654fa50f-8581-4354-8c7f-ea2449f7bf1d","testStepResult":{"duration":{"seconds":0,"nanos":0},"status":"UNDEFINED"},"timestamp":{"seconds":1624628684,"nanos":674000000}}} +{"testCaseFinished":{"testCaseStartedId":"d6fac813-febf-4c7f-8626-4d834fb663dc","timestamp":{"seconds":1624628684,"nanos":674000000},"willBeRetried":false}} +{"testRunFinished":{"timestamp":{"seconds":1624628684,"nanos":674000000},"success":false}} diff --git a/compatibility-kit/javascript/features/retry/retry.feature.ts b/compatibility-kit/javascript/features/retry/retry.feature.ts index 0d107f9fe5..077e37cdc5 100644 --- a/compatibility-kit/javascript/features/retry/retry.feature.ts +++ b/compatibility-kit/javascript/features/retry/retry.feature.ts @@ -23,7 +23,3 @@ Given('a step that passes the third time', function () { Given('a step that always fails', function () { throw new Error('Exception in step') }) - -Given('a pending step', function () { - return 'pending' -}) From 2e1ecbd091d05aedd12975e1197c0b07d48497d5 Mon Sep 17 00:00:00 2001 From: David Goss Date: Fri, 25 Jun 2021 15:43:45 +0100 Subject: [PATCH 36/38] add ruby support code for retry cck feature --- .../ruby/features/retry/retry.feature.rb | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 compatibility-kit/ruby/features/retry/retry.feature.rb diff --git a/compatibility-kit/ruby/features/retry/retry.feature.rb b/compatibility-kit/ruby/features/retry/retry.feature.rb new file mode 100644 index 0000000000..e43b176e01 --- /dev/null +++ b/compatibility-kit/ruby/features/retry/retry.feature.rb @@ -0,0 +1,23 @@ +Given('a step that always passes') do + # no-op +end + +second_time_pass = 0 +Given('a step that passes the second time') do + second_time_pass += 1 + if second_time_pass < 2 + raise StandardError, 'Exception in step' + end +end + +third_time_pass = 0 +Given('a step that passes the third time') do + third_time_pass += 1 + if third_time_pass < 3 + raise StandardError, 'Exception in step' + end +end + +Given('a step that always fails') do + raise StandardError, 'Exception in step' +end From 9fe56887d8189cd23dded8651a6c8527224cb5b8 Mon Sep 17 00:00:00 2001 From: David Goss Date: Fri, 25 Jun 2021 17:21:14 +0100 Subject: [PATCH 37/38] unhack retry feature for json-formatter tests --- json-formatter/javascript-testdata/Makefile | 4 ---- json-formatter/ruby-testdata/Makefile | 4 ---- 2 files changed, 8 deletions(-) diff --git a/json-formatter/javascript-testdata/Makefile b/json-formatter/javascript-testdata/Makefile index f468ce51fb..53f8bdaf16 100644 --- a/json-formatter/javascript-testdata/Makefile +++ b/json-formatter/javascript-testdata/Makefile @@ -13,10 +13,6 @@ features/rules/rules.feature.ndjson: mkdir -p $(@D) echo "" > $@ -features/retry/retry.feature.ndjson: - mkdir -p $(@D) - echo "" > $@ - features/unknown-parameter-type/unknown-parameter-type.feature.ndjson: mkdir -p $(@D) echo "" > $@ diff --git a/json-formatter/ruby-testdata/Makefile b/json-formatter/ruby-testdata/Makefile index 4ed81b72f4..9f1520640a 100644 --- a/json-formatter/ruby-testdata/Makefile +++ b/json-formatter/ruby-testdata/Makefile @@ -17,10 +17,6 @@ features/%.json: features/%-unprocessed.json features/rules/rules.feature.json: mkdir -p $(@D) echo "[]" > $@ - -features/retry/retry.feature.json: - mkdir -p $(@D) - echo "[]" > $@ features/unknown-parameter-type/unknown-parameter-type.feature.json: mkdir -p $(@D) From 852dd380405234a49c0c78a7d0f0f95e3ce8893d Mon Sep 17 00:00:00 2001 From: David Goss Date: Tue, 29 Jun 2021 09:05:30 +0100 Subject: [PATCH 38/38] indicate change is breaking --- messages/CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/messages/CHANGELOG.md b/messages/CHANGELOG.md index a740d5d97d..22e6b0fc82 100644 --- a/messages/CHANGELOG.md +++ b/messages/CHANGELOG.md @@ -18,7 +18,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/). ### Changed -* Move `willBeRetried` field from `TestStepResult` to `TestCaseFinished` ([#902](https://github.com/cucumber/common/issues/902) [#1631](https://github.com/cucumber/common/pull/1631)) +* **BREAKING** Move `willBeRetried` field from `TestStepResult` to `TestCaseFinished` ([#902](https://github.com/cucumber/common/issues/902) [#1631](https://github.com/cucumber/common/pull/1631)) * [Go] Move module paths to point to monorepo ([#1550](https://github.com/cucumber/common/issues/1550))