使用表的小黄瓜测试失败,并显示错误“无法读取未定义的属性'bold'”

时间:2019-05-10 21:28:59

标签: datatable gherkin codeceptjs

在Gherkin 5.1.0法语测试中使用codeceptJs 2.1.1,我正在尝试使用Datable提供字段名称来检查所有字段是否以某种形式存在。

这是小黄瓜测试:

# get access token
  require 'googleauth'
  require 'google/apis/calendar_v3'
  calendar = Google::Apis::CalendarV3::CalendarService.new

  scope = 'https://www.googleapis.com/auth/calendar'
  authorizer = Google::Auth::ServiceAccountCredentials.make_creds(
    json_key_io: File.open(ENV['GOOGLE_APPLICATION_CREDENTIALS']),
    scope: scope)

  calendar.authorization = authorizer
  calendar.authorization.fetch_access_token!

  calendar.stop_channel(Google::Apis::CalendarV3::Channel.new(
    id: "my-channel-id",
    resource_id: "whatever"
  ))

这是相应的步骤:

@tabletest
Scénario: Les champs
Alors je vois les champs :
| coteComplete   |
| typeOptionCote |

这是堆栈跟踪:

Then('je vois les champs( de saisie) :', (name) => {
  I.say('name', name);
  I.seeElement(`input[name=${name}], select[name=${name}], textearea[name=${name}]`);
});

1 个答案:

答案 0 :(得分:0)

使用节点检查器,我可以在跟踪中进一步看到。 将参数--node-arg=--inspect-brk添加到您的命令中

npx --node-arg=--inspect-brk codeceptjs run --grep "tabletest" --debug 

然后通过单击节点图标从chrome devtool中打开nodejsinspector:

enter image description here

对于 “未定义粗体” ,错误

I.say("InputName:" + name);

关于接收到的变量,我可以看到测试实际上接收到一个包含值数组而不是实际值的对象。可以通过以下方式访问实际值:

let name = dataTest.rows[0].cells[0].value

所以您必须在收到的数组中手动​​循环以获取每个值并对其进行测试

Then('je vois les champs( de saisie)( :)', (dataTest) => {
  let name;
  dataTest.rows.forEach(element => {
    name = element.cells[0].value;
    I.seeElement(`input[name=${name}], select[name=${name}], textearea[name=${name}]`);
  });
  debugger;
});