网易首页 > 网易号 > 正文 申请入驻

Node.js自动化单元测试 使用 Drone CI 与mocha框架

0
分享至

每日分享最新,最流行的软件开发知识与最新行业趋势,希望大家能够一键三连,多多支持,跪求关注,点赞,留言。

关于如何使用 Drone CI 进行持续集成的分步说明,以简单的 Node.js 应用程序和 Mocha 作为我们的单元测试框架。

单元测试是任何软件开发生命周期的基本实践,无法避免。在当今的现代云原生空间中,由于有如此多的可用平台和工具,自动化测试部分的需求量很大。这种测试自动化可以通过持续集成过程来完成。持续集成是 DevOps 仙境中必不可少的方法。这个过程可以帮助开发人员测试和构建他们的代码,以确保没有任何问题,并且可以通过审批者的简单批准自信地集成到主分支中。持续集成过程可以通过 Drone CI 无缝自动化,以测试、构建并为您的开发人员提供信心。通过持续集成,开发人员可以在手动测试上节省大量时间,并将宝贵的时间集中在构建客户需要的丰富功能上。今天,我们将了解如何使用 Drone CI 进行持续集成,以一个简单的 Node.js 应用程序和 Mocha 作为我们的单元测试框架。

先决条件
  1. 从官网下载并安装 Node.js

  2. Drone CI 设置

  3. 安装 Docker 桌面

教程
第 1 步:为您的应用程序文件创建一个文件夹

mkdir myapp

cd myapp

第 2 步:编写一个简单的 Node.js 应用程序

通过运行以下命令来初始化您的项目:

npm init

这将创建一个package.json文件,其中包含您为项目下载的所有依赖项。

第 3 步:安装 Express

注意: Express 是 Node.js Web 应用程序框架

npm install express --save

第 4 步:使用以下代码创建一个名为 app.js 的文件

var express = require('express'); var app = express(); app.get('/', function (req, res) { res.send('Hello World!'); }); app.listen(3000, function () { console.log('Example app listening on port 3000!'); });

第 5 步:运行应用程序

node app.js

Mocha 单元测试框架

Mocha 测试框架是一个用于测试 JavaScript 代码的 JavaScript 库。它是一个开源框架,为开发人员提供了很大的灵活性。它有一个简单的 API,可用于测试同步和异步代码。它还具有链接、回调、承诺等功能。它还提供了一个用于并行运行测试的 API,从而加快了为大型代码库编写测试的过程。Mocha 测试框架可以使用 npm(节点包管理器)安装。

第 6 步:将测试文件夹添加到您的应用程序目录

注意: 这是我们所有测试所在的地方。

创建一个名为“test”的文件夹,并在其下创建一个文件test.js.

您可以将 Mocha 和 Chai 安装为 Node.js 测试框架的一部分。

npm install --save-dev mocha

package.json在特定项目的文件中添加 Mocha 作为依赖项。

第 7 步:将以下基本 Mocha 字符串测试规范添加到您的 test.js 文件中

var assert = require('assert'); describe('Basic Mocha String Test', function () { it('should return number of charachters in a string', function () { assert.equal("Hello".length, 4); }); it('should return first charachter of the string', function () { assert.equal("Hello".charAt(0), 'H'); }); });

第 8 步:检查您的 package.json 文件

该package.json文件应包含 Mocha 部分,应如下所示:

"scripts": { "test": "mocha" }

第 9 步:使用 Mocha 运行测试

转到您的应用程序目录并运行以下命令:

npm test

我的输出在下面共享:

它失败了,因为 Mocha 运行时似乎出现了一些错误。你可以看到一个失败。

示例项目的源代码在此处共享。

Node.js 应用程序的持续集成

到目前为止,我们在本地测试了 Node.js 应用程序,该应用程序可以通过 CI 服务器实现自动化。Drone CI 是我们首选的 CI 平台,我们已经知道如何在本地运行。它是开源的,易于在几分钟内安装。

每次开发人员将代码推送到应用程序的主分支时,使用像 Drone 这样的 CI 服务器可以帮助公司在教客户之前发现错误并纠正错误和错误。

让我们继续接下来的步骤。

第 10 步:将您的应用程序推送到 GitHub

我们应该确保没有文件或存储库丢失。在我们的 GitHub 存储库中,我们仍然需要添加两个文件:

  1. .drone.yml作为 Drone 配置文件的一部分。通过将.drone.yml文件放在 git 存储库的根目录中来配置管道

  2. Dockerfile 构建和发布 Docker 镜像作为我们构建管道中的一个步骤

添加一个简单的 Dockerfile,因为它包含构建容器的说明。

FROM node:14-alpine ENV NODE_ENV development # Add a work directory WORKDIR /app # Cache and Install dependencies COPY package.json . RUN npm install # Copy app files COPY . . # Expose port EXPOSE 3000 # Start the app CMD [ "node", "app.js" ]

该.drone.yml文件如下所示:

kind: pipeline type: docker name: default platform: os: linux arch: arm64 steps: - name: test image: node commands: - npm install - npm test - name: docker image: plugins/docker settings: # registry: docker.io repo: pavansa/myapp username: from_secret: docker_username password: from_secret: docker_password tags: - pavans

.drone.yml通过在 git 存储库的根目录中放置一个文件来配置管道。YAML 语法旨在易于阅读和表达,以便查看存储库的任何人都可以理解工作流程。

第 11 步:打开无人机仪表板并同步您的新仓库

设置秘密:

同步存储库后,您应该会在下面看到所有存储库并选择我们正在构建的存储库:

接下来,通过添加秘密来激活存储库:

完成上述所有步骤后,单击“NEW BUILD”按钮,开始构建管道:

在这里,您将看到 Drone 通过构建代码并针对我们为应用程序代码指定的测试对其进行测试来发挥它的魔力。

请记住我们已经在我们的应用程序中添加了一个简单的 Mocha 测试框架。

如果测试通过,它应该继续将新构建的映像推送到我们的 DockerHub,如我们在.drone.yml步骤中指定的那样。

如果测试失败,应用程序管道不应自行构建和停止。

让我们看看我们的构建发生了什么:

正如预期的那样,管道在没有执行后续步骤的情况下失败了。

您可以返回并更正错误,Drone 会自动运行管道;如果一切正常,它会按预期将新构建推送到 Docker Hub。

当一切都通过后,去检查你在.drone.yml. 它应该把图像推到那里。我们在pavans 中给出的标签,你可以在这里看到。

恭喜!我们已经成功构建了一个简单的 Node.js 应用程序,添加了一个简单的 Mocha 测试,使用 Drone 进行持续集成,并将新镜像推送到 Docker Hub。

无人机桌面

等等,你们中的一些人可能想知道是否有无需在笔记本电脑上设置 Drone CI 即可立即使用的 Drone 扩展。好吧,我们有它给你。您只需要在您的笔记本电脑/计算机上安装 Docker Desktop,然后使用以下命令,您就可以在一分钟内轻松设置 Drone 扩展。

docker extension install drone/drone-ci-docker-extension:latest

这非常简单。导入管道;在这里,我们将导入上面的示例。

系统将提示您搜索并添加包含.drone.yml文件的存储库。所以让我们继续添加我们的回购。

然后,单击Actions下的Run Pipeline按钮以触发您的管道。

单击“运行管道”按钮后,系统将提示您添加运行管道所需的一些信息,例如要使用的机密文件、需要的环境变量以及要由管道运行的阶段。

在成功通过测试时,我们指定了两个简单的步骤,即测试和推送到 Docker。我们没有环境变量文件,所以将其留空,并且我们有一个包含 DockerHub 机密的机密文件,选择它。选择步骤作为测试、Docker 和机密文件后,单击运行选项卡。

如果指定的步骤通过,您将看到管道成功执行。

您还可以查看仪表板中运行的步骤。

恭喜您通过 Drone CI Docker 扩展成功运行您的 CI 管道。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
谭咏麟病愈后首次公开现身,瘦到青筋毕现感慨声线不好

谭咏麟病愈后首次公开现身,瘦到青筋毕现感慨声线不好

小萝卜天下事
2023-07-21 21:57:53
HBO年度重磅大剧终于上线,第一集就火力全开!

HBO年度重磅大剧终于上线,第一集就火力全开!

热荐电影
2024-06-17 23:45:17
你见过最坏的男生到底有多坏?简直毫无底线,就该拉出去凌迟处死

你见过最坏的男生到底有多坏?简直毫无底线,就该拉出去凌迟处死

娱乐洞察点点
2024-06-12 02:08:40
女子化身背包客,穷游西藏,回家后发现自己怀孕

女子化身背包客,穷游西藏,回家后发现自己怀孕

风吟笑烟雨
2023-02-21 08:05:02
王思聪母系势力:舅舅林友疑似两度杀妻,母亲林宁2000亿救万达

王思聪母系势力:舅舅林友疑似两度杀妻,母亲林宁2000亿救万达

BenSir本色说
2024-06-17 22:02:16
男人为什么“痴迷”摸女人胸?

男人为什么“痴迷”摸女人胸?

南风山
2024-06-18 00:44:34
阿南德最新预言!2024年,美国动乱,日本地震,中国将有大事发生

阿南德最新预言!2024年,美国动乱,日本地震,中国将有大事发生

飞云如水
2024-06-10 22:25:48
为何都说女生30如狼40如虎50吸土?

为何都说女生30如狼40如虎50吸土?

喜马拉雅主播暮霭
2024-06-18 08:29:23
恳请中国队退出!巴黎街头屎尿横飞,画面不忍直视,还开奥运会

恳请中国队退出!巴黎街头屎尿横飞,画面不忍直视,还开奥运会

风起云间
2024-06-03 22:23:29
不敢告诉对象的秘密!网友分享的也太炸裂了

不敢告诉对象的秘密!网友分享的也太炸裂了

石辰搞笑日常
2024-06-18 07:30:12
岁月不败美人!刘亦菲65岁母亲在意大利被偶遇,气质优雅颜值超高

岁月不败美人!刘亦菲65岁母亲在意大利被偶遇,气质优雅颜值超高

柠檬有娱乐
2024-06-17 11:35:45
女主任得罪局长被免职,有一天,做市长的舅舅来局里找她

女主任得罪局长被免职,有一天,做市长的舅舅来局里找她

乔生桂
2024-06-16 16:46:54
港媒:美军核潜艇并不是“撞山”,而是被解放军发现后“伏击”!

港媒:美军核潜艇并不是“撞山”,而是被解放军发现后“伏击”!

黑天鹅洞察
2024-06-14 11:51:11
女排头牌太暖心 朱婷赛后脱掉外套递给新星 后者受宠若惊

女排头牌太暖心 朱婷赛后脱掉外套递给新星 后者受宠若惊

厝边人侃体育
2024-06-17 20:54:28
美国最害怕的不是歼20,也不是高超音速导弹,而是中国的电动汽车

美国最害怕的不是歼20,也不是高超音速导弹,而是中国的电动汽车

说天说地说实事
2024-06-18 07:02:36
今日!CCTV5直播C罗率葡萄牙男足出战欧洲杯+NBA总决赛,5+转排球

今日!CCTV5直播C罗率葡萄牙男足出战欧洲杯+NBA总决赛,5+转排球

晚池
2024-06-18 01:43:00
5月份的经济数据喜忧参半,供给与国企增长,民企与需求低迷

5月份的经济数据喜忧参半,供给与国企增长,民企与需求低迷

火星宏观
2024-06-18 06:00:02
当年说出“不是你撞的,干嘛去扶”的法官,18年后,他过得怎样?

当年说出“不是你撞的,干嘛去扶”的法官,18年后,他过得怎样?

高山非凡创作
2024-05-17 09:32:19
武汉卷烟厂录93人,武汉理工大学登顶,华科无人,同济土木也来了

武汉卷烟厂录93人,武汉理工大学登顶,华科无人,同济土木也来了

一口娱乐
2024-06-18 00:26:10
世联赛总决赛各大球队到泰国了 全主力 泰妹热情迎接 欢迎中国女排

世联赛总决赛各大球队到泰国了 全主力 泰妹热情迎接 欢迎中国女排

林子说事
2024-06-17 21:17:12
2024-06-18 09:12:49
墨谈科技
墨谈科技
业务数码玩家.无聊的博主
2995文章数 567关注度
往期回顾 全部

科技要闻

低价“6·18”没有狂欢

头条要闻

外媒炒作:中国首次将核弹头置于高度战备状态

头条要闻

外媒炒作:中国首次将核弹头置于高度战备状态

体育要闻

24年后,他们终于又在欧洲杯赢球了

娱乐要闻

上影节红毯:倪妮好松弛,娜扎吸睛

财经要闻

广汽也想“掀桌子”了?

汽车要闻

传奇新篇章 全新一代大众迈腾来了

态度原创

健康
教育
旅游
游戏
公开课

晚餐不吃or吃七分饱,哪种更减肥?

教育要闻

难倒全班同学的一道小学数学思维训练题,符号的运算规矩

旅游要闻

游客放狗进赛里木湖追天鹅,景区回应!

经典JRPG游戏《拔天海拓史》两部重制版登陆Steam

公开课

近视只是视力差?小心并发症

无障碍浏览 进入关怀版