diff --git a/zh-cn/application-dev/application-test/arkxtest-guidelines.md b/zh-cn/application-dev/application-test/arkxtest-guidelines.md index 410547a5d0ef493f9cee83b670b7a391023fb6e2..3920c6f859534f86cac8e63c98ffce6eb27b83ca 100644 --- a/zh-cn/application-dev/application-test/arkxtest-guidelines.md +++ b/zh-cn/application-dev/application-test/arkxtest-guidelines.md @@ -169,3 +169,105 @@ export default function abilityTest() { 测试执行完毕后可直接在DevEco Studio中查看测试结果,如下图示例所示: ![](figures/TestResult.PNG) + +## 常见问题 + +### 单元测试用例常见问题 + +**1、用例中增加的打印日志在用例结果之后才打印** + +**问题描述** + +用例中增加的日志打印信息,没有在用例执行过程中出现,而是在用例执行结束之后才出现。 + + **可能原因** + +此类情况只会存在于用例中有调用异步接口的情况,原则上用例中所有的日志信息均在用例执行结束之前打印。 + + **解决方法** + +当被调用的异步接口多于一个时,建议将接口调用封装成Promise方式调用。 + +**2、执行用例时报error:fail to start ability** + +**问题描述** + +执行测试用例时候,用例执行失败,控制台返回错误:fail to start ability。 + +**可能原因** + +测试包打包过程中出现问题,未将测试框架依赖文件打包在测试包中。 + +**解决方法** + +检查测试包中是否包含OpenHarmonyTestRunner.abc文件,如没有则重新编译打包后再次执行测试。 + +**3、执行用例时报用例超时错误** + +**问题描述** + +用例执行结束,控制台提示execute time XXms错误,即用例执行超时 + +**可能原因** + +1.用例执行异步接口,但执行过程中没有执行到done函数,导致用例执行一直没有结束,直到超时结束。 + +2.用例调用函数耗时过长,超过用例执行设置的超时时间。 + +**解决方法** + +1.检查用例代码逻辑,确保即使断言失败场景认可走到done函数,保证用例执行结束。 + +2.可在IDE中Run/Debug Configurations中修改用例执行超时配置参数,避免用例执行超时。 + +### UI测试用例常见问题 + +**1、失败日志有“Get windows failed/GetRootByWindow failed”错误信息** + +**问题描述** + +UI测试用例执行失败,查看hilog日志发现日志中有“Get windows failed/GetRootByWindow failed”错误信息。 + +**可能原因** + +系统ArkUI开关未开启,导致被测试界面控件树信息未生成。 + +**解决方法** + +执行如下命令,并重启设备再次执行用例。 + +```shell +hdc shell param set persist.ace.testmode.enabled 1 +``` + +**2、失败日志有“uitest-api dose not allow calling concurrently”错误信息** + +**问题描述** + +UI测试用例执行失败,查看hilog日志发现日志中有“uitest-api dose not allow calling concurrently”错误信息。 + +**可能原因** + +1.用例中UI测试框架提供异步接口没有增加await语法糖调用。 + +2.多进程执行UI测试用例,导致拉起多个UITest进程,框架不支持多进程调用。 + +**解决方法** + +1.检查用例实现,异步接口增加await语法糖调用。 + +2.避免多进程执行UI测试用例。 + +**3、失败日志有“dose not exist on current UI! Check if the UI has changed after you got the widget object”错误信息** + +**问题描述** + +UI测试用例执行失败,查看hilog日志发现日志中有“dose not exist on current UI! Check if the UI has changed after you got the widget object”错误信息。 + +**可能原因** + +在用例中代码查找到目标控件后,设备界面发生了变化,导致查找到的控件丢失,无法进行下一步的模拟操作。 + +**解决方法** + +重新执行UI测试用例。