Nyc 和 Istanbul 与 Travis 集成

分享此内容
分享此内容

Nyc 是一个命令行工具,用于使用 Istanbul 覆盖率(istanbul 命令行工具的继任者)对代码进行检测。让我们看看如何将 nyc 集成到我们的构建中并试用它!

Istanbul 的工作原理

Istanbul 使用行计数器对您的 ES5 和 ES2015+ JavaScript 代码进行检测,以便您可以跟踪单元测试对代码库的测试程度。

Nyc 的工作原理

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 和 Istanbul 中强制执行覆盖

 nyc 很棒的一点是它允许您继承其他配置,也就是说,您已经可以想象它的灵活性。在 package.json 节、.nycrc 或 YAML 文件中使用 extends 键。然后,您可以添加您想要的特定配置选项,这些选项不在该特定共享配置中。

{
  "extends": "@istanbuljs/nyc-config-typescript",
  "all": true,
  "check-coverage": true
}

现在让我们开始一个运行中的演示!

MongoDB

在您的 .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

安装 nyc 并使用模拟凭据连接到 Mongo

您需要在项目根目录中运行以下命令:

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 测试您的项目了,让我们运行:

nyc npm run test

如果成功,您应该在 Travis 中看到以下内容。

如果您在本地运行它,您可以获得 Travis 构建中显示内容的 GUI 版本,看起来像这样。

结论

这是将 nyc 和 Travis 结合使用的最简单方法。这是由我(Montana Mendy)制作的,和往常一样,如果您有任何问题,请发送电子邮件至 [email protected]

祝您构建愉快!

© 版权所有 2024,保留所有权利
© 版权所有 2024,保留所有权利
© 版权所有 2024,保留所有权利