HarmonyOS鸿蒙Next中关于UI自动化测试,测试套脚本继承testcase类后,无法运行其他用例
HarmonyOS鸿蒙Next中关于UI自动化测试,测试套脚本继承testcase类后,无法运行其他用例 我在写UI自动测试时,使用的是多用例模式(测试套),如下图。一个简单的登录测试
case就是:清除后台进程(保证测试环境干净)—打开app—输入账号密码登录—退出app—清除后台进程。

然后我根据官方文档描述(如下图):

把case的<清除后台进程>这个步骤写在测试套脚本里。这样在我的case运行前会先运行测试套脚本里的<清除后台进程>,如下图:

PS: 我的实现方式是hdc命令+hypium,所以我继承了testcase这个类。
一切准备就绪后,我就开始运行。

运行发现,根本没执行上面的TC_002到TC_005的case.
经过多番尝试,我发现是因为我继承了testcase这个类,他把user_login当作用例。
更多关于HarmonyOS鸿蒙Next中关于UI自动化测试,测试套脚本继承testcase类后,无法运行其他用例的实战教程也可以访问 https://www.itying.com/category-93-b0.html
开发者您好,目前不支持对class user_login(TestSuite,TestCase)的这种修改,您可以自定义一个class,然后在测试套py文件中import调用。

更多关于HarmonyOS鸿蒙Next中关于UI自动化测试,测试套脚本继承testcase类后,无法运行其他用例的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS Next中,UI自动化测试套脚本继承TestCase类后无法运行其他用例,通常是由于测试框架的继承机制或测试套配置问题导致。检查测试套的配置是否正确,确保测试用例的继承结构符合HarmonyOS测试框架规范。确认测试脚本中是否正确定义了测试方法,并遵循了测试执行流程。
根据你的描述,问题核心在于测试套脚本继承了 testcase 类,导致测试框架将其识别为一个独立的测试用例,而非一个用于组织和管理其他用例的“套件”或“容器”。
在HarmonyOS Next的UI自动化测试框架(Hypium)中,testcase 类是用于定义单个测试用例的基类。当你的测试套脚本(例如 UserLoginTestSuite)继承自 testcase 时,框架会将其视为一个可执行的测试用例。因此,在执行测试套时,框架只会运行这个“套件用例”本身(即 onStart 方法),而不会自动去遍历和执行你通过 addTest 方法添加进去的其他子用例(TC_002到TC_005)。
解决方案:
你需要让测试套脚本继承正确的基类。对于测试套(Test Suite),应该继承 TestSuite 类,而不是 testcase 类。
-
修改继承关系: 将你的
UserLoginTestSuite类的父类从testcase改为TestSuite。// 修改前 export default class UserLoginTestSuite extends testcase { // ... } // 修改后 import { TestSuite } from '@ohos/hypium'; // 确保导入TestSuite export default class UserLoginTestSuite extends TestSuite { // ... } -
调整结构: 在
TestSuite的子类中,通常是在构造函数或一个特定的初始化方法(如onPrepare)中,通过this.addTest()来添加子用例。onStart方法通常用于测试套级别的启动逻辑,但框架会自动调度其包含的子用例执行。
修改后的关键点:
TestSuite类专门用于聚合多个testcase。- 框架会识别
TestSuite类型,并执行其内部通过addTest注册的所有子用例。 - 将环境清理(清除后台进程)的逻辑可以放在测试套的
onStart方法中,它会在该测试套下所有子用例开始执行前运行一次。这与你的预期“每个case运行前”略有不同,是测试套级别的Setup。如果需要在每个用例前后都执行,应考虑使用testcase自身的onStart或onEnd方法,或者使用@Setup、@TearDown装饰器。
通过将继承关系从 testcase 更正为 TestSuite,你的测试套就能正确识别并依次运行 TC_002 到 TC_005 这些子用例了。

