fix: catch run error code for runner

This commit is contained in:
lilong.129
2023-06-05 20:53:38 +08:00
parent f6594c1609
commit f6eb9451e0
2 changed files with 25 additions and 11 deletions

View File

@@ -162,7 +162,8 @@ func (wd *wdaDriver) Screen() (screen Screen, err error) {
}
func (wd *wdaDriver) GetTimestamp() (timestamp int64, err error) {
return 0, errDriverNotImplemented
return 0, errors.Wrap(errDriverNotImplemented,
"GetTimestamp not implemented for ios")
}
func (wd *wdaDriver) Scale() (float64, error) {
@@ -378,7 +379,19 @@ func (wd *wdaDriver) AssertAppForeground(packageName string) error {
}
func (wd *wdaDriver) GetForegroundApp() (app AppInfo, err error) {
return AppInfo{}, nil
// appInfo, err := wd.ActiveAppInfo()
// if err != nil {
// return AppInfo{}, err
// }
// app = AppInfo{
// AppBaseInfo: AppBaseInfo{
// PackageName: appInfo.BundleId,
// Activity: "",
// },
// }
return AppInfo{}, errors.Wrap(errDriverNotImplemented,
"GetForegroundApp not implemented for ios")
}
func (wd *wdaDriver) Tap(x, y int, options ...ActionOption) error {

View File

@@ -226,6 +226,7 @@ func (r *HRPRunner) Run(testcases ...ITestCase) (err error) {
})
}()
var runErr error
// run testcase one by one
for _, testcase := range testCases {
// each testcase has its own case runner
@@ -249,20 +250,20 @@ func (r *HRPRunner) Run(testcases ...ITestCase) (err error) {
err1 := sessionRunner.Start(it.Next())
if err1 != nil {
log.Error().Err(err1).Msg("[Run] run testcase failed")
err = 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 {
err = errors.Wrap(err1, err2.Error())
runErr = errors.Wrap(err1, err2.Error())
} else {
err = err2
runErr = err2
}
}
if err != nil && r.failfast {
if runErr != nil && r.failfast {
break
}
}
@@ -271,19 +272,19 @@ func (r *HRPRunner) Run(testcases ...ITestCase) (err error) {
// save summary
if r.saveTests {
if e := s.genSummary(); e != nil {
return e
if err := s.genSummary(); err != nil {
return err
}
}
// generate HTML report
if r.genHTMLReport {
if e := s.genHTMLReport(); e != nil {
return e
if err := s.genHTMLReport(); err != nil {
return err
}
}
return err
return runErr
}
// NewCaseRunner creates a new case runner for testcase.