MCPcopy
hub / github.com/codeceptjs/CodeceptJS / runSteps

Function runSteps

lib/mocha/gherkin.js:55–108  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

53 suite.afterAll('codeceptjs.afterSuite', suiteTeardown(suite))
54
55 const runSteps = async steps => {
56 for (const step of steps) {
57 const metaStep = new MetaStep(null, step.text)
58 metaStep.actor = step.keyword.trim()
59 let helperStep
60 const setMetaStep = step => {
61 helperStep = step
62 if (step.metaStep) {
63 if (step.metaStep === metaStep) {
64 return
65 }
66 setMetaStep(step.metaStep)
67 return
68 }
69 step.metaStep = metaStep
70 }
71 const fn = matchStep(step.text)
72
73 if (step.dataTable) {
74 fn.params.push({
75 ...step.dataTable,
76 parse: () => new DataTableArgument(step.dataTable),
77 })
78 metaStep.comment = `\n${transformTable(step.dataTable)}`
79 }
80
81 if (step.docString) {
82 fn.params.push(step.docString)
83 metaStep.comment = `\n"""\n${step.docString.content}\n"""`
84 }
85
86 step.startTime = Date.now()
87 step.match = fn.line
88 event.emit(event.bddStep.before, step)
89 event.emit(event.bddStep.started, metaStep)
90 event.dispatcher.prependListener(event.step.before, setMetaStep)
91 try {
92 debug(`Step '${step.text}' started...`)
93 await fn(...fn.params)
94 debug('Step passed')
95 step.status = 'passed'
96 } catch (err) {
97 debug(`Step failed: ${err?.message}`)
98 step.status = 'failed'
99 step.err = err
100 throw err
101 } finally {
102 step.endTime = Date.now()
103 event.dispatcher.removeListener(event.step.before, setMetaStep)
104 }
105 event.emit(event.bddStep.finished, metaStep)
106 event.emit(event.bddStep.after, step)
107 }
108 }
109
110 for (const child of ast.feature.children) {
111 if (child.background) {

Callers 1

gherkinParserFunction · 0.85

Calls 5

matchStepFunction · 0.90
transformTableFunction · 0.85
debugFunction · 0.85
pushMethod · 0.80
fnFunction · 0.50

Tested by

no test coverage detected