🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
[TOC] # 断言 * should.js * expect.js * Jasmine.js * chai.js # Karma 是一个基于Node.js的JavaScript测试执行过程管理工具(Test Runner)。可启动所有主流Web浏览器作为测试容器,运行时会启动一个web服务器,生成包含js源代码和js测试脚本的测试页面,运行浏览器加载测试页面,并显示测试的结果。 ## 基本配置 安装Karma ``` npm install karma --save-dev ``` 安装 jasmine、karma-jasmine、karma-chrome-launcher ``` npm install karma-jasmine karma-chrome-launcher jasmine-core --save-dev ``` 安装cli工具,启动时就不需要执行 ./node\_modules/karma/bin/karma start ``` npm install -g karma-cli ``` 生产配置文件 ``` karma init ``` 修改 karma.conf.js 部分配置 ``` files: [ 'test/**/*.js', 'tests/**/*.js' ], singleRun: true, ``` * files:浏览器要加载、观测的文件 * frameworks:指定断言库类型 * browser:指定运行的浏览器 * singleRun:开启或禁用持续集成模式。设置为true, Karma将打开浏览器,执行测试并最后退出 运行 ``` karma start ``` ## 代码覆盖率 ``` cnpm i karma-coverage -D ``` 修改配置文件 ``` preprocessors: { 'tests/**/*.js': ['coverage'] }, reporters: ['progress', 'coverage'], coverageReporter: { type : 'html', dir : './docs/coverage/' }, ``` ## ES6转换 参考自 [https://wenjs.me/p/es6-testing-workflow-with-karma](https://wenjs.me/p/es6-testing-workflow-with-karma) 安装依赖 ~~~ npm i @babel/core @babel/plugin-transform-modules-umd karma-babel-preprocessor -D ~~~ 修改 karma.config.js 配置 ~~~ preprocessors: { 'tests/**/*.js': ['coverage'] 'tests/**/*.js': ['babel','coverage'] }, ~~~ 添加 babel 配置文件 .babelrc auxiliaryCommentBefore是用在babel编译时添加istanbul忽略,代码覆盖率能够清晰展示 ~~~ { "plugins": ["@babel/plugin-transform-modules-umd"], "auxiliaryCommentBefore": "istanbul ignore next" } ~~~