Project Icon

cypress-example-kitchensink

Cypress端到端测试功能展示与CI集成实例

该项目是Cypress.io端到端测试功能的实例应用,展示了主要Cypress API命令的使用方法。项目配置支持多个CI平台运行E2E测试,并通过工作流程演示Cypress Docker镜像在CI环境中的应用。测试代码附有详细注释,便于学习和理解。此外,项目还提供了在线演示网站,用户可以直观地了解API命令的实际应用。

厨房水槽 renovate-app 徽章 语义发布

这是一个用于展示 Cypress.io 端到端 (E2E) 测试的示例应用。该应用程序演示了大多数 Cypress API 命令 的使用。此外,这个示例应用程序配置为在各种 CI 平台上运行 E2E 测试。 几个工作流程演示了 Cypress Docker 镜像 在 CI 中的使用,这些镜像为 Cypress 提供了方便、预配置的兼容环境。 测试 也有大量注释。

要查看厨房水槽应用程序,并查看应用程序演示的 Cypress API 命令,请访问 example.cypress.io

有关我们文档的完整参考,请访问 docs.cypress.io

有关演示 Cypress.io 端到端 (E2E) 测试实际使用的示例支付应用程序,请访问 cypress-io/cypress-realworld-app 仓库。

CI 状态

下表列出了来自各种 CI 提供商的实时工作流程。这些工作流程各自独立地测试此示例仓库的内容。它们使用 Cypress Cloud 运行和记录,其结果集中显示在 Cypress Cloud ProjectId 4b7344 下。每个 CI 提供商在其自己的网站上显示其构建状态:

你可以在 Cypress Cloud 上找到所有记录的 CI 结果 Cypress Cloud

CI 工作流程示例

此表显示了额外的 CI 工作流程示例。除了 GitHub Actions 工作流程外,这些不是像上表中那样的实时示例,在使用前可能需要修改。GitHub Actions 工作流程是实时的,它们运行时不会记录到 Cypress Cloud。

Cypress 文档页面 CI 提供商示例 提供了更多示例,并为使用 Cypress 与一些最流行的 CI 提供商提供了详细指南。

运行测试

本地测试

要在本地机器上运行此仓库中的测试,首先确保你的机器满足 Cypress 系统要求,包括按照文件 .node-version 中指定的版本安装 Node.js

执行以下指令将克隆仓库、安装依赖项并运行 Cypress:

git clone https://github.com/cypress-io/cypress-example-kitchensink.git
cd cypress-example-kitchensink
npm ci # 安装依赖项
npm run local:run # 无头模式运行 Cypress

local:run是一个package.json脚本,它启动本地网络服务器,然后使用cypress run以无头模式运行Cypress。 如果您想交互式地运行Cypress测试,请运行以下命令,它使用cypress open以有头模式运行Cypress。您可以选择单个测试来运行。

npm run local:open

作为使用local:openlocal:run脚本的替代方案,您也可以先启动服务器,然后在第二步运行Cypress。

npm start # 在8080端口启动服务器

您可以通过在网络浏览器中打开http://localhost:8080来检查服务器是否正在运行。

然后在另一个终端窗口中执行以下命令之一

npx cypress run # 无头模式

npx cypress open # 有头交互模式

脚本和服务器结构

local:runlocal:open脚本使用npm模块start-server-and-teststart-test别名来运行./scripts/start.js,该脚本启动网络服务器,等待服务器准备就绪,然后启动Cypress。

start脚本使用npm模块serve启动一个网络服务器,并在8080端口显示Kitchen Sink应用。

Docker测试

如果您在本地安装了Docker,例如使用Docker Desktop,您可以在Docker容器中交互式地运行此仓库的测试。 使用Cypress Docker镜像,这些镜像已经预装了运行Cypress所需的所有先决条件。它们以basebrowsersincluded选项从Docker HubAmazon ECR (Elastic Container Registry) Public Gallery提供。

首先,克隆仓库并安装依赖项:

git clone https://github.com/cypress-io/cypress-example-kitchensink
cd cypress-example-kitchensink
npm ci

[!注意] 为简单起见,下面的Docker示例使用诸如cypress/base这样的仓库引用,带有latest版本标签。要选择早期版本,请将latest替换为明确的标签,例如cypress/base:20.15.1。对于生产环境,推荐使用明确的版本标签。使用方法在标签选择中有进一步解释。

cypress/base

以下示例使用cypress/base镜像,该镜像本身不包含任何浏览器。您将使用Cypress捆绑的Electron浏览器。要运行Docker容器,执行以下命令:

docker run -it --rm -v .:/e2e -w /e2e cypress/base:latest

当容器提示出现时,输入:

npx cypress install     # 安装Cypress二进制文件
npm run test:ci         # 启动服务器并在Electron浏览器中运行测试
exit

cypress/browsers

使用cypress/browsers镜像,您可以额外选择Chrome、Edge和Firefox浏览器。执行以下命令:

docker run -it --rm -v .:/e2e -w /e2e cypress/browsers:latest

当容器提示出现时,输入:

npx cypress install     # 安装Cypress二进制文件
npm run test:ci         # 启动服务器并在Electron浏览器中运行测试
npm run test:ci:chrome  # 启动服务器并在Chrome浏览器中运行测试
npm run test:ci:edge    # 启动服务器并在Edge浏览器中运行测试
npm run test:ci:firefox # 启动服务器并在Firefox浏览器中运行测试
exit

cypress/included

cypress/included镜像与cypress/browsers相比,增加了完整的Cypress安装。 执行以下命令以一行命令运行容器,使用Chrome浏览器进行测试:

docker run -it --rm -v .:/e2e -w /e2e --entrypoint bash cypress/included:latest -c 'npm run test:ci:chrome' # 用于匹配Cypress版本

如果此仓库尚未更新到最新发布的Cypress版本,请使用仓库的package.json中的Cypress版本替换上述命令中的latest标签。 请注意,版本不匹配将导致错误。

[!注意] 额外的Chrome、Edge和Firefox浏览器仅在linux/amd64架构的cypress/browserscypress/included镜像中预装。linux/arm64架构镜像不提供预装浏览器。Electron浏览器(Cypress内置)在所有镜像和架构中都可用。

CI测试

如果您想尝试在持续集成(CI)提供商中运行测试,那么您首先需要fork仓库,这样您就有了自己的副本。参考GitHub文档正确设置remote upstream(指向此仓库)和remote origin(指向您的fork)的别名。 您还需要拥有您想要测试的CI提供商的账户。

文档

  • 使用Cypress文档了解如何使用Cypress的说明
  • 阅读命令行指南了解运行选项
  • 参考API文档了解此仓库中测试的Cypress API调用
  • 阅读安装Cypress获取在您自己的项目中安装Cypress的分步信息

支持

  • 对于"如何"问题和讨论,请前往Cypress Discord聊天,成为全球用户社区的一员!

贡献

查看贡献指南

更新日志

请参阅发布

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号