我正在实施智能家居操作,并且在 Test Suite 上运行测试时,在亮度特征测试期间收到以下错误消息:
Starting test...
Utterance (1/1): Ok Google. Set the Dimmer brightness to 75 percent . . . . . . . . . . . . . . . . . . . . FAIL
AssertionError: Expected state to include: {"brightness":{"xRange":[55,95]}}, actual state: {"on":true}: expected false to be true
所有onoff
请求都可以正常工作,并且测试套件也不会抱怨,只需说“ PASS”即可。
但是BrightnessAbsolute
请求已由我的后端应用程序成功接收并处理(并且甚至可以看到 Test Suite 运行时灯光已更改),返回JSON响应回到文档中描述的格式。
请求:
{
"inputs":{
"0":{
"context":{
"locale_country":"CA",
"locale_language":"en"
},
"intent":"action.devices.EXECUTE",
"payload":{
"commands":{
"0":{
"devices":{
"0":{
"id":"xxxxxxxx"
}
},
"execution":{
"0":{
"command":"action.devices.commands.BrightnessAbsolute",
"params":{
"brightness":75
}
}
}
}
}
}
}
},
"requestId":"12608597522424949295"
}
响应:
{
"requestId":"12608597522424949295",
"payload":{
"commands":{
"0":{
"ids":{
"0":"xxxxxxxx"
},
"status":"SUCCESS",
"states":{
"on":true,
"brightness":75,
"online":true
}
}
}
}
}
有人对如何通过 Test Suite 通过此测试有任何想法吗?谢谢。
答案 0 :(得分:0)
测试套件根据Home Graph中报告的状态针对每个被测设备验证命令。请务必注意,EXECUTE
响应仅用于向用户提供直接结果(即通过Home应用中的Assistant或UI发出的语音),并且这些响应不会更新Home Graph状态< / strong>。当前,只有Report State API会更新给定设备的Home Graph。
由于需要报告状态来更新Home Graph,因此最好在SYNC
之后调用API,以向Home Graph提供设备的初始状态。如果您仅在更改时调用报告状态(即,当命令设备处于其已进入的状态时,则不这样),这一点尤其重要。这可能是您正在经历的事情,因为测试套件报告说Home Graph中没有亮度值。
如果您不遵循此模式,则在每个EXECUTE
之后调用Report State还将确保Home Graph是最新的,但是这将需要您进行更多的API调用。