From bf865530287e23ad923251e71b24e7c4a9930834 Mon Sep 17 00:00:00 2001 From: xucong053 Date: Sat, 8 Oct 2022 16:31:10 +0800 Subject: [PATCH] fix: failed to parse in testcase --- hrp/runner.go | 14 ++++++++++++++ hrp/step_android_ui.go | 9 +++++++++ hrp/step_ios_ui.go | 9 +++++++++ 3 files changed, 32 insertions(+) diff --git a/hrp/runner.go b/hrp/runner.go index 4a672b60..13dced72 100644 --- a/hrp/runner.go +++ b/hrp/runner.go @@ -390,12 +390,26 @@ func (r *testCaseRunner) parseConfig() error { // init iOS/Android clients for _, iosDeviceConfig := range r.parsedConfig.IOS { + if iosDeviceConfig.UDID != "" { + udid, err := r.parser.ParseString(iosDeviceConfig.UDID, parsedVariables) + if err != nil { + return errors.Wrap(err, "failed to parse ios device udid") + } + iosDeviceConfig.UDID = udid.(string) + } _, err := r.hrpRunner.initUIClient(iosDeviceConfig) if err != nil { return errors.Wrap(err, "init iOS WDA client failed") } } for _, androidDeviceConfig := range r.parsedConfig.Android { + if androidDeviceConfig.SerialNumber != "" { + sn, err := r.parser.ParseString(androidDeviceConfig.SerialNumber, parsedVariables) + if err != nil { + return errors.Wrap(err, "failed to parse android device serial") + } + androidDeviceConfig.SerialNumber = sn.(string) + } _, err := r.hrpRunner.initUIClient(androidDeviceConfig) if err != nil { return errors.Wrap(err, "init Android UIAutomator client failed") diff --git a/hrp/step_android_ui.go b/hrp/step_android_ui.go index 80f5122a..8fffc533 100644 --- a/hrp/step_android_ui.go +++ b/hrp/step_android_ui.go @@ -503,6 +503,15 @@ func runStepAndroid(s *SessionRunner, step *TStep) (stepResult *StepResult, err } parser := s.GetParser() + // parse device serial + if step.Android.AndroidDevice.SerialNumber != "" { + sn, err := parser.ParseString(step.Android.AndroidDevice.SerialNumber, stepVariables) + if err != nil { + return stepResult, err + } + step.Android.AndroidDevice.SerialNumber = sn.(string) + } + // init uiaClient driver uiaClient, err := s.hrpRunner.initUIClient(&step.Android.AndroidDevice) if err != nil { diff --git a/hrp/step_ios_ui.go b/hrp/step_ios_ui.go index d482c0e1..fe56185a 100644 --- a/hrp/step_ios_ui.go +++ b/hrp/step_ios_ui.go @@ -524,6 +524,15 @@ func runStepIOS(s *SessionRunner, step *TStep) (stepResult *StepResult, err erro } parser := s.GetParser() + // parse device udid + if step.IOS.IOSDevice.UDID != "" { + udid, err := parser.ParseString(step.IOS.IOSDevice.UDID, stepVariables) + if err != nil { + return stepResult, err + } + step.IOS.IOSDevice.UDID = udid.(string) + } + // init wdaClient driver wdaClient, err := s.hrpRunner.initUIClient(&step.IOS.IOSDevice) if err != nil {