fix: logs

This commit is contained in:
debugtalk
2022-10-23 16:41:23 +08:00
parent 3848c486be
commit be8d8b5c5d
6 changed files with 29 additions and 14 deletions

View File

@@ -60,7 +60,7 @@ var (
// android device related: [60, 70) // android device related: [60, 70)
var ( var (
AndroidDeviceConnectionError = errors.New("android device connection error") // 60 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 AndroidScreenShotError = errors.New("android screenshot error") // 65
AndroidCaptureLogError = errors.New("android capture log error") // 66 AndroidCaptureLogError = errors.New("android capture log error") // 66
) )
@@ -118,7 +118,7 @@ var errorsMap = map[error]int{
// android related // android related
AndroidDeviceConnectionError: 60, AndroidDeviceConnectionError: 60,
AndroidDeviceDriverError: 61, AndroidDeviceUSBDriverError: 61,
AndroidScreenShotError: 65, AndroidScreenShotError: 65,
AndroidCaptureLogError: 66, AndroidCaptureLogError: 66,

View File

@@ -132,7 +132,8 @@ func (dev *AndroidDevice) NewDriver(capabilities Capabilities) (driverExt *Drive
driverExt, err = Extend(driver) driverExt, err = Extend(driver)
if err != nil { 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 { if dev.LogOn {
@@ -143,7 +144,7 @@ func (dev *AndroidDevice) NewDriver(capabilities Capabilities) (driverExt *Drive
} }
driverExt.UUID = dev.UUID() 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. // 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) { func (dev *AndroidDevice) NewUSBDriver(capabilities Capabilities) (driver *uiaDriver, err error) {
var localPort int var localPort int
if localPort, err = getFreePort(); err != nil { 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 { 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) rawURL := fmt.Sprintf("http://%s%d:6790/wd/hub", forwardToPrefix, localPort)
driver, err = NewUIADriver(capabilities, rawURL) driver, err = NewUIADriver(capabilities, rawURL)
if err != nil { if err != nil {
_ = dev.d.ForwardKill(localPort) _ = dev.d.ForwardKill(localPort)
return nil, err return nil, errors.Wrap(code.AndroidDeviceUSBDriverError, err.Error())
} }
driver.adbDevice = dev.d driver.adbDevice = dev.d
driver.logcat = dev.logcat driver.logcat = dev.logcat

View File

@@ -964,7 +964,7 @@ func (ud *uiaDriver) StartCaptureLog(identifier ...string) (err error) {
log.Info().Msg("start adb log recording") log.Info().Msg("start adb log recording")
err = ud.logcat.CatchLogcat() err = ud.logcat.CatchLogcat()
if err != nil { if err != nil {
err = errors.Wrap(code.IOSCaptureLogError, err = errors.Wrap(code.AndroidCaptureLogError,
fmt.Sprintf("start adb log recording failed: %v", err)) fmt.Sprintf("start adb log recording failed: %v", err))
return err return err
} }
@@ -976,7 +976,7 @@ func (ud *uiaDriver) StopCaptureLog() (result interface{}, err error) {
err = ud.logcat.Stop() err = ud.logcat.Stop()
if err != nil { if err != nil {
log.Error().Err(err).Msg("failed to get adb log recording") 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)) fmt.Sprintf("get adb log recording failed: %v", err))
return "", err return "", err
} }

View File

@@ -37,7 +37,7 @@ func initPlugin(path, venv string, logOn bool) (plugin funplugin.IPlugin, err er
} }
pluginPath, err := locatePlugin(path) pluginPath, err := locatePlugin(path)
if err != nil { 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 return nil, nil
} }

View File

@@ -226,11 +226,22 @@ func (r *HRPRunner) Run(testcases ...ITestCase) error {
// each run has its own session runner // each run has its own session runner
sessionRunner := caseRunner.NewSession() sessionRunner := caseRunner.NewSession()
err1 := sessionRunner.Start(it.Next()) err1 := sessionRunner.Start(it.Next())
caseSummary, err2 := sessionRunner.GetSummary() if err1 != nil {
s.appendCaseSummary(caseSummary)
if err1 != nil || err2 != nil {
log.Error().Err(err1).Msg("[Run] run testcase failed") log.Error().Err(err1).Msg("[Run] run testcase failed")
runErr = err1 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 break
} }
} }

View File

@@ -97,7 +97,7 @@ func (s *StepTestCaseWithOptionalArgs) Run(r *SessionRunner) (stepResult *StepRe
summary, err2 := sessionRunner.GetSummary() summary, err2 := sessionRunner.GetSummary()
if err2 != nil { if err2 != nil {
log.Error().Err(err).Msg("get summary failed") log.Error().Err(err2).Msg("get summary failed")
if err != nil { if err != nil {
err = errors.Wrap(err, err2.Error()) err = errors.Wrap(err, err2.Error())
} else { } else {