Nyc 是一个命令行工具,用于使用 Istanbul 覆盖率(istanbul 命令行工具的继任者)对代码进行检测。让我们看看如何将 nyc 集成到我们的构建中并试用它!
Istanbul 使用行计数器对您的 ES5 和 ES2015+ JavaScript 代码进行检测,以便您可以跟踪单元测试对代码库的测试程度。
Istanbul 的 nyc
命令行客户端与大多数 JavaScript 测试框架配合得很好:tap、mocha、AVA 等。 nyc
是一个命令行工具,用于使用 Istanbul 覆盖率(istanbul 命令行工具的继任者)对代码进行检测。有关更多信息,请访问 Istanbul 的网站:https://istanbul.js.org/integrations/,并单击 nyc
集成。
现在我们已经对 nyc
和 Istanbul 有了相当广泛的了解,让我们开始使用它。
您需要一些东西来开始使用它,并在 Travis 上成功运行它,这些东西是: Mongo
、 Express
、 Mocha
、 Chai
和 Jasmine
。您可以使用 npm install -g
获取它们。现在先克隆我的仓库。
git clone https://github.com/Montana/travis-nyc.git
您将在 Mongoose 下面的 app.js
文件中看到这三个变量。
useNewUrlParser: true,
useCreateIndex: true,
useFindAndModify: false
将它们删除。现在使用您的包管理器(yarn、npm)将其添加为开发依赖项: npm i -D nyc
或 yarn add -D nyc
。您可以使用 nyc
来调用 npm
脚本(假设它们没有在其中执行 nyc
),如果是这种情况,您将不得不将测试运行器替换为 Mocha。
{
"scripts": {
"test": "mocha",
"coverage": "nyc npm run test"
}
}
nyc
很棒的一点是它允许您继承其他配置,也就是说,您已经可以想象它的灵活性。在 package.json
节、.nycrc
或 YAML 文件中使用 extends 键。然后,您可以添加您想要的特定配置选项,这些选项不在该特定共享配置中。
{
"extends": "@istanbuljs/nyc-config-typescript",
"all": true,
"check-coverage": true
}
现在让我们开始一个运行中的演示!
在您的 .travis.yml
文件中,在 script:
钩子下,获取 MongoDB:
- wget -qO - https://www.mongodb.org/static/pgp/server-5.0.asc | sudo apt-key add -
- sudo apt-get install -y mongodb-org
您清楚地看到我们正在获取 Mongo 的 apt-key
,然后使用 apt-get
完成安装,确保您也安装了 gnupg
,您可以通过执行以下操作来完成:
sudo apt-get install gnupg
您需要在项目根目录中运行以下命令:
npm init --yes
npm i express mocha chai supertest nyc mongoose
根据您的节点版本,您可能需要运行:
npm install -g nyc
以确保 nyc
完全安装。现在让我们将我们的应用程序连接到我们的模拟 Mongo 服务器。
sudo systemctl start mongo
现在我们已经连接,让我们运行我们的应用程序。
node bin/www &
.travis.yml
文件这是我在完成创建后最终的 .travis.yml
文件的样子。
services:
- docker
language: node_js
node_js:
- 17
script:
- npm init --yes
- npm i express mocha chai supertest nyc mongoose
- sudo apt-get install gnupg
- wget -qO - https://www.mongodb.org/static/pgp/server-5.0.asc | sudo apt-key add -
- sudo apt-get install -y mongodb-org
- sudo systemctl start mongod
- node bin/www &
- npm install -g nyc
- nyc npm run test
我们调用 Docker 来提供服务,我们将使用 Node 版本 17,并且还开始安装 nyc
包,您会看到其余部分是如何进行的。 在 node bin/www
后加上 &
非常重要,否则您的构建将在 Travis 中卡住,这会告诉 Travis 将其作为后台进程运行。
现在您将看到此内容(或类似内容),如果 nyc
在 Travis 中成功运行。
现在,是时候使用 nyc
测试您的项目了,让我们运行:
nyc npm run test
如果成功,您应该在 Travis 中看到以下内容。
如果您在本地运行它,您可以获得 Travis 构建中显示内容的 GUI 版本,看起来像这样。
这是将 nyc
和 Travis 结合使用的最简单方法。这是由我(Montana Mendy)制作的,和往常一样,如果您有任何问题,请发送电子邮件至 [email protected]。
祝您构建愉快!