Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Xts Acts
提交
761ab0d9
X
Xts Acts
项目概览
OpenHarmony
/
Xts Acts
1 年多 前同步成功
通知
9
Star
22
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
X
Xts Acts
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
761ab0d9
编写于
9月 26, 2022
作者:
O
openharmony_ci
提交者:
Gitee
9月 26, 2022
浏览文件
操作
浏览文件
下载
差异文件
!5659 "updated readme.md"
Merge pull request !5659 from jiyong/20220924
上级
d45b65bb
d46fee6b
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
310 addition
and
43 deletion
+310
-43
README_zh.md
README_zh.md
+310
-43
未找到文件。
README_zh.md
浏览文件 @
761ab0d9
...
@@ -447,7 +447,7 @@ OpenHarmony支持如下几种系统类型:
...
@@ -447,7 +447,7 @@ OpenHarmony支持如下几种系统类型:
sources = [
sources = [
"src/TestDemo.cpp"
"src/TestDemo.cpp"
]
]
include_dirs = [
include_dirs = [
"src",
"src",
...
...
...
@@ -457,7 +457,7 @@ OpenHarmony支持如下几种系统类型:
...
@@ -457,7 +457,7 @@ OpenHarmony支持如下几种系统类型:
]
]
cflags = [ "-Wno-error" ]
cflags = [ "-Wno-error" ]
}
}
```
```
4.
acts目录下增加编译选项(BUILD.gn)样例:
4.
acts目录下增加编译选项(BUILD.gn)样例:
...
@@ -581,55 +581,91 @@ OpenHarmony支持如下几种系统类型:
...
@@ -581,55 +581,91 @@ OpenHarmony支持如下几种系统类型:
用例编写语法采用 jasmine 的标准语法,格式支持ES6格式。
用例编写语法采用 jasmine 的标准语法,格式支持ES6格式。
1.
规范用例目录:测试用例存储到entry/src/main/js/test目录。
**以FA 模式为例:**
1.
规范用例目录:测试用例存储到 src/main/js/test目录。
```
```
├── BUILD.gn
├── BUILD.gn
│ └──entry
├── Test.json # 资源依赖hap不需要Test.json文件
│ │ └──src
├── signature
│ │ │ └──main
│ └──openharmony_sx.p7b # 签名工具
│ │ │ │ └──js
└──src
│ │ │ │ │ └──default
│ └──main
│ │ │ │ │ │ └──pages
│ │ └──js
│ │ │ │ │ │ │ └──index
│ │ │ └──MainAbility
│ │ │ │ │ │ │ │ └──index.js # 入口文件
│ │ │ │ └──app.js
│ │ │ │ │ └──test # 测试代码存放目录
│ │ │ │ └──pages
│ │ │ └── resources # hap资源存放目录
│ │ │ │ │ └──index
│ │ │ └── config.json # hap配置文件
│ │ │ │ │ │ └──index.js
│ │ │ └──test # 测试代码存放目录
│ │ │ │ │ └──List.test.js
│ │ │ │ │ └──Ability.test.js
│ │ │ └──TestAbility # 测试框架入口模板文件,添加后无需修改
│ │ │ │ └──app.js
│ │ │ │ └──pages
│ │ │ │ │ └──index
│ │ │ │ │ │ └──index.js
│ │ │ └──TestRunner # 测试框架入口模板文件,添加后无需修改
│ │ │ │ └──OpenHarmonyTestRunner.js
│ └── resources # hap资源存放目录
│ └── config.json # hap配置文件
```
```
2.
index.js示例
2.
OpenHarmonyTestRunner.js 示例
```
//加载js 测试框架
import AbilityDelegatorRegistry from '@ohos.application.abilityDelegatorRegistry'
...
export default {
...
onRun() {
console.log('OpenHarmonyTestRunner onRun run')
var abilityDelegatorArguments = AbilityDelegatorRegistry.getArguments()
var abilityDelegator = AbilityDelegatorRegistry.getAbilityDelegator()
var testAbilityName = abilityDelegatorArguments.parameters['-p'] + '.MainAbility'
var cmd = 'aa start -d 0 -a ' + testAbilityName + ' -b ' + abilityDelegatorArguments.bundleName
...
}
};
```
3.
index.js示例
```
```
// 拉起js测试框架,加载测试用例
import {Core, ExpectExtend} from 'deccjsunit/index'
export default {
export default {
data: {
...
title: ""
},
onInit() {
this.title = this.$t('strings.world');
},
onShow() {
onShow() {
console.info('onShow finish')
console.info('onShow finish!')
const core = Core.getInstance()
const expectExtend = new ExpectExtend({
'id': 'extend'
})
core.addService('expect', expectExtend)
core.init()
const configService = core.getDefaultService('config')
configService.setConfig(this)
require('../../../test/List.test')
core.execute()
},
onReady() {
},
},
...
}
}
```
```
3.
单元测试用例示例
4.
app.js示例
```
//加载测试用例
import { Hypium } from '@ohos/hypium'
import testsuite from '../test/List.test'
export default {
onCreate() {
console.info('TestApplication onCreate');
var abilityDelegator = AbilityDelegatorRegistry.getAbilityDelegator()
var abilityDelegatorArguments = AbilityDelegatorRegistry.getArguments()
console.info('start run testcase!!!')
Hypium.hypiumTest(abilityDelegator, abilityDelegatorArguments, testsuite)
},
...
};
```
5.
单元测试用例示例
```
```
// Example1: 使用HJSUnit进行单元测试
// Example1: 使用HJSUnit进行单元测试
...
@@ -643,6 +679,210 @@ OpenHarmony支持如下几种系统类型:
...
@@ -643,6 +679,210 @@ OpenHarmony支持如下几种系统类型:
```
```
FA_JS 模式测试模块下用例配置文件(BUILD.gn)样例:
```
import("//test/xts/tools/build/suite.gni")
ohos_js_hap_suite("ActsDemoTest") {
hap_profile = "./src/main/config.json"
deps = [
":hjs_demo_js_assets",
":hjs_demo_resources",
]
certificate_profile = "./signature/openharmony_sx.p7b" //签名文件
hap_name = "ActsDemoTest" //测试套件,以Acts开头,以Test结尾,采用驼峰式命名
part_name = "..." //部件
subsystem_name = "..." //子系统
}
ohos_js_assets("hjs_demo_js_assets") {
js2abc = true
hap_profile = "./src/main/config.json"
source_dir = "./src/main/js"
}
ohos_resources("hjs_demo_resources") {
sources = [ "./src/main/resources" ]
hap_profile = "./src/main/config.json"
}
```
FA_TS 模式测试模块下用例配置文件(BUILD.gn)样例:
```
import("//test/xts/tools/build/suite.gni")
ohos_js_hap_suite("ActsDemoTest") {
hap_profile = "./src/main/config.json"
deps = [
":ace_demo_ets_assets",
":ace_demo_ets_resources",
":ace_demo_ets_test_assets",
]
ets2abc = true
certificate_profile = "./signature/openharmony_sx.p7b" //签名文件
hap_name = "ActsDemoTest" //测试套件,以Acts开头,以Test结尾,采用驼峰式命名
part_name = "..." //部件
subsystem_name = "..." //子系统
}
ohos_js_assets("ace_demo_ets_assets") {
source_dir = "./src/main/ets/MainAbility"
}
ohos_js_assets("ace_demo_ets_test_assets") {
source_dir = "./src/main/ets/TestAbility"
}
ohos_resources("ace_demo_ets_resources") {
sources = [ "./src/main/resources" ]
hap_profile = "./src/main/config.json"
}
```
以Stage 模式为例
**
1.
规范用例目录:测试用例存储到 src/main/js/test目录。
```
├── BUILD.gn # 配置文件
├── Test.json # 资源依赖hap不需要Test.json文件
├── signature
│ └──openharmony_sx.p7b # 签名工具
├── AppScope
│ └──resource
│ └──app.json
├── entry
│ └──src
│ │ └──main
│ │ │ └──ets
│ │ │ │ └──test # 测试代码存放目录
│ │ │ │ │ └──List.test.ets
│ │ │ │ │ └──Ability.test.ets
│ │ │ │ └──MainAbility
│ │ │ │ │ └──MainAbility.ts
│ │ │ │ │ └──pages
│ │ │ │ │ │ └──index
│ │ │ │ │ │ │ └──index.ets
│ │ │ │ └──TestAbility
│ │ │ │ │ └──TestAbility.ts # 测试用例启动入口 ability
│ │ │ │ │ └──pages
│ │ │ │ │ │ └──index.ets
│ │ │ │ └──Application
│ │ │ │ │ └──AbilityStage.ts
│ │ │ │ └──TestRunner # 测试框架入口模板文件,添加后无需修改
│ │ │ │ │ └──OpenHarmonyTestRunner.js
│ │ └── resources # hap资源存放目录
│ │ └── module.json # hap配置文件
```
2.
OpenHarmonyTestRunner.ts 示例
【注】在TestRunner目录下的 OpenHarmonyTestRunner.ts 文件中的 async onRun() 方法下存在拉起测试套入口xxxAbility的cmd 命令:
例如:
var cmd = 'aa start -d 0 -a TestAbility' + ' -b ' + abilityDelegatorArguments.bundleName
需与module.json中 "abilities" 下的 "name" 字段保持一致,保证拉起的是我们需要的测试入口。
```
import TestRunner from '@ohos.application.testRunner'
import AbilityDelegatorRegistry from '@ohos.application.abilityDelegatorRegistry'
...
export default class OpenHarmonyTestRunner implements TestRunner {
...
async onRun() {
console.log('OpenHarmonyTestRunner onRun run')
abilityDelegatorArguments = AbilityDelegatorRegistry.getArguments()
abilityDelegator = AbilityDelegatorRegistry.getAbilityDelegator()
var testAbilityName = abilityDelegatorArguments.bundleName + '.TestAbility'
let lMonitor = {
abilityName: testAbilityName,
onAbilityCreate: onAbilityCreateCallback,
};
abilityDelegator.addAbilityMonitor(lMonitor, addAbilityMonitorCallback)
var cmd = 'aa start -d 0 -a TestAbility' + ' -b ' + abilityDelegatorArguments.bundleName
...
}
};
```
3.
index.ets示例
```
import router from '@ohos.router';
@Entry
@Component
struct Index {
aboutToAppear(){
console.info("start run testcase!!!!")
}
build() {
...
}
}
```
4.
app.js示例
```
//加载测试用例
import Ability from '@ohos.application.Ability'
import AbilityDelegatorRegistry from '@ohos.application.abilityDelegatorRegistry'
import { Hypium } from '@ohos/hypium'
import testsuite from '../test/List.test'
export default class TestAbility extends Ability {
onCreate(want, launchParam) {
console.log('TestAbility onCreate')
var abilityDelegator: any
abilityDelegator = AbilityDelegatorRegistry.getAbilityDelegator()
var abilityDelegatorArguments: any
abilityDelegatorArguments = AbilityDelegatorRegistry.getArguments()
console.info('start run testcase!!!')
Hypium.hypiumTest(abilityDelegator, abilityDelegatorArguments, testsuite)
}
...
};
```
Stage 模式测试模块下用例配置文件(BUILD.gn)样例:
```
import("//test/xts/tools/build/suite.gni")
ohos_js_hap_suite("ActsDemoTest") {
hap_profile = "/src/main/module.json"
js_build_mode = "debug"
deps = [
":edm_js_assets",
":edm_resources",
]
ets2abc = true
certificate_profile = "signature/openharmony_sx.p7b" //签名文件
hap_name = "ActsDemoTest" //测试套件,以Acts开头,以Test结尾,采用驼峰式命名
subsystem_name = "customization" //子系统
part_name = "enterprise_device_management" //部件
}
ohos_app_scope("edm_app_profile") {
app_profile = "AppScope/app.json"
sources = [ "AppScope/resources" ]
}
ohos_js_assets("edm_js_assets") {
source_dir = "/src/main/ets"
}
ohos_resources("edm_resources") {
sources = [ "/src/main/resources" ]
deps = [ ":edm_app_profile" ]
hap_profile = "/src/main/module.json"
}
```
### JS语言用例编译打包指导(适用于标准系统)<a name="section445519106559"></a>
### JS语言用例编译打包指导(适用于标准系统)<a name="section445519106559"></a>
hap包编译请参考
[
标准系统 JS用例源码编译Hap包指导
](
https://gitee.com/openharmony/xts_acts/wikis/%E6%A0%87%E5%87%86%E7%B3%BB%E7%BB%9F%20JS%E7%94%A8%E4%BE%8B%E6%BA%90%E7%A0%81%E7%BC%96%E8%AF%91Hap%E5%8C%85%E6%8C%87%E5%AF%BC%20?sort_id=4427112
)
。
hap包编译请参考
[
标准系统 JS用例源码编译Hap包指导
](
https://gitee.com/openharmony/xts_acts/wikis/%E6%A0%87%E5%87%86%E7%B3%BB%E7%BB%9F%20JS%E7%94%A8%E4%BE%8B%E6%BA%90%E7%A0%81%E7%BC%96%E8%AF%91Hap%E5%8C%85%E6%8C%87%E5%AF%BC%20?sort_id=4427112
)
。
...
@@ -650,12 +890,26 @@ hap包编译请参考 [标准系统 JS用例源码编译Hap包指导](https://gi
...
@@ -650,12 +890,26 @@ hap包编译请参考 [标准系统 JS用例源码编译Hap包指导](https://gi
### 全量编译指导(适用于标准系统)<a name="section159801435165220"></a>
### 全量编译指导(适用于标准系统)<a name="section159801435165220"></a>
1.
全量编译
1.
全量编译
test/xts/acts目录下执行编译命令:
test/xts/acts目录下执行编译命令:
```
./build.sh suite=acts system_size=standard ```
```
./build.sh suite=acts system_size=standard ```
测试用例输出目录:out/release/suites/acts/testcases
2. 单个子系统编译
测试框架&用例整体输出目录:out/release/suites/acts(编译用例时会同步编译测试套执行框架)
test/xts/acts目录下执行编译命令:
```
./build.sh suite=acts system_size=standard target_subsystem=××××
```
3. 单模块编译
test/xts/acts目录下执行编译命令:
```
./build.sh suite=acts system_size=standard target_subsystem=××××
./build.sh suite=acts system_size=standard suite=xxx
suite 后面添加的是BUILD.gn 中ohos_js_hap_suite模板的命名
```
测试用例输出目录:out/rk3568/suites/acts/testcases
测试框架&用例整体输出目录:out/rk3568/suites/acts(编译用例时会同步编译测试套执行框架)
### 全量用例执行指导(适用于小型系统、标准系统)<a name="section159801435165220"></a>
### 全量用例执行指导(适用于小型系统、标准系统)<a name="section159801435165220"></a>
...
@@ -673,14 +927,27 @@ Windows工作台下安装python3.7及以上版本,确保工作台和测试设
...
@@ -673,14 +927,27 @@ Windows工作台下安装python3.7及以上版本,确保工作台和测试设
用例执行
用例执行
1. 在Windows工作台上,找到从Linux服务器上拷贝下来的测试套件用例目录,在Windows命令窗口进入对应目录,直接执行acts\run.bat。
1. 在Windows工作台上,找到从Linux服务器上拷贝下来的测试套件用例目录,在Windows命令窗口进入对应目录,直接执行acts\run.bat。
2. 界面启动后,输入用例执行指令。
2. 界面启动后,输入用例执行指令。
全量执行:```run acts ```
全量执行:```run acts ```
模块执行(具体模块可以查看\acts\testcases\):```run –l ActsSamgrTest ```
模块执行(具体模块可以查看\acts\testcases\):```run –l ActsSamgrTest ```
单包执行(具体模块可以查看\acts\testcases\):(适用于OH驱动)
```
run -l uitestActs -ta class:UiTestCase#testChecked
uitestActs: 测试hap
UiTestCase: testsuite
testChecked: testcase
```
3.
查看测试报告。
3.
查看测试报告。
进入acts\reports\,获取当前的执行记录,打开“summary_report.html”可以获取到测试报告。
进入acts
\r
eports
\,
获取当前的执行记录,打开“summary_report.html”可以获取到测试报告。
## 相关仓<a name="section1371113476307"></a>
## 相关仓<a name="section1371113476307"></a>
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录