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

如何在 CI/CD TeamCity 中设置和运行 Cypress 测试用例

0
分享至

关注留言点赞,带你了解最流行的软件开发知识与最新科技行业趋势。


在本文中,读者将通过教程学习如何在 CI/CD TeamCity 中设置和运行 Cypress 测试用例,包括代码块和屏幕截图。

本文将介绍如何在 CI/CD TeamCity 中设置和运行 Cypress 测试用例。Cypress 是一个基于 JavaScript 的端到端测试框架,可用于测试 Web 应用程序。要使用 TeamCity 在 CI/CD 管道中执行 Cypress 测试用例,您可以使用 Cypress Test Runner 作为管道中的构建步骤。这可以配置为在无头浏览器中运行测试并生成可用于随时间跟踪测试结果的测试报告。此外,您可以使用 TeamCity 的内置功能(例如通知和分析)来跟踪测试状态并在测试失败时收到警报。

先决条件
  1. 用户已登录到 TeamCity。
  2. 代码已经推送到GitHub。
  3. 对于演示,请使用最新版本 (12.3.0) 的 Cypress。
什么是团队城市?

TeamCity 是由 JetBrains 开发的持续集成和持续交付 (CI/CD) 服务器。它用于自动化软件项目的构建、测试和部署。TeamCity 提供了一个基于 Web 的界面,用于配置和管理构建,以及查看构建结果和统计信息。

TeamCity 支持多种构建技术,包括 Java、.NET、C++ 和许多其他技术。它可以与各种版本控制系统、问题跟踪系统和测试框架集成。它还内置了对运行测试和将代码部署到各种环境的支持。

TeamCity 中的基本 CI 工作流

要了解服务器和代理之间的数据流、传递给代理的内容以及 TeamCity 如何以及何时获取结果,让我们看一下简单的构建生命周期。

资料来源: JetBrains

工作流程指南
  1. TeamCity 服务器检测到 VCS 根(存储库)中的更改。
  2. 服务器将此更改存储在数据库中。
  3. 触发器附加到构建配置,检测数据库中的相关更改并启动构建。
  4. 触发的构建进入构建队列。
  5. 该构建被分配给一个免费且兼容的构建代理。
  6. 代理执行构建配置中描述的构建步骤。在执行这些步骤时,代理会向 TeamCity 服务器报告构建进度。它会即时发送所有日志消息、测试报告和代码覆盖率结果,因此您可以实时监控构建过程。
  7. 完成构建后,代理将构建工件发送到服务器。

此外,TeamCity 可以与 GitHub、JIRA 和 Slack 等其他工具集成,以简化 CI 流程并提供项目状态的全面视图。

在集成之前,我们必须使用文件安装和设置 Cypresssome.spec以运行 CI/CD TeamCity。

设置赛普拉斯

要设置 Cypress,您的计算机上必须安装 Node.js 和 npm(节点包管理器)。一旦你有了这些,你可以按照以下步骤操作:

  1. 打开终端或命令提示符,然后导航到项目的根目录。
  2. 运行命令npm init以在您的项目中初始化一个新的 npm 包。(如果您的项目已有文件,则可以跳过此步骤package.json)。
  3. 运行命令npm install cypress --save-dev将 Cypress 安装为项目中的开发依赖项。
  4. 安装完成后,运行命令npx cypress open打开 Cypress Test Runner。
  5. 在 Cypress Test Runner 中,您可以为您的应用程序编写和运行测试。
  6. cypress.json您还可以通过编辑位于项目根目录中的文件来配置 Cypress 。

使用以下命令安装赛普拉斯:

npm install cypress --save-dev

安装 Cypress 后,您可以看到以下文件夹结构:

Cypress的文件夹结构解释如下:

  1. cypress/:这是您的 Cypress 测试的主目录。
  2. e2e/:此目录包含所有测试文件。建议根据他们正在测试的功能或页面来组织测试文件。
  3. fixtures/:此目录包含用于测试应用程序的数据,例如 JSON 或 CSV 文件。
  4. plugins/:此目录包含扩展 Cypress 功能的 JavaScript 文件。
  5. support/:此目录包含用于配置 Cypress 和设置测试的文件。
演示示例

出于演示目的,我以这个网站为例。

用户界面示例

/// describe("QAAutomationLabs.com", { testIsolation: false }, () => { it("Open URL", () => { cy.visit("https://qaautomationlabs.com/"); }); it("Click on Read More ", () => { cy.get(".staticslider-button").click(); }); it("Verify Particular Blog ", () => { cy.contains( "Running End-to-End Cypress Test cases In Google Cloud Build Pipeline" ); }); it("Click on Blogs", () => { cy.contains("Blog").scrollIntoView().click({ force: true }); }); it("Search the datas", () => { cy.get('[id="wp-block-search__input-2"]').scrollIntoView(); cy.get('[id="wp-block-search__input-2"]') .click({ force: true }) .type("cypress"); cy.get('[id="search-icon"]').click({ force: true }); cy.contains("Search Results for: cypress"); }); });

API范例

API 以本站为例:

it("GET API testing Using Cypress API Plugin", () => { cy.request("GET", "https://reqres.in/api/users?page=2").should((response) => { expect(response.status).to.eq(200); }); }); it("POST API testing Using Cypress API Plugin", () => { cy.request("POST", "https://reqres.in/api/users", { name: "morpheus", job: "leader", }).should((response) => { expect(response.status).to.eq(201); }); }); it("PUT API testing Using Flip Plugin", () => { cy.request("PUT", "https://reqres.in/api/users/2", { name: "morpheus", job: "zion resident", }).should((response) => { expect(response.status).to.eq(200); }); }); it("DELETE API testing Using Cypress API Plugin", () => { cy.request("DELETE", "https://reqres.in/api/users/2").should((response) => { expect(response.status).to.eq(204); }); });

Package.json 文件

{ "name": "cypress_headless", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "yarn cypress run" }, "author": "Kailash Pathak", "license": "ISC", "dependencies": { "cypress": "^12.3.0" }, }

将 TeamCity 与 Cypress 集成

将 Cypress 与 TeamCity 集成后,您可以将 Cypress 端到端测试作为持续集成 (CI) 工作流程的一部分运行。

要将 Cypress 与 TeamCity 集成,您需要创建一个构建配置,在构建过程中运行 Cypress 测试。这可以通过配置构建步骤来运行 Cypress 测试命令来完成,例如“ npx cypress run ”或“ yarn cypress run ”,具体取决于项目的设置。此外,您需要配置构建以向 TeamCity 报告测试结果,以便在 TeamCity Web 界面中分析和显示结果

以下是 Cypress 与 TeamCity 集成的一些步骤:

步骤1

使用现有的 Google 帐户注册:

登录后,您将看到以下屏幕:

第2步

点击“ Create Project ”,新建一个项目:

步骤 3

单击“创建项目”后,将打开以下屏幕。在下面的屏幕中,我们可以看到所有存储库都在显示:

步骤4

选择项目。在我的例子中,我将选择“ Cypress_12.3.0 (https://github.com/cypress1980/Cypress_12.3.0) : ”

步骤 5

当用户选择项目时,将打开以下屏幕。已验证与 VCS 存储库的连接并且存储库已链接

步骤 6

单击上面屏幕中的“继续”按钮。当用户单击“继续”按钮时,会显示:通过扫描 VCS 存储库自动检测构建步骤及其设置:

步骤 7

从下面的屏幕中选择“ Node.js (Shell Script :npm run test) ”:

步骤 8

在上面的屏幕中单击“添加构建步骤”。选择“命令行”作为构建步骤:

步骤 9

在“ Shell Script :”中输入以下信息

yarn cypress install yarn run test

选择 Docket 容器“ cypress/base:16.18.1 ”,然后单击“ Save ”按钮:

步骤 10

现在,通过单击“运行”按钮来“运行”构建:

报告

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

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.

相关推荐
热点推荐
不跪就别嫁”婆婆刁难怀孕新娘,新郎一脚踹飞:你娶我娶?

不跪就别嫁”婆婆刁难怀孕新娘,新郎一脚踹飞:你娶我娶?

四象八卦
2024-06-16 07:55:03
大暴雨!冰雹!8级雷暴大风!首个山洪红色预警!气象部门紧急提醒→

大暴雨!冰雹!8级雷暴大风!首个山洪红色预警!气象部门紧急提醒→

鲁中晨报
2024-06-16 14:43:05
久保裕也美职联9分钟戴帽!榜首迈阿密多赛2场仅领先辛辛那提2分

久保裕也美职联9分钟戴帽!榜首迈阿密多赛2场仅领先辛辛那提2分

直播吧
2024-06-16 13:22:03
10年前,两位“夺刀少年”因救人错过高考,拒绝保送后如今怎样了

10年前,两位“夺刀少年”因救人错过高考,拒绝保送后如今怎样了

文史达观
2024-06-09 06:45:02
对抗强度上升!中方大量增兵,刚排兵布阵,美航母掉头就跑

对抗强度上升!中方大量增兵,刚排兵布阵,美航母掉头就跑

青年的背包
2024-06-14 19:54:49
中年最好的婚姻,并不是有钱,而是手握这三张底牌

中年最好的婚姻,并不是有钱,而是手握这三张底牌

茶余饭好
2024-06-15 21:56:34
王红权星封杀后首露面,与往常差距巨大,满脸胡茬面容憔悴

王红权星封杀后首露面,与往常差距巨大,满脸胡茬面容憔悴

娱记掌门
2024-06-14 14:07:31
中科院已发表颠覆性研究:尼古丁可延缓衰老!吸烟或是长寿密码?

中科院已发表颠覆性研究:尼古丁可延缓衰老!吸烟或是长寿密码?

蜉蝣说
2024-06-15 21:38:43
笑死了!河南专家建议中午不要浇地,结果在评论区被骂惨

笑死了!河南专家建议中午不要浇地,结果在评论区被骂惨

文雅笔墨
2024-06-16 00:17:39
气愤!金曲奖取消王力宏致敬李玟表演,只因他过去了宣扬中国文化

气愤!金曲奖取消王力宏致敬李玟表演,只因他过去了宣扬中国文化

娱记掌门
2024-06-15 23:26:50
国足晋级18强!上上签即将诞生,冲击小组前二,有望直通世界杯

国足晋级18强!上上签即将诞生,冲击小组前二,有望直通世界杯

体坛春秋
2024-06-16 21:34:03
赖清德登《时代》封面,再次兜售“新两国论”

赖清德登《时代》封面,再次兜售“新两国论”

喜欢农家生活的阿律
2024-06-15 21:03:43
1.5亿豪门凌晨3点亮相!冲击欧洲杯开门红,德国警方:1000多警力

1.5亿豪门凌晨3点亮相!冲击欧洲杯开门红,德国警方:1000多警力

足球漫漫跳
2024-06-16 21:46:50
张常宁赛后点评:4点句句刺痛人心!热泪盈眶!太不容易了!

张常宁赛后点评:4点句句刺痛人心!热泪盈眶!太不容易了!

刺头体育
2024-06-16 17:01:23
周日竞彩解析:荷兰小胜收场,丹麦恐难取胜,英格兰稳定取下3分

周日竞彩解析:荷兰小胜收场,丹麦恐难取胜,英格兰稳定取下3分

阿涛说球
2024-06-16 15:46:59
实在想不明白!一个球队替补,拿着300万底薪,为什么都叫他巨头

实在想不明白!一个球队替补,拿着300万底薪,为什么都叫他巨头

球毛鬼胎
2024-06-15 15:10:53
你什么时候意识到自己没见过世面?网友:体制内,不知道水牌是啥

你什么时候意识到自己没见过世面?网友:体制内,不知道水牌是啥

热闹的河马
2024-06-14 10:46:15
死神镰刀!3年前的今天:杜兰特天王山打满全场 狂轰49+17+10+3+2

死神镰刀!3年前的今天:杜兰特天王山打满全场 狂轰49+17+10+3+2

直播吧
2024-06-16 08:55:15
凯文-坎贝尔昨日离世,儿子社媒发文:这种痛无法形容,永远爱你

凯文-坎贝尔昨日离世,儿子社媒发文:这种痛无法形容,永远爱你

直播吧
2024-06-16 11:12:11
才知道,水果店为什么喜欢把西瓜切一半卖?背后“猫腻”真不小!

才知道,水果店为什么喜欢把西瓜切一半卖?背后“猫腻”真不小!

阿龙美食记
2024-06-16 15:44:21
2024-06-16 23:34:44
墨谈科技
墨谈科技
业务数码玩家.无聊的博主
2991文章数 567关注度
往期回顾 全部

科技要闻

iPhone 16会杀死大模型APP吗?

头条要闻

理想车友聚会多车连环追尾 组织者:突遭大雨 车距较近

头条要闻

理想车友聚会多车连环追尾 组织者:突遭大雨 车距较近

体育要闻

没人永远年轻 但青春如此无敌还是离谱了些

娱乐要闻

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

财经要闻

打断妻子多根肋骨 上市公司创始人被公诉

汽车要闻

售17.68万-21.68万元 极狐阿尔法S5正式上市

态度原创

本地
艺术
手机
家居
公开课

本地新闻

粽情一夏|海河龙舟赛,竟然成了外国人的大party!

艺术要闻

穿越时空的艺术:《马可·波罗》AI沉浸影片探索人类文明

手机要闻

消息称苹果计划为 iPhone 17 系列开发一款更薄的机型

家居要闻

空谷来音 朴素留白的侘寂之美

公开课

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

无障碍浏览 进入关怀版