cypress-cucumber-预处理器数据表

ant*_*l92 2 javascript cucumber e2e-testing cypress

我看到了一些与我类似的帖子,但我发现它根本没有帮助,因为他们都没有使用 cypress 预处理器。

我有一个场景:

Scenario: Some scenario
   Given ...
   When ...
   Then I should see "<task_field>" field as "<field_value>"
   Examples:
      | task_field        | field_value |
      | some_field1       | some_value1 |
      | some_field2       | some_value2 |
      | some_field3       | some_value3 |
Run Code Online (Sandbox Code Playgroud)

.js 文件具有:

Then('I should see {string} field as {string}',  (field, value ) => {
  switch (field) {
    case 'some_field1':
      cy.get('.someClass1').contains(value)
      break
    case 'some_field2':
      cy.get('.someClass2').contains(value)
      break
    case 'some_field3':
      cy.get('.someClass3').contains(value)
      break
    default:
      throw new Error(`Invalid field: ${field}`)
  }
})
Run Code Online (Sandbox Code Playgroud)

我的目标是检查每个 some_field 是否等于 some_value,但目前 cypress 会抛出一个错误,它甚至没有给我执行测试的选项:

任何帮助将不胜感激干杯!

ant*_*l92 7

经过 2 小时的调试后,我发现我忘记Outline在场景定义中包含 world ,以便测试能够迭代数据表。因此,为了将来参考,修复来自:

 Scenario: Some scenario
   Given ...
   When ...
   Then I should see "<task_field>" field as "<field_value>"
   Examples:
      | task_field        | field_value |
      | some_field1       | some_value1 |
      | some_field2       | some_value2 |
      | some_field3       | some_value3 | 
Run Code Online (Sandbox Code Playgroud)

是包含在第一行Outline

Scenario Outline: Some scenario
   Given ...
   When ...
   Then I should see "<task_field>" field as "<field_value>"
   Examples:
      | task_field        | field_value |
      | some_field1       | some_value1 |
      | some_field2       | some_value2 |
      | some_field3       | some_value3 |
Run Code Online (Sandbox Code Playgroud)

我想这对我来说是漫长的一天。希望这对遇到类似问题的人有所帮助!