# third_lib_js合作共建 **Repository Path**: qishui7/third_lib_js ## Basic Information - **Project Name**: third_lib_js合作共建 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-03-18 - **Last Updated**: 2024-05-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # third_lib_js #### 根目录 根目录用来放置各个独立的测试用例,比如js-md2_test, 等 ### 子目录 子目录 分为 js项目名 (原始的js代码和测试用例),doc(用来存放对应设计以及自测试的相关验收文档) ### 例子 - js-md2_test - js-md2_test - 测试用例代码 - doc - js-md2_test测试报告.xlsx - js-md2_test设计文档.docx ## 文件内输出结果格式 - 使用 英文小写,如遇到多单词,请用 - 链接,使用英文 ":", 前面没有空格,时间后面空格 ms 例如: js-md2Demo_md2_0100: xx ms ## 提交代码要求 - js用例必须在ARK环境和v8编译通过 - 必须关闭自测试时,用来输出中间过程日志的标志,确保输出只有最终的时间结果 - ARK环境不支持 console.log ,请 替换为print - 必须在真机上跑过的代码才能提交 ## 三方库js用例转写规范 ### 三方库js用例转写遇到问题及解决方案 - 问题1:js源码module.exports导出无法在ARK和v8环境下识别; 解决方案:导出方式改为export default进行导出; - 问题2:js中require导入在ARK和v8环境下报错; 解决方案:改为import导入方式; - 问题3:js中exports导出无法在ARK和v8环境下识别; 解决方案:导出方式改为单个export、默认export default、命名export{}方式导出; - 问题4:js源码立即执行函数内部将模块导出为 t() 的返回值; 解决方案:全局声明变量导出,立即执行函数内部将 t()赋值给全局变量; 例如:遇到:(function (S, T) { typeof exports == "object" && typeof module == "object" ? module.exports = T() : typeof define == "function" && define.amd ? define([], T) : typeof exports == "object" ? exports.modoc = T() : S.modoc = T(); modoc = T() })(....) 可修改成:export let modoc (function (S, T) { modoc = T() })(....) - 问题5:js导入库较多时,fileinfo中有空格ARK环境下跑不起来看不出具体原因; 解决方案:检测fileinfo 中是否包含多余的空格; ### review中的问题追踪 - 1.用例设计文档中三方库描述要准确和清晰 - 2.每个用例的执行时间不低于10ms - 3.用例设计文档中要求有v8和ARK环境执行的时间 - 4.用例设计文档中要体现方法的入参和返回值的介绍 - 5.功能的数据要贴近实际用到的数据场景(比如:压缩文件数据量在100k的数据) - 6.用例设计文档中要附上的原仓gitee的路径 - 7.每个测试用例对应一个function,且放在文件最下方统一调用执行 - 8.当方法有返回值的时候,给返回结果要有个处理逻辑 - 9.用例逻辑代码中的循环统一用for()循环 - 10.三方库测试用例中不用写异常,简单随机字符串,或者数字场景; - 11.三方库适配ARK编译环境时的源代码修改点描述要清晰,规范; - 12.三方库测试用例设计要符合实际开发或者相对复杂的性能测试场景; - 13.复杂的用例需要有场景说明测试了什么性能;