作为前端开发人员,我们需要确保我们的应用程序稳定可靠并且能够与用户的需求相匹配。为了方便以及优化开发流程,自动化测试已经成为了不可或缺的一部分。 Cypress 是一款开源的自动化测试框架,能够提供强大和易于使用的测试工具和库。而 Jenkins 是一款流行的自动化构建和持续集成工具,能够大大提高开发流程的效率和可靠性。本文将介绍如何将 Cypress 与 Jenkins 集成,以实现自动化 CI/CD 的目的。
安装 Cypress
要使用 Cypress,我们首先需要安装它。打开终端窗口并输入以下命令:
npm install cypress --save-dev
这将从 npm 下载 Cypress 并将其保存在你的项目中。这个命令还会自动修改你的 package.json
文件,将 Cypress 添加到 devDependencies
中。
创建 Cypress 测试
在安装 Cypress 后,我们可以使用以下命令在项目根目录里创建一个基本测试:
$(npm bin)/cypress open
该命令将 Cypress 的测试运行器打开,你可以在其中的框架里创建你的测试用例。在测试运行器中创建文件夹 cypress/integration
,放置你的测试文件,Cypress 将会递归地遍历该文件夹并执行其中的所有测试用例。
我们可以创建一个基于 Cypress 的测试套件来测试我们的应用是否正确地完成用户的操作流程以及各个模块的功能是否正常。下面是一个示例测试套件:
-- -------------------- ---- ------- -------------------- ------- ---- ------- ---------- - --------------------- - ----------------------------------- -- ---------- --- ----- ---- --- ------ ---------- - ------------------ -------- --------------- -------- --------------------- -------------- -- ---------- ------ ----- ---- --- ------ ---------- - ------------------ -------- --------------- -------- --------------------- -------------- -------------------- -------- -------------------- -------- --------------- -------- --------------------- -------------- -- ---------- -------- -- --- -------- ------ ---------- - -------------------- -------- -------------------------- -------- -------- ------------------ ------------ -- --
该测试套件包括三个测试,分别测试添加/删除购物车,跳转到结账页面功能是否正常。
在 Jenkins 上创建任务
现在我们已经准备好使用 Jenkins 进行自动化 CI/CD 了。 首先,需要安装 Jenkins,这个过程在官方网站上有很好的文档,本文不再赘述。安装 Jenkins 后,你可以通过 http://<your-jenkins-domain>:8080
访问它。
为了在 Jenkins 上实现自动化 CI/CD,我们需要添加一个新的构建任务。我们可以通过在 Jenkins 网站的主页上点击“创建新作业”来完成这一步骤。然后,填写以下的配置:
- 作业名称(Job Name):输入一个代表该任务的名称。
- 作业类型(Type):选择自由风格软件项目。
- 源码管理(Source Code Management):选择你的代码库,支持 Git 等多种版本控制工具。
- 构建触发器(Build Triggers):选择你的任务触发条件,例如每当代码仓库发生新的提交时。
- 执行 Shell 脚本(Build Action):这里我们需要构建 Cypress 测试并输出测试结果。我们可以使用以下代码来完成此操作:
npm run test
以上命令会在 package.json
中寻找并运行名为 test
的 npm script。我们可以使用以下的 test
命令来运行 Cypress 测试:
cypress run --spec "cypress/integration/*"
该命令将运行 Cypress 并执行所有 cypress/integration
文件夹中的测试文件。测试结果将保存在 cypress/results
文件夹中。
集成 Cypress 测试与 Jenkins
现在,我们可以将 Cypress 测试集成到 Jenkins 中,以实现自动化的测试。首先,我们需要将 Cypress 运行的命令添加到前面的 Shell 脚本中。我们还需要使 Jenkins 能够访问 Chrome 浏览器以运行测试。将以下代码添加到 Jenkins 文件中:
-- -------------------- ---- ------- ----------- - ------- ------------ --- ------- - ----- ------ -- -------- ---- ------ ------------------- ---------------------- ------ ----------- ---- --- ------- ---- ----------- --- - --- --- -----------
该代码会安装依赖、配置 Chrome 并在屏幕上启动它,接着运行我们之前定义的 Cypress 利用“npm run cypress:run
”命令来测试。要完成 Cypress 集成,我们还需要将项目的测试报告存储在 .jenkins/userContent/cypress/results
文件夹中。
现在我们可以提交代码并手动启动任务了。Jenkins 将会自动安装项目的依赖并运行 Cypress 测试。测试结果将会被存储在 cypress/results 文件夹中。同时,我们还可以将 Jenkins 与版本控制工具集成,当代码库发生变化时,Jenkins 将自动运行我们的测试并生成测试报告。在确保测试通过并得出正确结果后,我们就可以自信地将应用程序部署到生产环境了。
结论
在本文中,我们介绍了如何使用 Cypress 和 Jenkins 来实现自动化 CI/CD,方便快捷地检查我们的应用是否满足了用户的需求和开发人员的期望。正确地使用自动化测试能够显著提高开发流程的效率和可靠性。自动化测试有多种用途,例如测试用户界面,执行单元测试等。以上示例希望可以帮助读者了解自动化测试的基本概念和流程,帮助他们更好地应用和理解这一重要的技术。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/670428ebd91dce0dc84da14a