92 lines
3.0 KiB
JavaScript
92 lines
3.0 KiB
JavaScript
let page;
|
||
const containsVite = process.env.UNI_CLI_PATH.includes('uniapp-cli-vite');
|
||
const isApp = process.env.UNI_PLATFORM.includes('app');
|
||
const platformInfo = process.env.uniTestPlatformInfo.toLocaleLowerCase();
|
||
const isHarmony = platformInfo.startsWith('harmony')
|
||
function createTests(pagePath, type) {
|
||
return describe(`测试页面路径: ${pagePath}`, () => {
|
||
async function toScreenshot(imgName) {
|
||
await page.waitFor(300)
|
||
const image = await program.screenshot({
|
||
deviceShot: true
|
||
});
|
||
expect(image).toSaveImageSnapshot({
|
||
customSnapshotIdentifier() {
|
||
return imgName
|
||
}
|
||
})
|
||
await page.waitFor(500);
|
||
}
|
||
if (platformInfo === 'ios_simulator 13.7') {
|
||
it('skip', async () => {
|
||
expect(1).toBe(1)
|
||
})
|
||
return
|
||
}
|
||
beforeAll(async () => {
|
||
page = await program.reLaunch(pagePath)
|
||
await page.waitFor('view');
|
||
// isHarmony不支持截图跳过
|
||
if (!isHarmony) {await toScreenshot(type)}
|
||
});
|
||
afterAll(async () => {
|
||
await page.callMethod('resetAge')
|
||
});
|
||
it('check page data', async () => {
|
||
const username = await page.$('.username');
|
||
expect(await username.text()).toEqual('用户名:foo');
|
||
const sex = await page.$('.sex');
|
||
expect(await sex.text()).toEqual('性别:男');
|
||
const age = await page.$('.age');
|
||
expect(await age.text()).toEqual('年龄:10');
|
||
const doubleAge = await page.$('.doubleAge');
|
||
expect(await doubleAge.text()).toEqual('年龄翻倍:20');
|
||
});
|
||
it('store mutations', async () => {
|
||
await page.callMethod('addAge')
|
||
const age = await page.$('.age');
|
||
expect(await age.text()).toEqual('年龄:11');
|
||
const doubleAge = await page.$('.doubleAge');
|
||
expect(await doubleAge.text()).toEqual('年龄翻倍:22');
|
||
});
|
||
it('store getters', async () => {
|
||
await page.callMethod('addAgeTen')
|
||
const age = await page.$('.age');
|
||
expect(await age.text()).toEqual('年龄:21');
|
||
const doubleAge = await page.$('.doubleAge');
|
||
expect(await doubleAge.text()).toEqual('年龄翻倍:42');
|
||
});
|
||
it('store actions', async () => {
|
||
await page.callMethod('addAgeAction')
|
||
const age = await page.$('.age');
|
||
expect(await age.text()).toEqual('年龄:41');
|
||
const doubleAge = await page.$('.doubleAge');
|
||
expect(await doubleAge.text()).toEqual('年龄翻倍:82');
|
||
});
|
||
})
|
||
}
|
||
|
||
// vue3-nvue不支持自动化测试
|
||
const nvuePath = '/pages/template/vuex-nvue/vuex-nvue'
|
||
const vuepath = '/pages/template/vuex-vue/vuex-vue'
|
||
if (containsVite) {
|
||
// vue3
|
||
if (isApp) {
|
||
createTests(vuepath, 'vue3-App-vue');
|
||
} else if (process.env.UNI_PLATFORM == 'h5') {
|
||
createTests(vuepath, 'vue3-H5-vue');
|
||
} else {
|
||
createTests(vuepath, 'vue3-Mp-vue');
|
||
}
|
||
} else {
|
||
// vue2
|
||
if (isApp) {
|
||
createTests(nvuePath, 'vue2-App-nvue');
|
||
createTests(vuepath, 'vue2-App-vue');
|
||
} else if (process.env.UNI_PLATFORM == 'h5') {
|
||
createTests(vuepath, 'vue2-H5-vue');
|
||
} else {
|
||
createTests(vuepath, 'vue2-Mp-vue');
|
||
}
|
||
}
|