uni-app 自动化测试辅助插件,按文档配置jest.config.js后依旧无法使用自定义基座测试
uni-app 自动化测试辅助插件,按文档配置jest.config.js后依旧无法使用自定义基座测试
测试过的手机:
荣耀v30 鸿蒙3
示例代码:
jest.config.js文件代码
module.exports = {
testTimeout: 10000,
reporters: [
'default'
],
watchPathIgnorePatterns: ['/node_modules/', '/dist/', '/.git/'],
moduleFileExtensions: ['js', 'json'],
rootDir: __dirname,
testMatch: ["<rootDir>/pages/**/*test.[jt]s?(x)"],
testPathIgnorePatterns: ['/node_modules/'],
testEnvironmentOptions: {
compile: true,
"app-plus": { // 需要安装 HBuilderX
android: {
appid: "__UNI__AA3CE00", //自定义基座测试需配置manifest.json中的appid
package: "uni.UNIAA3CE00", //自定义基座测试需配置Android包名
executablePath: "E:\\Hello uni-app\\unpackage\\debug\\android_debug.apk" // apk 目录或自定义调试基座包路径
}
}
}
}
env.js文件代码
module.exports = {
"is-custom-runtime": false,
"compile": true,
"h5": {
"options": {
"headless": true
},
"executablePath": ""
},
"mp-weixin": {
"port": 9420,
"account": "",
"args": "",
"cwd": "",
"launch": true,
"teardown": "disconnect",
"remote": false,
"executablePath": ""
},
"app-plus": {
"android": {
"id": "192.168.10.5",
"executablePath": "E:\\HBuilderX\\HBuilderX\\plugins\\launcher\\base\\android_base.apk"
},
"version": "E:\\HBuilderX\\HBuilderX\\plugins\\launcher\\base\\version.txt",
"ios": {
"id": "",
"executablePath": ""
}
}
}
操作步骤:
下载Hello uniapp模版,打包自定义基座,修改jest.config.js的appid、package、executablePath三个属性,运行自动化插件到android
预期结果:
使用自定义基座进行自动化测试
实际结果:
使用默认基座进行自动化测试
bug描述:
按文档配置jest.config.js的appid、package、executablePath三个属性后依旧不会启动自定义基座进行自动化测试。在Hello uni-app中依旧有此问题
更多关于uni-app 自动化测试辅助插件,按文档配置jest.config.js后依旧无法使用自定义基座测试的实战教程也可以访问 https://www.itying.com/category-93-b0.html
怎么样 拟解决了吗
更多关于uni-app 自动化测试辅助插件,按文档配置jest.config.js后依旧无法使用自定义基座测试的实战教程也可以访问 https://www.itying.com/category-93-b0.html
https://ask.dcloud.net.cn/article/41545这有解决办法。记得更新插件到最新版本,在env.js里改,不要在jest.config.js里改 这是相关的文档https://uniapp.dcloud.net.cn/worktile/auto/hbuilderx-extension/#env-js-uni-test-custom-env
在使用 Uni-app 进行自动化测试时,如果按照文档配置了 jest.config.js
后仍然无法使用自定义基座进行测试,可能是由于以下原因导致的。以下是一些常见问题和解决方法:
1. 确保正确配置 jest.config.js
- 确保
jest.config.js
中的配置项正确无误,特别是preset
和testEnvironment
。 - 示例配置:
module.exports = { preset: '[@vue](/user/vue)/cli-plugin-unit-jest', testEnvironment: 'jsdom', transform: { '^.+\\.vue$': 'vue-jest', '^.+\\.js$': 'babel-jest', }, moduleNameMapper: { '^@/(.*)$': '<rootDir>/src/$1', }, testMatch: ['**/tests/unit/**/*.spec.js'], };
2. 检查自定义基座的配置
- 确保自定义基座已经正确生成,并且在测试时能够正常加载。
- 如果使用 HBuilderX 生成自定义基座,确保生成的基座文件路径正确,并且在测试脚本中正确引用。
3. 模拟 Uni-app 的运行环境
- Jest 默认是在 Node.js 环境中运行,而 Uni-app 的某些 API(如
uni.request
)依赖于真实的运行环境。 - 使用
jest.mock
或jest.spyOn
来模拟 Uni-app 的 API。 - 示例:
jest.mock('uni-app', () => ({ request: jest.fn(() => Promise.resolve({ data: {} })), }));
4. 检查依赖版本
- 确保
jest
、vue-jest
、babel-jest
等依赖的版本与 Uni-app 兼容。 - 检查
package.json
中的依赖版本是否满足要求。
5. 运行测试时指定环境
- 如果测试脚本依赖于特定的环境变量,确保在运行测试时正确设置环境变量。
- 示例:
NODE_ENV=test jest
6. 调试测试脚本
- 在测试脚本中添加
console.log
或使用调试工具(如node --inspect-brk
)来检查测试流程。 - 确保测试脚本能够正确加载自定义基座。
7. 确保测试文件结构正确
- 确保测试文件放置在正确的目录下,并且文件名符合 Jest 的匹配规则(如
*.spec.js
或*.test.js
)。 - 示例:
project/ ├── src/ ├── tests/ │ └── unit/ │ └── example.spec.js ├── jest.config.js └── package.json
8. 检查 Uni-app 的插件配置
- 如果使用了 Uni-app 的插件(如
uni-simple-router
),确保插件在测试环境中正确初始化。 - 使用
jest.mock
或手动初始化插件。
9. 参考官方文档和社区
- 查看 Uni-app 官方文档中关于自动化测试的部分,确保没有遗漏关键步骤。
- 在 Uni-app 社区或 GitHub Issues 中搜索类似问题,寻找解决方案。
10. 示例测试脚本
以下是一个简单的测试脚本示例:
import { mount } from '[@vue](/user/vue)/test-utils';
import MyComponent from '@/components/MyComponent.vue';
describe('MyComponent', () => {
it('renders correctly', () => {
const wrapper = mount(MyComponent);
expect(wrapper.text()).toContain('Hello Uni-app');
});
});