自动化您的node.js应用程序
#javascript #node #devops #cicd

您是一个node.js开发人员,希望简化您的测试过程吗?自动测试可以是确保您的应用程序没有错误并按预期运行的好方法。这篇博客文章将概述Node.js应用程序的自动测试和入门的提示。

自动测试

自动测试是软件开发的关键组成部分,它有助于在发布产品之前确保产品的质量。自动测试是通过对其进行运行测试来检查软件应用程序的准确性和正确性的过程。与手动测试不同,自动测试会反复执行,以确保代码按预期工作。可以为单位测试,集成测试,系统测试,性能测试等进行自动测试。通过使用自动测试工具,例如摩卡,柴等(在Node.js中),开发人员可以轻松创建自动化测试以检查其应用程序的功能。自动测试也可用于确保代码无漏洞并有效地生产。

了解Node.js中的单元测试

nodejs unittests单元测试是一种软件测试方法,在其中孤立地测试了软件应用程序的单个单元或组件,以确保它们按预期工作。在Node.js应用程序中,单元测试是开发过程的重要方面,因为它有助于尽早识别和修复错误,从而使应用程序更稳定且易于维护。单元测试还有助于连续集成和部署,使开发人员可以自信地更改代码库。 node.js中的单元测试的流行库包括开玩笑,摩卡和柴。

这些测试框架为编写和运行测试提供了各种工具,使开发人员更容易为其应用程序编写和维护测试。建议为应用程序的所有主要功能编写单元测试,以确保应用程序可以按预期运行,并防止在以后的更新中进行回归。此外,可以使用node.js并行运行测试以获得更快的结果。单元测试是确保您的代码在部署生产之前按预期工作的好方法,其优势包括更可靠的代码和更少的错误。

自动测试的优势

node.js中的自动测试很重要,原因有几个:

  • 提高代码质量:自动化测试有助于在开发过程的早期捕获错误和错误,从而提高了代码的整体质量。
  • 节省时间:自动测试可以反复,迅速运行,与手动测试相比节省了时间和精力。

  • 促进连续集成和部署:自动化测试有助于确保对代码库的更改不会破坏现有功能,从而使集成更改和部署新版本变得更加容易。

    <

    <

    < /li>
  • 改进协作:可以在团队成员之间共享自动测试,以确保每个人都对代码有相同的理解。

  • 增加了信心:自动测试提供了一个安全网,可确保更改代码库不会破坏现有功能,从而使开发人员有信心轻松进行更改。

    < /li>

总而言之,自动测试对于确保Node.js应用程序的质量和稳定性至关重要,并有助于节省开发过程中的时间和精力。

CI服务器的需求

need for ci我们需要连续集成(CI)服务器来重复运行自动测试。连续集成是一种软件开发实践,在该实践中,开发人员将代码定期集成到共享存储库中,并且自动化构建和测试在结果更改上进行。 CI的目的是尽早在开发过程中尽早解决集成和兼容性问题,并向开发人员提供快速反馈。这有助于确保代码始终保持稳定和可部署。

由于涉及的复杂性,构建自己的CI服务器根本不是一个不错的选择。因此,我们始终可以在市场上使用已经可用的CI/CD工具/平台,例如线束,Circleci,Github Action等。

通过连续集成运行自动测试,通常遵循以下步骤

  • 设置版本控制系统(例如GIT)来管理代码更改并存储存储库。
  • 配置与版本控制系统集成并在将更改推到存储库时自动运行测试的CI工具。
  • 编写代码的自动测试,并将它们与代码一起存储在存储库中。这些测试应涵盖代码的各个方面,例如其功能,性能和安全性。
  • 设置CI工具以每次将更改推向存储库时运行测试。这可以通过定义管道或构建配置来完成,该配置指定构建,测试和部署代码的步骤。
  • 将更改推向存储库时,CI工具会自动构建代码,运行测试并报告结果。如果测试失败,CI工具可以提醒开发人员并防止将代码部署到解决问题之前。
  • 不断监视自动测试的结果,并使用反馈来改进代码和CI过程。 今天,我们将向您展示如何使用安全带进行自动测试。

先决条件

教程

步骤1:克隆并在本地运行样本应用程序

使用以下命令克隆sample notes application

git clone https://github.com/pavanbelagatti/notes-app-cicd.git

然后,使用以下命令输入代码文件夹

cd notes-app-cicd

使用以下命令安装项目所需的依赖项

npm install

使用以下命令运行应用程序

node app.js

您应该看到您的应用程序在本地终端http://localhost:3000/
上运行 app running

步骤2:本地运行测试

我们已经在项目中添加了简单的摩卡测试用例。
转到示例应用程序的根并运行以下命令

npm test 

您应该看到测试用例通过。
testing

步骤3:设置连续集成(CI)工具以自动进行测试

安全带是一个具有CI模块的复杂软件交付平台,可帮助开发人员立即建立连续集成。

注册free Harness cloud account。注册并验证您的帐户后,将向您提供欢迎消息和项目创建。继续创建一个项目。
welcome message

将名称添加到项目中,保存并继续。
about project

选择连续集成模块并启动免费计划。
harness continuous integration

您可以开始创建第一个管道。
Harness pipeline

单击“启动”并连接存在应用程序代码的SCM工具/平台。
code repo

您的SCM集成连接成功了,请选择存储库并开始管道配置。
repo list

由于我们正在使用node.js应用程序,让我们选择node.js,然后继续创建管道。
configure pipeline

单击“创建管道”后,您将看到Pipeline Studio,如下所示,默认设置。
pipeline studio

您可以单击“构建节点应用”以查看管道配置。您应该看到以下页面。
build node app

如果您单击“执行”选项卡下的“构建节点”应用程序,则应在默认情况下查看为您配置的运行步骤。
configure run step

您可以在“命令”选项卡中看到节点和npm命令。

您可以保留提到的命令或替换,并仅添加重要命令。

我们将保持npm installnpm test

应用更改,保存配置并运行管道。您应该看到通过测试。
run pipeline

all steps passing

您可以使用“运行”步骤在管道中添加更多测试。
例如,我们还添加一个测试以在Node.js模块中查找漏洞。我们可以通过添加auditjs命令来做到这一点。
再添加一个“运行”步骤,并在下面配置步骤,

audit modules

以下是“命令”选项卡中使用的命令,

npm install -g auditjs
auditjs iq --version

步骤4:自动化测试

每当有人将代码推到您的存储库时,添加触发器以重复运行测试。

您可以在管道工作室中单击“触发器”选项卡并添加所需的触发器。
add trigger

add new trigger

单击“添加新触发器”,然后从触发器列表中选择GitHub。
triggers list

添加所需的详细信息并继续。如您所见,我们正在选择“推动”作为活动。因此,每当我们的存储库发生任何推动时,管道都应触发并运行测试。
trigger setup

您可以自定义和实验扳机。最后,您可以在“触发器”选项卡中看到配置的触发器。
listing trigger

现在,每当任何人推动任何代码更改您的主存储库时,管道都会自动触发并运行测试。

让我们走并在您的readme.md文件中添加一些文本,一旦添加文本,就会触发构建并运行指定的测试。您可以看到构建被触发。
build triggered

最后,您可以查看测试是否通过。

恭喜!我们成功为样本应用程序配置了CI管道。