Local Test
==========

![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/ee/v3/tEwqpKi_RuSsDJ3J3OsayA/note_3.0-zh-cn.png?HW-CC-KV=V1&HW-CC-Date=20260612T073903Z&HW-CC-Expire=86400&HW-CC-Sign=60065C568B4D35D092BBB76594B3F73462542E7196266CDE7126103DBD20B1F2)

当前不支持测试C/C++方法及系统API。

#### 创建Local Test测试用例

1.  在工程目录下打开待测试模块（支持HAP、HAR、HSP模块）下的ets文件，将光标置于代码中任意位置，单击**右键 > Show Context Actions** **> Create Local Test**或快捷键**Alt+Enter****（macOS为Option+Enter） > Create Local Test**创建测试类。
    
    ![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/a0/v3/mARcGDZoT6ePJ_pVG5xDZA/zh-cn_image_0000002594635030.png?HW-CC-KV=V1&HW-CC-Date=20260612T073903Z&HW-CC-Expire=86400&HW-CC-Sign=8AE9AAE399781B167A395B25F8EE606BFC7390844D7F787017C9187F9EEDFB3F)
    
2.  在弹出的Create Local Test窗口，输入或选择如下参数。
    
    *   **Testing library**：测试类型，默认为DECC-ArkTSUnit。
    *   **ArkTS name**：创建的测试文件名称，测试文件中包含了测试用例。测试文件名称要求在工程目录范围内具有唯一性，仅支持字母、数字、下划线（\_）和点（.）。
    *   **Destination package**：测试文件存放的位置，建议存放在待测试模块的test目录下。
    
    ![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/46/v3/L5P4wt6lR2OFNxdse-oCmg/zh-cn_image_0000002624994455.png?HW-CC-KV=V1&HW-CC-Date=20260612T073903Z&HW-CC-Expire=86400&HW-CC-Sign=B5AA84F6148DE277CD263597E9211DB110F503100C788D499FC572C3505C7620)
    
3.  DevEco Studio在test目录下自动生成对应的测试类。在测试类中，DevEco Studio会生成对应方法的用例模板，具体测试代码需要开发者根据业务逻辑进行开发，具体请参考[单元测试框架](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/unittest-guidelines)。
    
    ![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/62/v3/I-ws7xHrSDK4jeknBB-cNw/note_3.0-zh-cn.png?HW-CC-KV=V1&HW-CC-Date=20260612T073903Z&HW-CC-Expire=86400&HW-CC-Sign=47D2369BE30937B9A9CD656FEE1692EDE4F4ABDB420E6CC51F80A3EB4992893B)
    
    您也可以手动在test文件夹下创建测试用例，手动创建后，需要在List.test.ets文件中添加创建的用例类。
    

#### 运行Local Test测试用例

#### \[h2\]运行模式

可以采用运行工程目录（test）、测试文件（如Index.test.ets）、测试套件（describe）、测试方法（it）的方式来执行Local Test，各级别测试执行入口如下。

<table id="table8849024115311" style="border-style: none;"><tbody><tr id="ZH-CN_TOPIC_0000002624993519__row1084920245537"><td align="center" class="nocellnorowborder" style="border: none;" valign="top" width="50%"><p id="ZH-CN_TOPIC_0000002624993519__p2084932419536"><span><img originheight="445" originwidth="501" src="https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/ce/v3/eL_CMiEVQs6SOwjI8F_qGw/zh-cn_image_0000002625074599.png?HW-CC-KV=V1&amp;HW-CC-Date=20260612T073903Z&amp;HW-CC-Expire=86400&amp;HW-CC-Sign=3C2B3F3427C923C6566C6DE12568B446996A4DA54CDF622F6DBC8FB2EFD74437"></span></p></td><td align="center" class="cell-norowborder" style="border: none;" valign="top" width="50%"><p id="ZH-CN_TOPIC_0000002624993519__p48491324125312"><span><img originheight="436" originwidth="468" src="https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/95/v3/MzrzehTZTxCijGszo9WPqw/zh-cn_image_0000002625074609.png?HW-CC-KV=V1&amp;HW-CC-Date=20260612T073903Z&amp;HW-CC-Expire=86400&amp;HW-CC-Sign=3E87EE9023CC6BB53B53499C38872971CB6345E08BA89A94DD272AE9F79C3406"></span></p></td></tr><tr id="ZH-CN_TOPIC_0000002624993519__row168495245531"><td align="center" class="nocellnorowborder" style="border: none;" valign="top" width="50%"><p id="ZH-CN_TOPIC_0000002624993519__p108491924115318">目录级</p></td><td align="center" class="cell-norowborder" style="border: none;" valign="top" width="50%"><p id="ZH-CN_TOPIC_0000002624993519__p14849142411534">文件级</p></td></tr><tr id="ZH-CN_TOPIC_0000002624993519__row88495249531"><td align="center" class="nocellnorowborder" style="border: none;" valign="top" width="50%"><p id="ZH-CN_TOPIC_0000002624993519__p13849132419537"><span><img originheight="174" originwidth="506" src="https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/b9/v3/SwL6c98kRT6MKrOQ4MvF0g/zh-cn_image_0000002625074595.png?HW-CC-KV=V1&amp;HW-CC-Date=20260612T073903Z&amp;HW-CC-Expire=86400&amp;HW-CC-Sign=89BC132051EC7A16C3C084CE4136A5364B9C13D524B6064F893C1C384234D6D4"></span></p></td><td align="center" class="cell-norowborder" style="border: none;" valign="top" width="50%"><p id="ZH-CN_TOPIC_0000002624993519__p1985018244535"><span><img originheight="174" originwidth="469" src="https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/bb/v3/AJucmp-kQoywvProZVbalA/zh-cn_image_0000002594635034.png?HW-CC-KV=V1&amp;HW-CC-Date=20260612T073903Z&amp;HW-CC-Expire=86400&amp;HW-CC-Sign=E43F3AA54BDD0F22F08BD96A5494FC3687D7969E64AF6AF528ECD3484E3CEB91"></span></p></td></tr><tr id="ZH-CN_TOPIC_0000002624993519__row1885072411535"><td align="center" class="row-nocellborder" style="border: none;" valign="top" width="50%"><p id="ZH-CN_TOPIC_0000002624993519__p1485092465312">套件级</p></td><td align="center" class="cellrowborder" style="border: none;" valign="top" width="50%"><p id="ZH-CN_TOPIC_0000002624993519__p1085015248538">方法级</p></td></tr></tbody></table>

以文件级别为例，在工程目录中，选中文件，单击**右键 > Run'测试文件名称'**，执行测试。

![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/61/v3/F-LtZSa9SdeHiPTdFHvTQg/zh-cn_image_0000002625074601.png?HW-CC-KV=V1&HW-CC-Date=20260612T073903Z&HW-CC-Expire=86400&HW-CC-Sign=420EB8DF8AEB355FCC6F5601EBEC3D5E084DC2413234A9A9EF85F403AECDFF95)

也可以通过如下方式，执行Local Test：

*   在工具栏主菜单单击**Run > Run'测试名称'**。
*   在DevEco Studio的右上角，选择一项测试任务的配置，然后单击右侧的![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/a4/v3/6Nhol33zQT6CP-8bSh7SbQ/zh-cn_image_0000002625074613.png?HW-CC-KV=V1&HW-CC-Date=20260612T073903Z&HW-CC-Expire=86400&HW-CC-Sign=709EA4308F42DD5F8CB98DCA965B8ACD704D20BD24E1472CAB50B4966A3B154A)按钮，执行Local Test。
    
    ![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/47/v3/_SGDLWJUR3Wwvm065zQUhA/zh-cn_image_0000002624994459.png?HW-CC-KV=V1&HW-CC-Date=20260612T073903Z&HW-CC-Expire=86400&HW-CC-Sign=13EA3EA2CDB92233DEF060AAD5AE991BA87EC107AD1DB9A74C8186C80E85EDC4)
    

执行完测试任务后，查看测试结果。

![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/52/v3/Kso-1rkqQD6S9-lkRP10rw/zh-cn_image_0000002625074605.png?HW-CC-KV=V1&HW-CC-Date=20260612T073903Z&HW-CC-Expire=86400&HW-CC-Sign=D4F920DA09898932A33C99A4E1AA87A6613BA640ABA4771E9CA00A3378311919)

#### \[h2\]调试模式

调试模式相比运行模式增加了断点管理功能。在断点命中时，可以选择单步执行、步入步出、进入下个断点等方式进行调试，另外可以使用线程堆栈可视化、变量和表达式可视化功能，快速定位问题。

以文件级别为例，在添加断点之后，在工程目录中，选中文件，单击**右键 > Debug'测试文件名称'**，以调试模式执行测试任务。

![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/7a/v3/WaIO09YcQ42iVfOcuvqrJA/zh-cn_image_0000002624994465.png?HW-CC-KV=V1&HW-CC-Date=20260612T073903Z&HW-CC-Expire=86400&HW-CC-Sign=5363597B386EE57975483F253B030DE3710F120C866D5A4323F53DAA9A6A7D1E)

在断点命中时，下方将出现Debug窗口。开发者可在该窗口中进行断点管理与基础调试能力的可视化操作，在断点命中时可查看当前线程的变量和堆栈信息。

![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/22/v3/omccj8yKREyr3qLsQJ4mvw/zh-cn_image_0000002625074597.png?HW-CC-KV=V1&HW-CC-Date=20260612T073903Z&HW-CC-Expire=86400&HW-CC-Sign=AB3A749F11CF247F3C92B2F6D20739A73CF92C2CE82D85AA77F80DA3E912FF8B)

断点命中时，在代码编辑器窗口单击右键，在弹出的菜单中将出现调试模式特有功能，如计算表达式、添加变量监视等。

![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/e3/v3/1PSdqUtmRDmnU0RtkF00lw/zh-cn_image_0000002594635036.png?HW-CC-KV=V1&HW-CC-Date=20260612T073903Z&HW-CC-Expire=86400&HW-CC-Sign=789246CCDFAB9C04E1B9FEBF15A12AB14A7C7FC6E629BE2081326316237822B0)

在跳出所有断点后，测试结束，与运行模式相同，在测试窗口查看测试结果。

![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/f0/v3/1KPsJRWjSa-5tuZQMdcFGw/zh-cn_image_0000002594475094.png?HW-CC-KV=V1&HW-CC-Date=20260612T073903Z&HW-CC-Expire=86400&HW-CC-Sign=EE2802B7CA5C2C6D151180D2D9D860F6FA5E51FCC43FB26A1A0B3A71B116906E)

#### \[h2\]覆盖率统计模式

在LocalTest运行的基础上支持代码覆盖率统计，当前仅支持ArkTS工程。

开发者可以自定义需要参与覆盖率测试的文件，具体配置方法请参考[配置覆盖率过滤文件](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/ide-ui-test#section13756446154)。

如前所述，覆盖率统计模式也有多级别入口，以文件级别为例，有两种方式启动测试：

*   方式一：在工程目录中，选中文件，单击**右键 > Run '测试文件名称' with Coverage**，以覆盖率统计模式执行测试任务。
    
    ![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/c0/v3/pUaPTAXsQlO4pZVf2IipeQ/zh-cn_image_0000002625074615.png?HW-CC-KV=V1&HW-CC-Date=20260612T073903Z&HW-CC-Expire=86400&HW-CC-Sign=EF8A64EF113D2570A4896F70D4A916FF30DE9AB75F6857889F9C4FBE87213490)
    

*   方式二：在DevEco Studio的右上角，选择测试任务，然后单击右侧的![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/cc/v3/gGnz6ddNSIOnY9BhDMzyBg/zh-cn_image_0000002594635032.png?HW-CC-KV=V1&HW-CC-Date=20260612T073903Z&HW-CC-Expire=86400&HW-CC-Sign=B6DBEEE615CA8309F86C5A2F08D81C20F8FA7DC66CC1514B7EEA24705172FF3B)按钮，执行测试。
    
    ![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/1f/v3/jKm2l6gZSOiI6tVxETK94w/zh-cn_image_0000002625074611.png?HW-CC-KV=V1&HW-CC-Date=20260612T073903Z&HW-CC-Expire=86400&HW-CC-Sign=5BAE6F8610983C880F945A294786310F69AD6E7150FC824053F8E4D46332524B)
    

启动测试后，进行编译构建，底部将出现Cover窗口，构建结束后自动拉起Cover窗口，测试任务结束后，窗口中会打印测试报告的路径。

![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/5e/v3/MPqYJ-kvRDCVA87jjl-99A/zh-cn_image_0000002624994457.png?HW-CC-KV=V1&HW-CC-Date=20260612T073903Z&HW-CC-Expire=86400&HW-CC-Sign=0DB4C969526CFB96DA4C62D1AD05D3BF3E5FD077DD48A69994B270C7312AFD6B)

点击链接可打开报告，查看代码覆盖率详情，关于覆盖率的计算方式请参考[查看覆盖率报告](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/ide-ui-test#section10394362109)。

![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/e3/v3/DP5ptrdBT3G0OHWTD2gs9A/zh-cn_image_0000002594635026.png?HW-CC-KV=V1&HW-CC-Date=20260612T073903Z&HW-CC-Expire=86400&HW-CC-Sign=D697E1320E619381283747ED66AC9E21F70C483BBDA68C8CEECDF3C013385D75)

在Cover窗口中，单击rerun按钮可以按照之前的设置，重新执行覆盖率用例。

![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/69/v3/Sp5Q9-qJTpuCa20GY3VDNw/zh-cn_image_0000002624994473.png?HW-CC-KV=V1&HW-CC-Date=20260612T073903Z&HW-CC-Expire=86400&HW-CC-Sign=57EE0F47E478EAB4B952FD5C2FAA558E6F2258DF2E3176FA5EC324961F93D125)

#### （可选）自定义测试用例运行任务

默认情况下，测试用例可直接运行。如果需要自定义测试用例运行任务，可通过如下方法进行设置。

1.  在工具栏主菜单单击**Run**\>**Edit Configurations**，进入Run/Debug Configurations界面。
2.  在**Run/Debug Configurations**界面，单击**+**按钮，在弹出的下拉菜单中，单击**Local Test**。
    
    ![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/5f/v3/MUjIWHMyRUCw-rYYDftV6Q/zh-cn_image_0000002624994453.png?HW-CC-KV=V1&HW-CC-Date=20260612T073903Z&HW-CC-Expire=86400&HW-CC-Sign=4BF2F524CC91ADE00C66CB6232B4984E1E786951B00443C9D4FA94B88541C880)
    
3.  根据实际情况，配置Local Test的运行参数。 然后单击**OK**，完成配置。
    
    ![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/1e/v3/82ZqMWZjQYG0h_Bm7hYAPw/zh-cn_image_0000002624994461.png?HW-CC-KV=V1&HW-CC-Date=20260612T073903Z&HW-CC-Expire=86400&HW-CC-Sign=F675FB7D70854D26C696157DB597D2DA00C3EDDEB0E8C0C46FA509CB7CDDFFC3)
    

#### 使用命令行执行Local Test

通过命令行方式执行Local Test，在工程根目录下执行命令：

hvigorw test -p module={moduleName} -p coverage={true | false} -p scope={suiteName}#{methodName}

*   module：执行测试的模块。缺省默认是执行所有模块的用例。
*   coverage：是否生成覆盖率报告，缺省默认是true，在<module-path>/.test/default/outputs/test/reports路径下生成两份报告，一份是html格式（index.html），一份是json格式（coverageReport.json），具体参考[查看覆盖率报告](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/ide-ui-test#section10394362109)。
*   scope：格式为{suiteName}#{methodName}或{suiteName}，分别表示测试用例级别或测试套件级别的测试，缺省默认是执行当前模块的所有用例。

![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/68/v3/1Xx2fsYdR4a2egzTHPKYmw/note_3.0-zh-cn.png?HW-CC-KV=V1&HW-CC-Date=20260612T073903Z&HW-CC-Expire=86400&HW-CC-Sign=6F1713BF222936753261AA89EC7BEDB025CE32D33BF88337EA769BB22CAC5FD8)

*   多个module和scope之间用英文逗号隔开。
*   暂不支持在Linux上执行该命令。

测试结果文件：<module-path>/.test/default/intermediates/test/coverage\_data/test\_result.txt