diff --git a/CodeCommitChecklist.md b/CodeCommitChecklist.md index 2579d89a548dc2ebdb2533e23ae861c0e3d8aa52..6ef46b10056ba1b68c0ba55ed065baf86675fcb3 100644 --- a/CodeCommitChecklist.md +++ b/CodeCommitChecklist.md @@ -1,8 +1,19 @@ -## 代码提交规范 +## 社区共建Sample合入要求 + +1. 新增Sample功能不能重复于当前已有Sample的功能; +2. 新增Sample的工程推荐使用eTS语言编写; +3. 新增Sample的工程推荐使用Stage模型编写; +4. 新增Sample的工程中需要包含UI自动化用例(ohosTest工程模块),覆盖基本的功能场景; +5. 新增Sample需要遵循[代码提交规范](#section1)、[工程结构规范](#section2)、[PR提交格式规范](#section3)、[ReadMe编写规范](#section4)和[UI自动化用例编写规范](#section5); +6. 新增Sample的UX涉及需要符合[一多规范要求](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/key-features/multi-device-app-dev/Readme-CN.md); +7. 新增Sample推荐使用当前最新版本IDE和SDK版本; +8. 工程合入时,需要提供测试用例报告,包括测试场景、操作步骤和测试结果信息,可以附在提交工程中; + +## 代码提交规范 1. 所有文件,包括自动生成的编译文件package.json都要格式化; -2. 函数命名,C++大驼峰,TS、JS小驼峰,方法命名注意动宾结构; -3. 变量命名,必须见名知意,ArrayList类型直接按复数表示,不要带list; +2. 函数命名,C++大驼峰,TS、JS小驼峰,函数命名注意动宾结构; +3. 变量和参数命名,静态常量需使用全大写,函数的参数、全局变量和局部变量都使用小驼峰; 4. 函数参数命名,要规范化,见名知意; 5. if语句后必须跟“{”,哪怕只有一行代码; 6. 有break或return的条件,先break或return再走其他的逻辑; @@ -31,7 +42,7 @@ 19. string.json中description要写简要描述,zh下要用中文; 20. TS、JS语言缩进为2格,C++语言缩进为4格; 21. 涉及应用截图时,图片不能包含人物、关键信息、网络等有侵权风险的资源; -22. 工程中不要配置签名信息; +22. 工程中不要配置签名信息,禁止上传local.properties和package-lock.json等系统自动生成的文件; 23. 规范日志格式,统一用[Sample_包名]开头,如时钟日志,使用[Sample_Clock],日志打印需要使用Hilog接口; 24. 注释“//”后要加一个空格;如果注释跟在代码后面,则“//”前要加一个空格; ```ts @@ -43,7 +54,7 @@ 25. 代码中避免出现中文字符,要使用资源代替,符合国际化开发标准; -## 工程结构规范 +## 工程结构规范 Sample工程,应该区分开UI、业务逻辑、数据模块,工程示例结构如下: @@ -63,7 +74,7 @@ main | |---IndexApi.ts // 网络接口 ``` -## PR提交格式规范 +## PR提交格式规范 示例如下: @@ -83,7 +94,7 @@ Signed-off-by: jiangwensai 4. Feature or Bugfix,如果是需求选择Feature,问题选择Bugfix; 5. Signed-off-by,注明开发者账号和邮箱; -## ReadMe编写规范 +## ReadMe编写规范 1. 标题:以特性名称命名; 2. 介绍: @@ -115,32 +126,32 @@ Signed-off-by: jiangwensai 本示例涉及[相关权限]为system_basic(或者system_core)级别(相关权限级别可通过[权限定义列表]查看),需要配置高权限签名,可参考[特殊权限配置方法]; -## UI自动化用例编写规范 +## UI自动化用例编写规范 1. 用例命名规范为:“包名_测试功能_序号”,如“MyApp_StartAbility_001”,序号表示测试StartAbility功能的第1个用例; -2. 用例的开头和结尾都需要有日志打印,打印必须包括用例名称的关键字,用例中每条断言语句前必须添加日志,打印参数信息,示例: +2. 用例的开头和结尾都需要有日志打印; +3. 打印必须包括用例名称的关键字,用例中每条断言语句前必须添加日志,打印参数信息; +4. DOMAIN设置为0xF811; +5. 用例名称中的包名和日志中的包名单独用常量表示,方便包名变更整改; +6. 每条用例前需要添加注释; ```ts import hilog from '@ohos.hilog'; ... - const TAG = '[Sample_XXX]' + const TAG = '[Sample_MyApp]' const DOMAIN = 0xF811 + const BUNDLE = 'MyApp_' ... - it('MyApp_StartAbility_001', function() { - hilog.info(DOMAIN, TAG, "MyApp_StartAbility_001, begin") - ... - hilog.info(DOMAIN, TAG, "MyApp_StartAbility_001, code:" + code) - expect(0).asserEqual(code) - ... - hilog.info(DOMAIN, TAG, "MyApp_StartAbility_001, end") - }) -``` -3. 每条用例前需要添加注释; -```ts + /** * 介绍用例测试的功能和场景等信息 */ - it('MyApp_StartAbility_001', function() { + it(BUNDLE + 'StartAbility_001', function() { + hilog.info(DOMAIN, TAG, BUNDLE + "StartAbility_001, begin") + ... // 介绍单一步骤的功能 + hilog.info(DOMAIN, TAG, BUNDLE + "StartAbility_001, code:" + code) + expect(0).asserEqual(code) ... + hilog.info(DOMAIN, TAG, BUNDLE + "StartAbility_001, end") }) -``` +``` \ No newline at end of file