Test Suite для действий в Google Smart Home Ошибка - PullRequest
0 голосов
/ 30 сентября 2019

Я реализую действие «Умный дом», и во время выполнения тестов на 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 запросы работают нормально, и Test Suite не жалуется, просто скажите «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 ? Спасибо.

1 Ответ

0 голосов
/ 01 октября 2019

Набор тестов проверяет команды на основе состояния, указанного в Домашний график для каждого тестируемого устройства. Важно отметить, что ответ EXECUTE используется только для предоставления прямого результата пользователю (т. Е. Голос через Assistant или UI в приложении Home), и этот ответ не обновляет состояние Home Graph ,В настоящее время только API-интерфейс Report State обновляет Home Graph для данного устройства.

Поскольку для обновления Home Graph требуется состояние Report, целесообразно вызвать API после SYNC, чтобы предоставить HomeГрафик с начальным состоянием устройства. Это особенно важно, если вы вызываете Report State только при изменениях (т. Е. Не когда устройство получает команду в состояние, в котором оно уже находится). Это может быть то, что вы испытываете, так как набор тестов сообщает, что в Home Graph нет значения яркости.

Если вы не будете следовать этому шаблону, то вызов состояния отчета после каждого EXECUTE также обеспечитHome Graph обновлен, но для этого потребуется больше вызовов API.

...