这是用于展示cypress.io端到端(E2E)测试的示例应用程序。该应用程序演示了大多数柏树API命令的使用。此外,此示例应用程序配置为在各种CI平台中运行E2E测试。几个工作流程证明了CI使用柏树docker图像,这些图像为柏树提供了方便,预配合的兼容环境。测试也对测试进行了严重评论。
要查看厨房水槽应用程序,并查看应用程序显示的Cypress API命令,请访问exampe.cypress.io。
有关我们的文档的完整参考,请访问docs.cypress.io。
对于示例付款应用程序,展示了cypress.io端到端(E2E)测试的现实用法,请访问cypress-io/cypress-realworld-app-app存储库。
下表列出了来自各种CI提供商的实时工作流程。这些每个都独立测试此示例存储库的内容。他们使用赛普拉斯云(Cypress Cloud)进行运行并记录其结果,并在柏树云下集中显示4b7344
。每个CI提供商在其自己的网站上显示其构建状态:
CI提供商 | 工作流程 | 建立状态 | Docker示例 |
---|---|---|---|
应用程序 | AppVeyor.yml | ||
Circleci | .circleci/config.yml | ✅ | |
柏树 - io/github-action | 使用-Action.yml | ||
github动作 | 单 | ||
github动作 | 平行 |
您可以在柏树云上找到所有记录的CI结果
该表显示了CI工作流的其他示例。除GitHub Action工作流程外,这些不是上表中的实例示例,并且可能需要在使用前进行修改。 GitHub动作工作流程是实时的,它们在没有记录到赛普拉斯云的情况下运行。
CI提供商 | 基本配置 | 完整的并行配置 | Docker示例 |
---|---|---|---|
AWS放大 | amplify.yml | ||
AWS CodeBuild | 基本/buildspec.yml | buildspec.yml | |
Azure管道 | 基本/azure-ci.yml | azure-ci.yml | |
好友 | 好友 | ✅ | |
buildkite | .buildkite/pipeline.yml | ||
Circleci | basic/.circleci/config.yml | ✅ | |
CloudBees代码专业 | 基本/代码pro | 代码服务 | ✅ |
github动作 | Chrome.yml | ||
github动作 | Chrome-docker.yml | ✅ | |
GitLab | 基本/.gitlab-ci.yml | .gitlab-ci.yml | ✅ |
詹金斯 | 基本/Jenkinsfile | Jenkinsfile | ✅ |
信号量2.0 | basic/.semaphore.yml | .semaphore/semaphore.yml | |
特拉维斯CI | 基本/.travis.yml | .travis.yml |
柏树文档页面CI提供商示例提供了更多示例,并提供了广泛的指南,用于将柏树与一些最受欢迎的CI提供商一起使用。
要在本地计算机上运行此存储库的测试,请首先确保您的计算机符合赛普拉斯系统的要求,包括根据文件.Node-version中指定的版本安装node.js。
执行以下说明将克隆存储库,安装依赖项并运行柏树:
git clone https://github.com/cypress-io/cypress-example-kitchensink.git
cd cypress-example-kitchensink
npm ci # install dependencies
npm run local:run # run Cypress headlessly
local:run
是一个软件包。JSON脚本,启动本地网络服务器,然后使用柏树运行将柏树无头运行。如果您想交互方式运行柏树测试,请运行以下命令,该命令使用打开的柏树在头模式下运行柏树。您可以选择单个测试进行运行。
npm run local:open
作为使用local:open
和local:run
脚本,您也可以在一个步骤中启动服务器,然后在第二步中运行柏树。
npm start # start server on port 8080
如果打开Web浏览器并导航到http://localhost:8080
,则可以检查服务器正在运行。
然后在单独的终端窗口中执行
npx cypress run # for headless mode
或者
npx cypress open # for headed interactive mode
脚本local:run
和local:open
使用NPM模块的start-test
别名starter-server-and Test-lun。发射柏树。
start
脚本使用NPM模块发售网络服务器,并在端口8080
上显示厨房水槽应用程序。
如果您在本地安装了Docker,例如使用Docker Desktop,则可以在Docker容器中与此存储库中的测试运行。使用Cypress Docker Images,这些图像构建了所有运行柏树的先决条件。它们可作为基础,浏览器,包括Docker Hub和Amazon ECR(弹性容器注册表)公共画廊的选项。
如上所述,首先要克隆回购和安装依赖项:
git clone https://github.com/cypress-io/cypress-example-kitchensink
cd cypress-example-kitchensink
npm ci
笔记
为简单起见,下面的Docker示例使用存储库参考,例如带有latest
版本标签的cypress/base
。要选择一个较早的版本,请用明确的标签替换latest
,例如cypress/base:20.15.1
。建议生产明确的版本标签。标签选择进一步说明了用法。
以下示例使用柏树/基本图像本身不包含浏览器。您将使用与柏树捆绑在一起的电子浏览器。要运行Docker容器,请执行以下操作:
docker run -it --rm -v .:/e2e -w /e2e cypress/base:latest
当出现容器提示时,输入:
npx cypress install # install Cypress binary
npm run test:ci # start server and run tests in Electron browser
exit
使用柏树/浏览器图像,您还可以选择Chrome,Edge和Firefox浏览器。执行以下执行:
docker run -it --rm -v .:/e2e -w /e2e cypress/browsers:latest
当出现容器提示时,输入:
npx cypress install # install Cypress binary
npm run test:ci # start server and run tests in Electron browser
npm run test:ci:chrome # start server and run tests in Chrome browser
npm run test:ci:edge # start server and run tests in Edge browser
npm run test:ci:firefox # start server and run tests in Firefox browser
exit
与柏树/浏览器相比,柏树/随附的图像添加了完整的柏树安装。执行以下操作以使用单行命令运行容器,并使用Chrome浏览器进行测试:
docker run -it --rm -v .:/e2e -w /e2e --entrypoint bash cypress/included:latest -c ' npm run test:ci:chrome ' # use for matching Cypress versions
使用Repo的软件包中的Cypress版本替换上述命令中的latest
标签。请注意,不匹配的版本会导致错误。
笔记
其他浏览器Chrome,Edge和Firefox仅安装在linux/amd64
体系结构图像cypress/browsers
以及cypress/included
。浏览器不可预装为linux/arm64
体系结构图像。所有图像和体系结构都可以使用,该浏览器内置于柏树。
如果您想在连续集成(CI)提供商中尝试运行测试,那么您需要首先提供存储库,以便您拥有自己的副本。请参阅github文档,以正确设置remote upstream
的别名(此回购)和remote origin
(到您的叉子)。您还需要与您要测试的CI提供商有一个帐户。
查看贡献指南。
请参阅版本。