鸿蒙(HarmonyOS)- 单元测试常见问题及解决方法

以下是一些在单元测试和UI测试中常见的问题及其解决方法:

一、单元测试常见问题

1、日志打印信息延迟

    • 问题描述:在用例中增加的日志,没有在用例执行时实时打印,而是在结束后才出现。
    • 可能原因:这通常发生在调用了异步接口的情况下。
    • 解决方法:若有多个异步接口,建议使用Promise方式进行封装和调用。

    2、启动能力失败

      • 问题描述:执行测试用例时,控制台返回“fail to start ability”错误。
      • 可能原因:测试包可能未正确打包,缺失了必要的测试框架依赖文件。
      • 解决方法:确认测试包中是否含有TestRunner.abc文件,若没有,则重新编译打包。

      3、用例超时

        • 问题描述:用例执行后提示超时错误。
        • 可能原因:可能是异步接口没有正确执行done函数,或调用的函数耗时太长。
        • 解决方法:检查代码逻辑确保done函数总会被执行;或在IDE中调整用例的超时配置参数。

        二、UI测试常见问题

        1、获取窗口失败

          • 问题描述:UI测试失败,日志中有“Get windows failed/GetRootByWindow failed”的错误。
          • 可能原因:可能是系统的ArkUI开关未开启,导致控件树信息没有生成。
          • 解决方法:执行hdc shell param set persist.ace.testmode.enabled 1命令,并重启设备。

          2、并发调用错误

            • 问题描述:UI测试失败,日志显示“uitest-api does not allow calling concurrently”。
            • 可能原因:异步接口没有使用await,或多进程执行UI测试。
            • 解决方法:确保异步接口前加await;并避免多进程执行UI测试用例。

            3、控件丢失错误

              • 问题描述:UI测试失败,日志中有“does not exist on current UI”的错误。
              • 可能原因:在查找到目标控件后,界面发生了变化,导致控件丢失。
              • 解决方法:重新执行UI测试用例。

              遇到测试问题时,首先要仔细阅读错误日志,找出可能的原因,然后根据上述建议进行排查和解决。