单元测试之jest框架环境配置

背景:继上次jest问题之旅后,重新回顾项目的总结
上次弯路走太多了。。。。

babel6环境下配置jest:
1:jest依赖包的版本控制为23.x.x,低于23时会缺失方法,大于等于24时会报错。这里不需要再安装babel-jest了,因为在安装jest时自动安装了jest所依赖的其他包。
在babel6环境下,jest版本大于等于24时报错如下。

2:如果项目是TS项目,则还需要jest对.ts文件进行解析,因此需要安装ts-jest用于转义.ts文件。ts-jest的版本和jest一致。
3:然后上述安装的依赖在配置文件中进行配置

//package.json
{
    ...
    "scripts":{
        "test": "jest --config test/unit/jest.conf.js",//--config后面为配置文件位置
    }
    ...
}
//jest.conf.js
const path = require('path')
module.exports = {
  verbose: true,
  testURL: 'http://localhost/',
  rootDir: path.resolve(__dirname, '../../'),
  moduleFileExtensions: [
    'js',
    'json',
    'vue',
    'ts'
  ],
  moduleNameMapper: {
    '^@\/(.*?\.?(js|vue)?|)$': '<rootDir>/src/$1', // @路径转换,例如:@/components/Main.vue -> rootDir/src/components/Main.vue
    '\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$': '<rootDir>/test/unit/__mocks__/fileMock.js', // 模拟加载静态文件
    '\\.(css|less|scss|sass)$': '<rootDir>/test/unit/__mocks__/styleMock.js'  // 模拟加载样式文件
  },
  testMatch: [ // 匹配测试用例的文件
    '<rootDir>/test/unit/specs/*.spec.(ts|js)'
  ],
  transform: {
    '^.+\\.jsx?$': '<rootDir>/node_modules/babel-jest',//转义js
    '^.+\\.tsx?$': '<rootDir>/node_modules/ts-jest'//转义ts
  },
  testPathIgnorePatterns: [
    '<rootDir>/test/e2e'
  ],
  coverageDirectory: '<rootDir>/test/unit/coverage', // 覆盖率报告的目录
  collectCoverageFrom: [ // 测试报告想要覆盖那些文件,目录,前面加!是避开这些文件
    // '!src/main.js',
    // '!src/router/index.js',
    // '!**/node_modules/**'
  ]
}

问题解析:
当报错出现在依赖包中时,问题一般是依赖包的版本不匹配,当报错发生在测试文件中时,问题一般是缺少某个解析的依赖包。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值