From be8d8b5c5d16f2af43cc6fa4509fdb0efdaa0621 Mon Sep 17 00:00:00 2001 From: debugtalk Date: Sun, 23 Oct 2022 16:41:23 +0800 Subject: [PATCH] fix: logs --- hrp/internal/code/code.go | 4 ++-- hrp/pkg/uixt/android_device.go | 14 +++++++++----- hrp/pkg/uixt/android_driver.go | 4 ++-- hrp/plugin.go | 2 +- hrp/runner.go | 17 ++++++++++++++--- hrp/step_testcase.go | 2 +- 6 files changed, 29 insertions(+), 14 deletions(-) diff --git a/hrp/internal/code/code.go b/hrp/internal/code/code.go index 48557401..fb774376 100644 --- a/hrp/internal/code/code.go +++ b/hrp/internal/code/code.go @@ -60,7 +60,7 @@ var ( // android device related: [60, 70) var ( AndroidDeviceConnectionError = errors.New("android device connection error") // 60 - AndroidDeviceDriverError = errors.New("android device driver error") // 61 + AndroidDeviceUSBDriverError = errors.New("android device USB driver error") // 61 AndroidScreenShotError = errors.New("android screenshot error") // 65 AndroidCaptureLogError = errors.New("android capture log error") // 66 ) @@ -118,7 +118,7 @@ var errorsMap = map[error]int{ // android related AndroidDeviceConnectionError: 60, - AndroidDeviceDriverError: 61, + AndroidDeviceUSBDriverError: 61, AndroidScreenShotError: 65, AndroidCaptureLogError: 66, diff --git a/hrp/pkg/uixt/android_device.go b/hrp/pkg/uixt/android_device.go index 492bf765..067b2086 100644 --- a/hrp/pkg/uixt/android_device.go +++ b/hrp/pkg/uixt/android_device.go @@ -132,7 +132,8 @@ func (dev *AndroidDevice) NewDriver(capabilities Capabilities) (driverExt *Drive driverExt, err = Extend(driver) if err != nil { - return nil, errors.Wrap(err, "failed to extend UIA Driver") + return nil, errors.Wrap(code.MobileUIDriverError, + fmt.Sprintf("init UIA driver failed: %v", err)) } if dev.LogOn { @@ -143,7 +144,7 @@ func (dev *AndroidDevice) NewDriver(capabilities Capabilities) (driverExt *Drive } driverExt.UUID = dev.UUID() - return driverExt, err + return driverExt, nil } // NewUSBDriver creates new client via USB connected device, this will also start a new session. @@ -151,17 +152,20 @@ func (dev *AndroidDevice) NewDriver(capabilities Capabilities) (driverExt *Drive func (dev *AndroidDevice) NewUSBDriver(capabilities Capabilities) (driver *uiaDriver, err error) { var localPort int if localPort, err = getFreePort(); err != nil { - return nil, err + return nil, errors.Wrap(code.AndroidDeviceUSBDriverError, + fmt.Sprintf("get free port failed: %v", err)) } if err = dev.d.Forward(localPort, UIA2ServerPort); err != nil { - return nil, err + return nil, errors.Wrap(code.AndroidDeviceUSBDriverError, + fmt.Sprintf("forward port %d->%d failed: %v", + localPort, UIA2ServerPort, err)) } rawURL := fmt.Sprintf("http://%s%d:6790/wd/hub", forwardToPrefix, localPort) driver, err = NewUIADriver(capabilities, rawURL) if err != nil { _ = dev.d.ForwardKill(localPort) - return nil, err + return nil, errors.Wrap(code.AndroidDeviceUSBDriverError, err.Error()) } driver.adbDevice = dev.d driver.logcat = dev.logcat diff --git a/hrp/pkg/uixt/android_driver.go b/hrp/pkg/uixt/android_driver.go index 904b550f..0d11e996 100644 --- a/hrp/pkg/uixt/android_driver.go +++ b/hrp/pkg/uixt/android_driver.go @@ -964,7 +964,7 @@ func (ud *uiaDriver) StartCaptureLog(identifier ...string) (err error) { log.Info().Msg("start adb log recording") err = ud.logcat.CatchLogcat() if err != nil { - err = errors.Wrap(code.IOSCaptureLogError, + err = errors.Wrap(code.AndroidCaptureLogError, fmt.Sprintf("start adb log recording failed: %v", err)) return err } @@ -976,7 +976,7 @@ func (ud *uiaDriver) StopCaptureLog() (result interface{}, err error) { err = ud.logcat.Stop() if err != nil { log.Error().Err(err).Msg("failed to get adb log recording") - err = errors.Wrap(code.IOSCaptureLogError, + err = errors.Wrap(code.AndroidCaptureLogError, fmt.Sprintf("get adb log recording failed: %v", err)) return "", err } diff --git a/hrp/plugin.go b/hrp/plugin.go index 8e8fc875..8adc2480 100644 --- a/hrp/plugin.go +++ b/hrp/plugin.go @@ -37,7 +37,7 @@ func initPlugin(path, venv string, logOn bool) (plugin funplugin.IPlugin, err er } pluginPath, err := locatePlugin(path) if err != nil { - log.Warn().Err(err).Str("path", path).Msg("locate plugin failed") + log.Warn().Str("path", path).Msg("locate plugin failed") return nil, nil } diff --git a/hrp/runner.go b/hrp/runner.go index 63e5b407..26aa4de4 100644 --- a/hrp/runner.go +++ b/hrp/runner.go @@ -226,11 +226,22 @@ func (r *HRPRunner) Run(testcases ...ITestCase) error { // each run has its own session runner sessionRunner := caseRunner.NewSession() err1 := sessionRunner.Start(it.Next()) - caseSummary, err2 := sessionRunner.GetSummary() - s.appendCaseSummary(caseSummary) - if err1 != nil || err2 != nil { + if err1 != nil { log.Error().Err(err1).Msg("[Run] run testcase failed") runErr = err1 + } + caseSummary, err2 := sessionRunner.GetSummary() + s.appendCaseSummary(caseSummary) + if err2 != nil { + log.Error().Err(err2).Msg("[Run] get summary failed") + if err1 != nil { + runErr = errors.Wrap(err1, err2.Error()) + } else { + runErr = err2 + } + } + + if runErr != nil && r.failfast { break } } diff --git a/hrp/step_testcase.go b/hrp/step_testcase.go index 1464735e..6cfdeeaa 100644 --- a/hrp/step_testcase.go +++ b/hrp/step_testcase.go @@ -97,7 +97,7 @@ func (s *StepTestCaseWithOptionalArgs) Run(r *SessionRunner) (stepResult *StepRe summary, err2 := sessionRunner.GetSummary() if err2 != nil { - log.Error().Err(err).Msg("get summary failed") + log.Error().Err(err2).Msg("get summary failed") if err != nil { err = errors.Wrap(err, err2.Error()) } else {