Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
b6169bf4
D
Docs
项目概览
OpenHarmony
/
Docs
接近 2 年 前同步成功
通知
159
Star
292
Fork
28
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
Docs
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
b6169bf4
编写于
6月 27, 2023
作者:
V
very0228
提交者:
Gitee
6月 27, 2023
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
对外资料刷新
Signed-off-by:
N
very0228
<
zhaoweirui@huawei.com
>
上级
e386b28d
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
209 addition
and
209 deletion
+209
-209
zh-cn/device-dev/device-test/developer_test.md
zh-cn/device-dev/device-test/developer_test.md
+209
-209
未找到文件。
zh-cn/device-dev/device-test/developer_test.md
浏览文件 @
b6169bf4
...
@@ -609,256 +609,256 @@ OpenHarmony系统开发人员在新增或修改代码之后,希望可以快速
...
@@ -609,256 +609,256 @@ OpenHarmony系统开发人员在新增或修改代码之后,希望可以快速
-
**C++用例编译配置示例**
-
**C++用例编译配置示例**
```
```
# Copyright (c) 2023 XXXX Device Co., Ltd.
# Copyright (c) 2023 XXXX Device Co., Ltd.
import("//build/test.gni")
import("//build/test.gni")
module_output_path = "developertest/calculator"
module_output_path = "developertest/calculator"
config("module_private_config") {
config("module_private_config") {
visibility = [ ":*" ]
visibility = [ ":*" ]
include_dirs = [ "../../../include" ]
include_dirs = [ "../../../include" ]
}
}
ohos_unittest("CalculatorSubTest") {
ohos_unittest("CalculatorSubTest") {
module_out_path = module_output_path
module_out_path = module_output_path
sources = [
sources = [
"../../../include/calculator.h",
"../../../include/calculator.h",
"../../../src/calculator.cpp",
"../../../src/calculator.cpp",
]
]
sources += [ "calculator_sub_test.cpp" ]
sources += [ "calculator_sub_test.cpp" ]
configs = [ ":module_private_config" ]
configs = [ ":module_private_config" ]
deps = [ "//third_party/googletest:gtest_main" ]
deps = [ "//third_party/googletest:gtest_main" ]
}
}
group("unittest") {
group("unittest") {
testonly = true
testonly = true
deps = [":CalculatorSubTest"]
deps = [":CalculatorSubTest"]
}
}
```
```
详细内容如下:
详细内容如下:
1. 添加文件头注释信息
```
# Copyright (c) 2023 XXXX Device Co., Ltd.
```
2. 导入编译模板文件
```
import("//build/test.gni")
```
3. 指定文件输出路径
```
module_output_path = "developertest/calculator"
```
>  **说明:**
>
> 此处输出路径为部件/模块名。
4. 配置依赖包含目录
```
config("module_private_config") {
visibility = [ ":*" ]
include_dirs = [ "../../../include" ]
}
```
>  **说明:**
>
> 一般在此处对相关配置进行设置,在测试用例编译脚本中可直接引用。
5. 指定测试用例编译目标输出的文件名称
```
ohos_unittest("CalculatorSubTest") {
}
```
6. 编写具体的测试用例编译脚本(添加需要参与编译的源文件、配置和依赖)
```
ohos_unittest("CalculatorSubTest") {
module_out_path = module_output_path
sources = [
"../../../include/calculator.h",
"../../../src/calculator.cpp",
"../../../test/calculator_sub_test.cpp"
]
sources += [ "calculator_sub_test.cpp" ]
configs = [ ":module_private_config" ]
deps = [ "//third_party/googletest:gtest_main" ]
}
```
>  **说明:**
>
> 根据测试类型的不同,在具体编写过程中可选择不同的测试类型。
> - ohos_unittest:单元测试
> - ohos_moduletest:模块测试
> - ohos_systemtest:系统测试
> - ohos_performancetest:性能测试
> - ohos_securitytest:安全测试
> - ohos_reliabilitytest:可靠性测试
> - ohos_distributedtest:分布式测试
7. 对目标测试用例文件进行条件分组
```
group("unittest") {
testonly = true
deps = [":CalculatorSubTest"]
}
```
>  **说明:**
>
> 进行条件分组的目的在于执行用例时可以选择性地执行某一种特定类型的用例。
-
**JavaScript用例编译配置示例**
```
# Copyright (C) 2023 XXXX Device Co., Ltd.
import("//build/test.gni")
module_output_path = "developertest/app_info"
ohos_js_unittest("GetAppInfoJsTest") {
module_out_path = module_output_path
hap_profile = "./config.json"
certificate_profile = "//test/developertest/signature/openharmony_sx.p7b"
}
group("unittest") {
testonly = true
deps = [ ":GetAppInfoJsTest" ]
}
```
详细内容如下:
1.添加文件头注释信息
```
# Copyright (C) 2023 XXXX Device Co., Ltd.
```
2.导入编译模板文件
1.
添加文件头注释信息
```
# Copyright (c) 2023 XXXX Device Co., Ltd.
```
```
2. 导入编译模板文件
```
import("//build/test.gni")
import("//build/test.gni")
```
```
3. 指定文件输出路径
3.指定文件输出路径
```
```
module_output_path = "developertest/
calculator
"
module_output_path = "developertest/
app_info
"
```
```
>  **说明:**
>  **说明:**
>
>
> 此处输出路径为部件/模块名。
> 此处输出路径为部件/模块名。
4. 配置依赖包含目录
4.指定测试用例编译目标输出的文件名称
```
```
config("module_private_config") {
ohos_js_unittest("GetAppInfoJsTest") {
visibility = [ ":
*
" ]
include_dirs = [ "../../../include" ]
}
}
```
```
>  **说明:**
>  **说明:**
>
>
> 一般在此处对相关配置进行设置,在测试用例编译脚本中可直接引用。
> - 使用模板ohos_js_unittest定义js测试套,注意与C++用例区分。
> - js测试套编译输出文件为hap类型,hap名为此处定义的测试套名,测试套名称必须以JsTest结尾。
5. 指定测试用例编译目标输出的文件名称
5.指定hap包配置文件config.json和签名文件,两个配置为必选项。
```
```
ohos_unittest("CalculatorSubTest") {
ohos_js_unittest("GetAppInfoJsTest") {
module_out_path = module_output_path
hap_profile = "./config.json"
certificate_profile = "//test/developertest/signature/openharmony_sx.p7b"
}
}
```
```
6. 编写具体的测试用例编译脚本(添加需要参与编译的源文件、配置和依赖)
config.json为hap编译所需配置文件,需要开发者根据被测sdk版本配置“target”项,其余项可默认,具体如下所示:
```
ohos_unittest("CalculatorSubTest") {
```json
module_out_path = module_output_path
{
sources = [
"app": {
"../../../include/calculator.h",
"bundleName": "com.example.myapplication",
"../../../src/calculator.cpp",
"vendor": "example",
"../../../test/calculator_sub_test.cpp"
"version": {
]
"code": 1,
sources += [ "calculator_sub_test.cpp" ]
"name": "1.0"
configs = [ ":module_private_config" ]
},
deps = [ "//third_party/googletest:gtest_main" ]
"apiVersion": {
"compatible": 4,
"target": 5 // 根据被测sdk版本进行修改,此例为sdk5
}
},
"deviceConfig": {},
"module": {
"package": "com.example.myapplication",
"name": ".MyApplication",
"deviceType": [
"phone"
],
"distro": {
"deliveryWithInstall": true,
"moduleName": "entry",
"moduleType": "entry"
},
"abilities": [
{
"skills": [
{
"entities": [
"entity.system.home"
],
"actions": [
"action.system.home"
]
}
],
"name": "com.example.myapplication.MainAbility",
"icon": "$media:icon",
"description": "$string:mainability_description",
"label": "MyApplication",
"type": "page",
"launchType": "standard"
}
],
"js": [
{
"pages": [
"pages/index/index"
],
"name": "default",
"window": {
"designWidth": 720,
"autoDesignWidth": false
}
}
]
}
}
}
```
```
>  **说明:**
6.对目标测试用例文件进行条件分组
>
> 根据测试类型的不同,在具体编写过程中可选择不同的测试类型。
> - ohos_unittest:单元测试
> - ohos_moduletest:模块测试
> - ohos_systemtest:系统测试
> - ohos_performancetest:性能测试
> - ohos_securitytest:安全测试
> - ohos_reliabilitytest:可靠性测试
> - ohos_distributedtest:分布式测试
7. 对目标测试用例文件进行条件分组
```
```
group("unittest") {
group("unittest") {
testonly = true
testonly = true
deps = [":CalculatorSubTest"
]
deps = [ ":GetAppInfoJsTest"
]
}
}
```
```
>  **说明:**
>  **说明:**
>
>
> 进行条件分组的目的在于执行用例时可以选择性地执行某一种特定类型的用例。
> 进行条件分组的目的在于执行用例时可以选择性地执行某一种特定类型的用例。
- **JavaScript用例编译配置示例**
```
# Copyright (C) 2023 XXXX Device Co., Ltd.
import("//build/test.gni")
module_output_path = "developertest/app_info"
ohos_js_unittest("GetAppInfoJsTest") {
module_out_path = module_output_path
hap_profile = "./config.json"
certificate_profile = "//test/developertest/signature/openharmony_sx.p7b"
}
group("unittest") {
testonly = true
deps = [ ":GetAppInfoJsTest" ]
}
```
详细内容如下:
1.添加文件头注释信息
```
# Copyright (C) 2023 XXXX Device Co., Ltd.
```
2.导入编译模板文件
```
import("//build/test.gni")
```
3.指定文件输出路径
```
module_output_path = "developertest/app_info"
```
>  **说明:**
>
> 此处输出路径为部件/模块名。
4.指定测试用例编译目标输出的文件名称
```
ohos_js_unittest("GetAppInfoJsTest") {
}
```
>  **说明:**
>
> - 使用模板ohos_js_unittest定义js测试套,注意与C++用例区分。
> - js测试套编译输出文件为hap类型,hap名为此处定义的测试套名,测试套名称必须以JsTest结尾。
5.指定hap包配置文件config.json和签名文件,两个配置为必选项。
```
ohos_js_unittest("GetAppInfoJsTest") {
module_out_path = module_output_path
hap_profile = "./config.json"
certificate_profile = "//test/developertest/signature/openharmony_sx.p7b"
}
```
config.json为hap编译所需配置文件,需要开发者根据被测sdk版本配置“target”项,其余项可默认,具体如下所示:
```json
{
"app": {
"bundleName": "com.example.myapplication",
"vendor": "example",
"version": {
"code": 1,
"name": "1.0"
},
"apiVersion": {
"compatible": 4,
"target": 5 // 根据被测sdk版本进行修改,此例为sdk5
}
},
"deviceConfig": {},
"module": {
"package": "com.example.myapplication",
"name": ".MyApplication",
"deviceType": [
"phone"
],
"distro": {
"deliveryWithInstall": true,
"moduleName": "entry",
"moduleType": "entry"
},
"abilities": [
{
"skills": [
{
"entities": [
"entity.system.home"
],
"actions": [
"action.system.home"
]
}
],
"name": "com.example.myapplication.MainAbility",
"icon": "$media:icon",
"description": "$string:mainability_description",
"label": "MyApplication",
"type": "page",
"launchType": "standard"
}
],
"js": [
{
"pages": [
"pages/index/index"
],
"name": "default",
"window": {
"designWidth": 720,
"autoDesignWidth": false
}
}
]
}
}
```
6.对目标测试用例文件进行条件分组
```
group("unittest") {
testonly = true
deps = [ ":GetAppInfoJsTest" ]
}
```
>  **说明:**
>
> 进行条件分组的目的在于执行用例时可以选择性地执行某一种特定类型的用例。
**Fuzzing安全测试**
**Fuzzing安全测试**
[
Fuzzing安全测试编译文件的编写规范
](
https://gitee.com/openharmony/test_developertest/blob/master/libs/fuzzlib/README_zh.md
)
[
Fuzzing安全测试编译文件的编写规范
](
https://gitee.com/openharmony/test_developertest/blob/master/libs/fuzzlib/README_zh.md
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录