未验证 提交 3d8da962 编写于 作者: O openharmony_ci 提交者: Gitee

!4920 XTS测试套适配新框架

Merge pull request !4920 from chengxingzhen/master
{ {
"description": "Configuration for hjunit demo Tests", "description": "Configuration for hjunit demo Tests",
"driver": { "driver": {
"type": "JSUnitTest", "type": "OHJSUnitTest",
"test-timeout": "500000", "test-timeout": "600000",
"package": "com.example.abilitymultiinstance", "bundle-name": "com.example.abilitymultiinstance",
"shell-timeout": "300000" "module-name": "phone",
"shell-timeout": "600000",
"testcase-timeout":"30000"
}, },
"kits": [ "kits": [
{ {
......
/*
* Copyright (c) 2022 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import TestRunner from '@ohos.application.testRunner'
import AbilityDelegatorRegistry from '@ohos.application.abilityDelegatorRegistry'
var abilityDelegator = undefined
var abilityDelegatorArguments = undefined
function translateParamsToString(parameters) {
const keySet = new Set([
'-s class', '-s notClass', '-s suite', '-s it',
'-s level', '-s testType', '-s size', '-s timeout',
'-s dryRun'
])
let targetParams = '';
for (const key in parameters) {
if (keySet.has(key)) {
targetParams = `${targetParams} ${key} ${parameters[key]}`
}
}
return targetParams.trim()
}
async function onAbilityCreateCallback() {
console.log("onAbilityCreateCallback");
}
async function addAbilityMonitorCallback(err: any) {
console.info("addAbilityMonitorCallback : " + JSON.stringify(err))
}
export default class OpenHarmonyTestRunner implements TestRunner {
constructor() {
}
onPrepare() {
console.info("OpenHarmonyTestRunner OnPrepare ")
}
async onRun() {
console.log('OpenHarmonyTestRunner onRun run')
abilityDelegatorArguments = AbilityDelegatorRegistry.getArguments()
abilityDelegator = AbilityDelegatorRegistry.getAbilityDelegator()
var testAbilityName = abilityDelegatorArguments.bundleName + '.MainAbility'
let lMonitor = {
abilityName: testAbilityName,
onAbilityCreate: onAbilityCreateCallback,
};
abilityDelegator.addAbilityMonitor(lMonitor, addAbilityMonitorCallback)
var cmd = 'aa start -d 0 -a com.example.abilitymultiinstance.MainAbility' + ' -b ' + abilityDelegatorArguments.bundleName
cmd += ' '+translateParamsToString(abilityDelegatorArguments.parameters)
var debug = abilityDelegatorArguments.parameters["-D"]
if (debug == 'true')
{
cmd += ' -D'
}
console.info('cmd : '+cmd)
abilityDelegator.executeShellCommand(cmd,
(err: any, d: any) => {
console.info('executeShellCommand : err : ' + JSON.stringify(err));
console.info('executeShellCommand : data : ' + d.stdResult);
console.info('executeShellCommand : data : ' + d.exitCode);
})
console.info('OpenHarmonyTestRunner onRun end')
}
};
\ No newline at end of file
...@@ -12,34 +12,21 @@ ...@@ -12,34 +12,21 @@
* See the License for the specific language governing permissions and * See the License for the specific language governing permissions and
* limitations under the License. * limitations under the License.
*/ */
import file from '@system.file';
import {Core, ExpectExtend, InstrumentLog, ReportExtend} from "deccjsunit/index"
import testsuite from "../../test/List.test.ets"
import AbilityDelegatorRegistry from '@ohos.application.abilityDelegatorRegistry'
import { Hypium } from '@ohos/hypium'
import testsuite from '../../test/List.test'
@Entry @Entry
@Component @Component
struct Index { struct Index {
aboutToAppear(){ aboutToAppear(){
console.info("start run testcase!!!!") let abilityDelegator: any
const core = Core.getInstance() abilityDelegator = AbilityDelegatorRegistry.getAbilityDelegator()
const expectExtend = new ExpectExtend({ let abilityDelegatorArguments: any
'id': 'extend' abilityDelegatorArguments = AbilityDelegatorRegistry.getArguments()
}) console.info('start run testcase!!!')
core.addService('expect', expectExtend) Hypium.hypiumTest(abilityDelegator, abilityDelegatorArguments, testsuite)
const reportExtend = new ReportExtend(file)
core.addService('report', reportExtend)
core.init()
core.subscribeEvent('task', reportExtend)
const configService = core.getDefaultService('config')
console.info('parameters---->' + JSON.stringify(globalThis.abilityWant.parameters))
globalThis.abilityWant.parameters.timeout = 70000;
configService.setConfig(globalThis.abilityWant.parameters)
testsuite(globalThis.abilityContext)
core.execute()
} }
build() { build() {
......
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
* See the License for the specific language governing permissions and * See the License for the specific language governing permissions and
* limitations under the License. * limitations under the License.
*/ */
import {describe, beforeAll, beforeEach, afterEach, afterAll, it, expect} from "deccjsunit/index" import {describe, beforeAll, beforeEach, afterEach, afterAll, it, expect} from "@ohos/hypium"
import commonEvent from '@ohos.commonEvent' import commonEvent from '@ohos.commonEvent'
let subscriberInfoMultiInstance = { let subscriberInfoMultiInstance = {
...@@ -100,7 +100,6 @@ export default function abilityTest(abilityContext) { ...@@ -100,7 +100,6 @@ export default function abilityTest(abilityContext) {
console.log('ACTS_AbilityMultiInstance_Single_0100====<begin'); console.log('ACTS_AbilityMultiInstance_Single_0100====<begin');
let subscriber; let subscriber;
let id; let id;
let result;
let checkEventResults = ["AppA:onCreateonForegroundonAcceptWantCalledId1", "AppB:onCreateonForeground", let checkEventResults = ["AppA:onCreateonForegroundonAcceptWantCalledId1", "AppB:onCreateonForeground",
"AppA:onForegroundonAcceptWantCalledId1"]; "AppA:onForegroundonAcceptWantCalledId1"];
let checkIndex = 0; let checkIndex = 0;
......
...@@ -15,8 +15,8 @@ ...@@ -15,8 +15,8 @@
import abilityTest from './Ability.test.ets' import abilityTest from './Ability.test.ets'
export default function testsuite(context) { export default function testsuite() {
abilityTest(context) abilityTest(globalThis.abilityContext)
} }
\ No newline at end of file
...@@ -25,9 +25,11 @@ ohos_js_hap_suite("ActsAbilityDelegatorCaseTest") { ...@@ -25,9 +25,11 @@ ohos_js_hap_suite("ActsAbilityDelegatorCaseTest") {
part_name = "ability_runtime" part_name = "ability_runtime"
} }
ohos_js_assets("hjs_demo_js_assets") { ohos_js_assets("hjs_demo_js_assets") {
source_dir = "./entry/src/main/js/default" js2abc = true
hap_profile = "./entry/src/main/config.json"
source_dir = "./entry/src/main/js"
} }
ohos_resources("hjs_demo_resources") { ohos_resources("hjs_demo_resources") {
sources = [ "./entry/src/main/js/resources" ] sources = [ "./entry/src/main/resources" ]
hap_profile = "./entry/src/main/config.json" hap_profile = "./entry/src/main/config.json"
} }
{ {
"description": "Configuration for hjunit demo Tests", "description": "Configuration for hjunit demo Tests",
"driver": { "driver": {
"type": "JSUnitTest", "type": "OHJSUnitTest",
"test-timeout": "60000", "test-timeout": "300000",
"package": "com.amsst.actsabilitydelegatorcasetest", "bundle-name": "com.amsst.actsabilitydelegatorcasetest",
"shell-timeout": "60000" "package-name": "com.amsst.actsabilitydelegatorcasetest",
"shell-timeout": "300000",
"testcase-timeout":"30000"
}, },
"kits": [ "kits": [
{ {
......
...@@ -37,12 +37,27 @@ ...@@ -37,12 +37,27 @@
} }
], ],
"name": "com.amsst.actsabilitydelegatorcasetest.MainAbility", "name": "com.amsst.actsabilitydelegatorcasetest.MainAbility",
"srcLanguage": "js",
"srcPath": "MainAbility",
"icon": "$media:icon", "icon": "$media:icon",
"description": "$string:mainability_description", "description": "$string:mainability_description",
"label": "$string:app_name", "label": "$string:app_name",
"type": "page", "type": "page",
"launchType": "standard", "launchType": "standard",
"visible": true "visible": true
},
{
"orientation": "unspecified",
"formsEnabled": false,
"name": ".TestAbility",
"srcLanguage": "js",
"srcPath": "TestAbility",
"icon": "$media:icon",
"description": "$string:TestAbility_desc",
"label": "$string:TestAbility_label",
"type": "page",
"visible": true,
"launchType": "singleton"
} }
], ],
"reqPermissions": [ "reqPermissions": [
...@@ -85,7 +100,21 @@ ...@@ -85,7 +100,21 @@
"designWidth": 720, "designWidth": 720,
"autoDesignWidth": false "autoDesignWidth": false
} }
},
{
"pages": [
"pages/index/index"
],
"name": ".TestAbility",
"window": {
"designWidth": 720,
"autoDesignWidth": false
}
}
],
"testRunner": {
"name": "OpenHarmonyTestRunner",
"srcPath": "TestRunner"
} }
]
} }
} }
...@@ -12,32 +12,20 @@ ...@@ -12,32 +12,20 @@
* See the License for the specific language governing permissions and * See the License for the specific language governing permissions and
* limitations under the License. * limitations under the License.
*/ */
import router from '@system.router';
@Entry import AbilityDelegatorRegistry from '@ohos.application.abilityDelegatorRegistry'
@Component import { Hypium } from '@ohos/hypium'
struct Second { import testsuite from '../test/List.test'
private content: string = "Second Page"
build() { export default {
Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) { onCreate() {
Text(`${this.content}`) console.info('TestApplication onCreate')
.fontSize(50) var abilityDelegator = AbilityDelegatorRegistry.getAbilityDelegator()
.fontWeight(FontWeight.Bold) var abilityDelegatorArguments = AbilityDelegatorRegistry.getArguments()
Button() { console.info('start run testcase!!!')
Text('back to index') Hypium.hypiumTest(abilityDelegator, abilityDelegatorArguments, testsuite)
.fontSize(20) },
.fontWeight(FontWeight.Bold) onDestroy() {
}.type(ButtonType.Capsule) console.info("TestApplication onDestroy");
.margin({
top: 20
})
.backgroundColor('#0D9FFB')
.onClick(() => {
router.back()
})
} }
.width('100%') };
.height('100%')
}
}
\ No newline at end of file
{
"strings": {
"hello": "Hello",
"world": "World"
},
"Files": {
}
}
\ No newline at end of file
{
"strings": {
"hello": "您好",
"world": "世界"
},
"Files": {
}
}
\ No newline at end of file
/*
* Copyright (c) 2021 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
.container {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
left: 0px;
top: 0px;
width: 100%;
height: 100%;
}
.title {
font-size: 60px;
text-align: center;
width: 100%;
height: 40%;
margin: 10px;
}
.btn {
width: 50%;
height: 100px;
font-size: 40px;
}
@media screen and (device-type: phone) and (orientation: landscape) {
.title {
font-size: 60px;
}
}
@media screen and (device-type: tablet) and (orientation: landscape) {
.title {
font-size: 100px;
}
}
\ No newline at end of file
<!--
Copyright (c) 2021 Huawei Device Co., Ltd.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<div class="container" onswipe="touchMove">
<text class="title">
{{ $t('strings.hello') }} {{title}}
</text>
<input class="btn" type="button" value="{{ $t('strings.next') }}" onclick="onclick"></input>
</div>
...@@ -12,53 +12,15 @@ ...@@ -12,53 +12,15 @@
* See the License for the specific language governing permissions and * See the License for the specific language governing permissions and
* limitations under the License. * limitations under the License.
*/ */
import file from '@system.file';
import {Core, ExpectExtend, InstrumentLog, ReportExtend} from "deccjsunit/index" export default {
import testsuite from "../../test/List.test.ets" data: {
title: ""
@Entry },
@Component onInit() {
struct Index { this.title = this.$t('strings.world');
}
}
aboutToAppear() {
console.info("start run testcase!!!!")
const core = Core.getInstance()
const expectExtend = new ExpectExtend({
'id': 'extend'
})
core.addService('expect', expectExtend)
const reportExtend = new ReportExtend(file)
core.addService('report', reportExtend)
core.init()
core.subscribeEvent('task', reportExtend)
const configService = core.getDefaultService('config')
console.info('parameters---->' + JSON.stringify(globalThis.abilityWant.parameters))
globalThis.abilityWant.parameters['timeout'] = 10000;
configService.setConfig(globalThis.abilityWant.parameters)
testsuite(globalThis.abilityContext)
core.execute()
}
build() {
Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) {
Text('Test App')
.fontSize(50)
.fontWeight(FontWeight.Bold)
Button() {
Text('next page')
.fontSize(25)
.fontWeight(FontWeight.Bold)
}.type(ButtonType.Capsule)
.margin({
top: 20
})
.backgroundColor('#0D9FFB')
.onClick(() => {
})
}
.width('100%')
.height('100%')
}
}
\ No newline at end of file
/*
* Copyright (c) 2022 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import AbilityDelegatorRegistry from '@ohos.application.abilityDelegatorRegistry'
function translateParamsToString(parameters) {
const keySet = new Set([
'-s class', '-s notClass', '-s suite', '-s itName',
'-s level', '-s testType', '-s size', '-s timeout',
'-s package', '-s dryRun'
])
let targetParams = '';
for (const key in parameters) {
if (keySet.has(key)) {
targetParams += ' ' + key + ' ' + parameters[key]
}
}
return targetParams.trim()
}
export default {
onPrepare() {
console.info('OpenHarmonyTestRunner OnPrepare')
},
onRun() {
console.log('OpenHarmonyTestRunner onRun run')
var abilityDelegatorArguments = AbilityDelegatorRegistry.getArguments()
var abilityDelegator = AbilityDelegatorRegistry.getAbilityDelegator()
var testAbilityName = abilityDelegatorArguments.parameters['-p'] + '.TestAbility'
var cmd = 'aa start -d 0 -a ' + testAbilityName + ' -b ' + abilityDelegatorArguments.bundleName
cmd += ' ' + translateParamsToString(abilityDelegatorArguments.parameters)
var debug = abilityDelegatorArguments.parameters["-D"]
console.info('debug value : '+debug)
if (debug == 'true')
{
cmd += ' -D'
}
console.info('cmd : '+cmd)
abilityDelegator.executeShellCommand(cmd, (err, data) => {
console.info('executeShellCommand : err : ' + JSON.stringify(err));
console.info('executeShellCommand : data : ' + data.stdResult);
console.info('executeShellCommand : data : ' + data.exitCode);
})
}
};
...@@ -12,12 +12,15 @@ ...@@ -12,12 +12,15 @@
* See the License for the specific language governing permissions and * See the License for the specific language governing permissions and
* limitations under the License. * limitations under the License.
*/ */
import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from 'deccjsunit/index' import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from '@ohos/hypium'
import featureAbility from '@ohos.ability.featureAbility' import featureAbility from '@ohos.ability.featureAbility'
import abilityDelegatorRegistry from '@ohos.application.abilityDelegatorRegistry' import abilityDelegatorRegistry from '@ohos.application.abilityDelegatorRegistry'
import bundle from '@ohos.bundle' import bundle from '@ohos.bundle'
describe('ActsStServiceAbilityTest', function () { let result;
export default function actsStServiceAbilityTest() {
describe('ActsStServiceAbilityTest', function () {
let gSetTimeout = 1000 let gSetTimeout = 1000
beforeAll(async (done) => { beforeAll(async (done) => {
console.debug('= ACTS_AbeforeAll 1812 ====<begin'); console.debug('= ACTS_AbeforeAll 1812 ====<begin');
...@@ -57,17 +60,15 @@ describe('ActsStServiceAbilityTest', function () { ...@@ -57,17 +60,15 @@ describe('ActsStServiceAbilityTest', function () {
console.log('ACTS_AExecuteShellCommand_Callback_0100====<end mySetTimeout') console.log('ACTS_AExecuteShellCommand_Callback_0100====<end mySetTimeout')
done(); done();
} }
var cmd = 'pwd' var cmd = 'echo test'
var escresult = '/system/app'
var AbilityDelegator = abilityDelegatorRegistry.getAbilityDelegator() var AbilityDelegator = abilityDelegatorRegistry.getAbilityDelegator()
AbilityDelegator.executeShellCommand(cmd, (err, data) => { AbilityDelegator.executeShellCommand(cmd, (err, data) => {
clearTimeout(currentAlertTimeout); clearTimeout(currentAlertTimeout);
console.log('ACTS_AExecuteShellCommand_Callback_0100 - executeShellCommand: start ') console.log('ACTS_AExecuteShellCommand_Callback_0100 data: ' + JSON.stringify(data))
result = data.stdResult.replace(/[\r\n]/g,"");
console.log('ACTS_AExecuteShellCommand_Callback_0100 stdResult = ' + data.stdResult) console.log('ACTS_AExecuteShellCommand_Callback_0100 stdResult = ' + data.stdResult)
var i = data.stdResult.indexOf('/system/app'); expect(result).assertEqual('test');
console.log('ACTS_AExecuteShellCommand_Callback_0100 query string i = ' + i);
expect(i == -1).assertEqual(false);
console.log('ACTS_AExecuteShellCommand_Callback_0100 exitCode = ' + data.exitCode) console.log('ACTS_AExecuteShellCommand_Callback_0100 exitCode = ' + data.exitCode)
expect(data.exitCode).assertEqual(0); expect(data.exitCode).assertEqual(0);
...@@ -99,16 +100,15 @@ describe('ActsStServiceAbilityTest', function () { ...@@ -99,16 +100,15 @@ describe('ActsStServiceAbilityTest', function () {
console.log('ACTS_AExecuteShellCommand_Callback_0200====<end mySetTimeout') console.log('ACTS_AExecuteShellCommand_Callback_0200====<end mySetTimeout')
done(); done();
} }
var cmd = 'pwd' var cmd = 'echo test'
var AbilityDelegator = abilityDelegatorRegistry.getAbilityDelegator() var AbilityDelegator = abilityDelegatorRegistry.getAbilityDelegator()
AbilityDelegator.executeShellCommand(cmd, 1).then((data) => { AbilityDelegator.executeShellCommand(cmd, 1).then((data) => {
clearTimeout(currentAlertTimeout); clearTimeout(currentAlertTimeout);
console.log('ACTS_AExecuteShellCommand_Promise_0100 - executeShellCommand: start ') console.log('ACTS_AExecuteShellCommand_Promise_0100 - executeShellCommand: start ')
result = data.stdResult.replace(/[\r\n]/g,"");
console.log('ACTS_AExecuteShellCommand_Promise_0100 stdResult = ' + data.stdResult) console.log('ACTS_AExecuteShellCommand_Promise_0100 stdResult = ' + data.stdResult)
var i = data.stdResult.indexOf('/system/app'); expect(result).assertEqual('test');
console.log('ACTS_AExecuteShellCommand_Callback_0100 query string i = ' + i);
expect(i == -1).assertEqual(false);
console.log('ACTS_AExecuteShellCommand_Promise_0100 exitCode = ' + data.exitCode) console.log('ACTS_AExecuteShellCommand_Promise_0100 exitCode = ' + data.exitCode)
expect(data.exitCode).assertEqual(0); expect(data.exitCode).assertEqual(0);
...@@ -379,25 +379,25 @@ describe('ActsStServiceAbilityTest', function () { ...@@ -379,25 +379,25 @@ describe('ActsStServiceAbilityTest', function () {
*/ */
it('ACTS_ATestRunner_0200', 0, async function (done) { it('ACTS_ATestRunner_0200', 0, async function (done) {
console.debug('ACTS_ATestRunner_0200====<begin'); console.debug('ACTS_ATestRunner_0200====<begin');
let sa = '-b';
try { try {
var AbilityDelegatorArgs = abilityDelegatorRegistry.getArguments() var AbilityDelegatorArgs = abilityDelegatorRegistry.getArguments()
console.debug("ACTS_ATestRunner_0200====>getArguments is====>" + JSON.stringify(AbilityDelegatorArgs)); console.debug("ACTS_ATestRunner_0200====>getArguments is====>" + JSON.stringify(AbilityDelegatorArgs));
console.debug("ACTS_ATestRunner_0200====bundleName>" + JSON.stringify(AbilityDelegatorArgs.bundleName)); expect(AbilityDelegatorArgs.bundleName).assertEqual('com.amsst.actsabilitydelegatorcasetest')
expect(AbilityDelegatorArgs.bundleName).assertEqual(undefined) expect(AbilityDelegatorArgs.parameters["-b"]).assertEqual("com.amsst.actsabilitydelegatorcasetest")
console.debug("ACTS_ATestRunner_0200====parameters>" + JSON.stringify(AbilityDelegatorArgs.parameters)); expect(AbilityDelegatorArgs.parameters["-p"]).assertEqual("com.amsst.actsabilitydelegatorcasetest")
expect(AbilityDelegatorArgs.parameters).assertEqual(undefined) expect(AbilityDelegatorArgs.parameters["-s timeout"]).assertEqual("30000")
console.debug("ACTS_ATestRunner_0200====testCaseNames>" expect(AbilityDelegatorArgs.parameters["-s unittest"]).assertEqual("OpenHarmonyTestRunner")
+ JSON.stringify(AbilityDelegatorArgs.testCaseNames)); expect(AbilityDelegatorArgs.parameters["-w"]).assertEqual("300000")
expect(AbilityDelegatorArgs.testCaseNames).assertEqual(undefined) expect(AbilityDelegatorArgs.parameters["moduleName"]).assertEqual("")
console.debug("ACTS_ATestRunner_0200====testRunnerClassName>" expect(AbilityDelegatorArgs.testCaseNames).assertEqual('')
+ JSON.stringify(AbilityDelegatorArgs.testRunnerClassName)); expect(AbilityDelegatorArgs.testRunnerClassName).assertEqual('OpenHarmonyTestRunner')
expect(AbilityDelegatorArgs.testRunnerClassName).assertEqual(undefined)
console.debug('ACTS_ATestRunner_0200====<end'); console.debug('ACTS_ATestRunner_0200====<end');
done(); done();
} catch (error) { } catch (error) {
console.log("ACTS_ATestRunner_0200 : error = " + error); console.log("ACTS_ATestRunner_0200 : error = " + error);
console.debug('ACTS_ATestRunner_0200====<end catch (error)');
done(); done();
} }
}) })
}) })
\ No newline at end of file }
\ No newline at end of file
...@@ -12,4 +12,8 @@ ...@@ -12,4 +12,8 @@
* See the License for the specific language governing permissions and * See the License for the specific language governing permissions and
* limitations under the License. * limitations under the License.
*/ */
require('./ActsAbilityDelegatorCaseTest.test.js') import actsStServiceAbilityTest from './ActsAbilityDelegatorCaseTest.test.js'
\ No newline at end of file
export default function testsuite() {
actsStServiceAbilityTest()
}
\ No newline at end of file
...@@ -7,6 +7,14 @@ ...@@ -7,6 +7,14 @@
{ {
"name": "mainability_description", "name": "mainability_description",
"value": "JS_Phone_Empty Feature Ability" "value": "JS_Phone_Empty Feature Ability"
},
{
"name": "TestAbility_desc",
"value": "description"
},
{
"name": "TestAbility_label",
"value": "label"
} }
] ]
} }
\ No newline at end of file
{ {
"description": "Configuration for hjunit demo Tests", "description": "Configuration for hjunit demo Tests",
"driver": { "driver": {
"type": "JSUnitTest", "type": "OHJSUnitTest",
"test-timeout": "120000", "test-timeout": "600000",
"package": "com.example.actsgetdisplayidtest", "bundle-name": "com.example.actsgetdisplayidtest",
"shell-timeout": "60000" "module-name": "phone",
"shell-timeout": "600000",
"testcase-timeout":"30000"
}, },
"kits": [ "kits": [
{ {
......
/*
* Copyright (c) 2022 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import TestRunner from '@ohos.application.testRunner'
import AbilityDelegatorRegistry from '@ohos.application.abilityDelegatorRegistry'
var abilityDelegator = undefined
var abilityDelegatorArguments = undefined
function translateParamsToString(parameters) {
const keySet = new Set([
'-s class', '-s notClass', '-s suite', '-s it',
'-s level', '-s testType', '-s size', '-s timeout',
'-s dryRun'
])
let targetParams = '';
for (const key in parameters) {
if (keySet.has(key)) {
targetParams = `${targetParams} ${key} ${parameters[key]}`
}
}
return targetParams.trim()
}
async function onAbilityCreateCallback() {
console.log("onAbilityCreateCallback");
}
async function addAbilityMonitorCallback(err: any) {
console.info("addAbilityMonitorCallback : " + JSON.stringify(err))
}
export default class OpenHarmonyTestRunner implements TestRunner {
constructor() {
}
onPrepare() {
console.info("OpenHarmonyTestRunner OnPrepare ")
}
async onRun() {
console.log('OpenHarmonyTestRunner onRun run')
abilityDelegatorArguments = AbilityDelegatorRegistry.getArguments()
abilityDelegator = AbilityDelegatorRegistry.getAbilityDelegator()
var testAbilityName = abilityDelegatorArguments.bundleName + '.MainAbility'
let lMonitor = {
abilityName: testAbilityName,
onAbilityCreate: onAbilityCreateCallback,
};
abilityDelegator.addAbilityMonitor(lMonitor, addAbilityMonitorCallback)
var cmd = 'aa start -d 0 -a com.example.actsgetdisplayidtest.MainAbility' + ' -b ' + abilityDelegatorArguments.bundleName
cmd += ' '+translateParamsToString(abilityDelegatorArguments.parameters)
var debug = abilityDelegatorArguments.parameters["-D"]
if (debug == 'true')
{
cmd += ' -D'
}
console.info('cmd : '+cmd)
abilityDelegator.executeShellCommand(cmd,
(err: any, d: any) => {
console.info('executeShellCommand : err : ' + JSON.stringify(err));
console.info('executeShellCommand : data : ' + d.stdResult);
console.info('executeShellCommand : data : ' + d.exitCode);
})
console.info('OpenHarmonyTestRunner onRun end')
}
};
\ No newline at end of file
...@@ -12,10 +12,9 @@ ...@@ -12,10 +12,9 @@
* See the License for the specific language governing permissions and * See the License for the specific language governing permissions and
* limitations under the License. * limitations under the License.
*/ */
import file from '@system.file'; import AbilityDelegatorRegistry from '@ohos.application.abilityDelegatorRegistry'
import { Hypium } from '@ohos/hypium'
import {Core, ExpectExtend, InstrumentLog, ReportExtend} from "deccjsunit/index" import testsuite from '../../test/List.test'
import testsuite from "../../test/List.test.ets"
@Entry @Entry
...@@ -23,23 +22,12 @@ import testsuite from "../../test/List.test.ets" ...@@ -23,23 +22,12 @@ import testsuite from "../../test/List.test.ets"
struct Index { struct Index {
aboutToAppear(){ aboutToAppear(){
console.info("start run testcase!!!!") let abilityDelegator: any
const core = Core.getInstance() abilityDelegator = AbilityDelegatorRegistry.getAbilityDelegator()
const expectExtend = new ExpectExtend({ let abilityDelegatorArguments: any
'id': 'extend' abilityDelegatorArguments = AbilityDelegatorRegistry.getArguments()
}) console.info('start run testcase!!!')
core.addService('expect', expectExtend) Hypium.hypiumTest(abilityDelegator, abilityDelegatorArguments, testsuite)
const reportExtend = new ReportExtend(file)
core.addService('report', reportExtend)
core.init()
core.subscribeEvent('task', reportExtend)
const configService = core.getDefaultService('config')
console.info('parameters---->' + JSON.stringify(globalThis.abilityWant.parameters))
globalThis.abilityWant.parameters.timeout = 70000;
configService.setConfig(globalThis.abilityWant.parameters)
testsuite(globalThis.abilityContext)
core.execute()
} }
build() { build() {
......
...@@ -13,7 +13,7 @@ ...@@ -13,7 +13,7 @@
* limitations under the License. * limitations under the License.
*/ */
import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from "deccjsunit/index" import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from '@ohos/hypium'
import commonEvent from '@ohos.commonEvent' import commonEvent from '@ohos.commonEvent'
import missionManager from '@ohos.application.missionManager' import missionManager from '@ohos.application.missionManager'
import appManager from '@ohos.application.appManager' import appManager from '@ohos.application.appManager'
......
...@@ -15,8 +15,8 @@ ...@@ -15,8 +15,8 @@
import abilityTest from './Ability.test.ets' import abilityTest from './Ability.test.ets'
export default function testsuite(context) { export default function testsuite() {
abilityTest(context) abilityTest(globalThis.abilityContext)
} }
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册