如何设置JavaScript测试覆盖率

115 阅读2分钟

Coveralls是用来显示你的JavaScript应用程序的测试覆盖率的。让我们看看如何将其用于你的JavaScript项目,该项目已经在GitHub上,并且由于之前的CI设置教程,已经连接到你的Travis CI。首先,用你的GitHub账户在Coveralls.io注册。其次,同步你的GitHub仓库,并切换一个特定的仓库来用于代码覆盖。

testing coverage

之后,点击 "详细信息 "按钮,将你的coveralls_repo_token 复制到剪贴板。由于你不想直接把这个私有令牌添加到你的公共项目中,你可以在Travis CI仪表板上把它添加到你的仓库的环境变量中。你可以通过你的Travis版本库的设置选项找到它。

testing coveralls environment variables

然后,为你的项目创建一个新的环境变量。你可以把它命名为coveralls_repo_token。

testing travis continuous integration

最后但并非最不重要的是,按照以下方式修改你的项目。首先,在命令行上安装coveralls库到你的dev依赖项中:

npm install --save-dev coveralls

第二,在你的package.json文件中添加一个新的脚本,将Coveralls引入其中:

"scripts": {
  "start": "webpack serve --config ./webpack.config.js --mode development",
  "test": "jest --config ./jest.config.json",
  "coveralls": "cat ./coverage/lcov.info | node node_modules/.bin/coveralls"
},

第三,扩展你的Travis CI配置,将coveralls的信息报告给你的coveralls.io仪表盘。

language: node_js
node_js:  - stable
install:  - npm install
script:  - npm run test -- --coverage
after_script:  - COVERALLS_REPO_TOKEN=$coveralls_repo_token npm run coveralls

就这样了。通过添加、提交和推送你的修改到GitHub,你可以看到报告在Coveralls.io仪表盘上的显示情况。

testing travis continuous integration

也许你可以看到,覆盖率并不高。那么就看你如何增加测试来提高项目的覆盖率了。

最后但并非最不重要的是,你可以在GitHub的README.md文件中加入花哨的Coveralls徽章。你可以在Coveralls的仪表板上找到徽章,将其嵌入markdown。

# My JavaScript Project

[![Coverage Status](https://coveralls.io/repos/github/rwieruch/my-javascript-project/badge.svg?branch=master)](https://coveralls.io/github/rwieruch/my-javascript-project?branch=master)

请确保把URL改成你的仓库的URL。

如果你使用Jest作为测试运行器,你可以为你的JavaScript项目执行一定的覆盖率。你还可以从你的源代码中包括和排除特定的文件夹/文件,以便从测试覆盖率报告中添加/删除。

module.exports = {
  ...
  coverageThreshold: {
    global: {
      functions: 95,
      lines: 95
    }
  },
  collectCoverageFrom: [
    '<rootDir>/src/**/*.js',
    '!<rootDir>/src/pages/**/*.js'
  ]
};

这就是关于JavaScript项目中测试覆盖率的所有内容。