Skip to content

Commit e773484

Browse files
author
wan
committed
feat: hbuilderx cli 增加蒸汽模式支持,添加vapor_render_target参数,支持bytecode和nativecode
1 parent a2145ac commit e773484

2 files changed

Lines changed: 43 additions & 2 deletions

File tree

package.json

Lines changed: 33 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -196,7 +196,7 @@
196196
{
197197
"name": "uniapp.test",
198198
"descption": "使用HBuilderX cli运行uni-app (x)自动化测试到Web、微信小程序、Android、iOS、Harmony等平台",
199-
"doc": "\nDocument: https://uniapp.dcloud.net.cn/worktile/auto/hbuilderx-cli-uniapp-test.html\nUsages:\n cli uniapp.test web --project <ProjectPath> --browser chrome \n cli uniapp.test web-chrome --project <ProjectPath>\n cli uniapp.test web-safari --project <ProjectPath>\n cli uniapp.test web-firefox --project <ProjectPath>\n cli uniapp.test mp-weixin --project <ProjectPath>\n cli uniapp.test app-android --project <ProjectPath> \n cli uniapp.test app-ios-simulator --project <ProjectPath> \n cli uniapp.test app-ios --project <ProjectPath> \n cli uniapp.test app-harmony --project <ProjectPath> --testcaseFile <testcase_file_path> --device_id <id> \n",
199+
"doc": "\nDocument: https://uniapp.dcloud.net.cn/worktile/auto/hbuilderx-cli-uniapp-test.html\nUsages:\n cli uniapp.test web --project <ProjectPath> --browser chrome \n cli uniapp.test web-chrome --project <ProjectPath>\n cli uniapp.test web-safari --project <ProjectPath>\n cli uniapp.test web-firefox --project <ProjectPath>\n cli uniapp.test mp-weixin --project <ProjectPath>\n cli uniapp.test app-android --project <ProjectPath> \n cli uniapp.test app-ios-simulator --project <ProjectPath> \n cli uniapp.test app-ios --project <ProjectPath> \n # 指定测试设备、指定测试用例文件 \n cli uniapp.test app-harmony --project <ProjectPath> --testcaseFile <testcase_file_path> --device_id <id> \n # 以蒸汽模式运行、指定视图层编译目标 \n cli uniapp.test app-android --project <ProjectPath> --vapor true --vapor_render_target nativecode",
200200
"args": [
201201
{
202202
"name": "help",
@@ -411,6 +411,14 @@
411411
"type": "boolean",
412412
"default": false
413413
},
414+
{
415+
"name": "vapor_render_target",
416+
"descption": "(可选) vapor视图层编译目标,支持bytecode、nativecode",
417+
"usage": "",
418+
"type": "enum",
419+
"default": "bytecode",
420+
"enum": "bytecode|nativecode"
421+
},
414422
{
415423
"name": "device_id",
416424
"descption": "(可选) Android设备ID,当存在可用设备时,默认使用第一个设备",
@@ -450,6 +458,14 @@
450458
"type": "boolean",
451459
"default": false
452460
},
461+
{
462+
"name": "vapor_render_target",
463+
"descption": "(可选) vapor视图层编译目标,支持bytecode、nativecode",
464+
"usage": "",
465+
"type": "enum",
466+
"default": "bytecode",
467+
"enum": "bytecode|nativecode"
468+
},
453469
{
454470
"name": "device_id",
455471
"descption": "(可选) iOS模拟器设备ID,当存在可用设备时,默认使用第一个设备",
@@ -489,6 +505,14 @@
489505
"type": "boolean",
490506
"default": false
491507
},
508+
{
509+
"name": "vapor_render_target",
510+
"descption": "(可选) vapor视图层编译目标,支持bytecode、nativecode",
511+
"usage": "",
512+
"type": "enum",
513+
"default": "bytecode",
514+
"enum": "bytecode|nativecode"
515+
},
492516
{
493517
"name": "device_id",
494518
"descption": "(可选) iOS真机设备ID,当存在可用设备时,默认使用第一个设备",
@@ -528,6 +552,14 @@
528552
"type": "boolean",
529553
"default": false
530554
},
555+
{
556+
"name": "vapor_render_target",
557+
"descption": "(可选) vapor视图层编译目标,支持bytecode、nativecode",
558+
"usage": "",
559+
"type": "enum",
560+
"default": "bytecode",
561+
"enum": "bytecode|nativecode"
562+
},
531563
{
532564
"name": "device_id",
533565
"descption": "(可选) Harmony设备ID,当存在可用设备时,默认使用第一个设备",

src/HBuilderXCli.js

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -319,6 +319,7 @@ class RunTestForHBuilderXCli extends Common {
319319
this.consoleMsgPrefix = "[uniapp.test] ";
320320
this.raw_argv_uni_platform = "";
321321
this.raw_argv_vapor = false;
322+
this.raw_argv_vapor_render_target = "";
322323

323324
this.terminal_id = "";
324325
this.projectName = '';
@@ -392,8 +393,10 @@ class RunTestForHBuilderXCli extends Common {
392393
*/
393394
async run_uni_test(testPlatform, deviceId, deviceType = "") {
394395
let UNI_APP_X_DOM2 = false;
396+
let UNI_APP_X_VAPOR_RENDER_TARGET = "";
395397
if (this.raw_argv_vapor === true && is_uniapp_x) {
396398
UNI_APP_X_DOM2 = true;
399+
UNI_APP_X_VAPOR_RENDER_TARGET = ["bytecode", "nativecode"].includes(this.raw_argv_vapor_render_target) ? this.raw_argv_vapor_render_target : "bytecode";
397400
};
398401
let uniProjectAttributeData = {
399402
"is_uniapp_x": is_uniapp_x,
@@ -491,6 +494,7 @@ class RunTestForHBuilderXCli extends Common {
491494
// 蒸汽模式:命令行传递
492495
if (UNI_APP_X_DOM2 === true) {
493496
cmdOpts["env"]["UNI_APP_X_DOM2"] = UNI_APP_X_DOM2;
497+
cmdOpts["env"]["UNI_APP_X_VAPOR_RENDER_TARGET"] = UNI_APP_X_VAPOR_RENDER_TARGET;
494498
};
495499

496500
if (['android', 'ios', "harmony"].includes(UNI_OS_NAME)) {
@@ -710,6 +714,7 @@ class RunTestForHBuilderXCli extends Common {
710714
let argv_uni_platform = uni_platformName;
711715
this.raw_argv_uni_platform = uni_platformName;
712716
this.raw_argv_vapor = params.vapor;
717+
this.raw_argv_vapor_render_target = params.vapor_render_target || params.uni_app_x_vapor_render_target || "";
713718

714719
// console.error("=========>", params);
715720
let argv_device_id = params.device_id || '';
@@ -846,7 +851,8 @@ class RunTestForHBuilderXCli extends Common {
846851
};
847852

848853
async function check_cli_args(args, client_id) {
849-
let { project, device_id, testcaseFile, vapor } = args;
854+
let { project, device_id, testcaseFile, vapor, vapor_render_target, uni_app_x_vapor_render_target } = args;
855+
let render_target = vapor_render_target || uni_app_x_vapor_render_target || "";
850856
if (!fs.existsSync(project)) {
851857
return `项目路径 ${project} 不存在,请检查。`;
852858
};
@@ -861,6 +867,9 @@ async function check_cli_args(args, client_id) {
861867
return `测试用例文件 ${testcaseFile} 不存在,请检查。`;
862868
};
863869
}
870+
if (render_target != "" && !["bytecode", "nativecode"].includes(render_target)) {
871+
return "参数 --vapor_render_target 仅支持 bytecode|nativecode,请检查。";
872+
};
864873
return "";
865874
};
866875

0 commit comments

Comments
 (0)