在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}]`);
});
答案 0 :(得分:0)
使用节点检查器,我可以在跟踪中进一步看到。
将参数--node-arg=--inspect-brk
添加到您的命令中
npx --node-arg=--inspect-brk codeceptjs run --grep "tabletest" --debug
然后通过单击节点图标从chrome devtool中打开nodejsinspector:
对于 “未定义粗体” ,错误
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;
});