本文将介绍如何结合 Cypress 和 CircleCI 实现前端自动化测试。Cypress 是一个强大的自动化测试框架,它能够测试所有的 web 应用程序,包括 React、Angular、Vue 等流行的前端框架。而 CircleCI 是一个持续集成工具,可与 GitHub 等代码托管服务协作,在代码变更时构建、测试、部署您的代码。通过结合这两个工具,可以大大提高前端项目的质量和稳定性。
1. 准备工作
在本文中,我们将使用一个示例 React 应用程序进行演示。首先,您需要将该应用程序克隆到本地。然后,安装和启动该应用程序,以便您可以在后续的步骤中使用。
git clone https://github.com/example/react-app.git cd react-app npm install npm start
2. 安装 Cypress
接下来,我们需要全局安装 Cypress。
npm install -g cypress
安装完成后,您可以使用以下命令启动 Cypress。该命令将在您的项目根目录中创建一个 cypress
文件夹。
cypress open
3. 创建测试用例
在 Cypress 中,测试用例被称为“规范”,它们被存储在 cypress/integration
文件夹中。我们将创建一个简单的测试用例,检查 React 应用程序是否能够显示标题。
首先,我们创建一个新的规范文件 cypress/integration/app.spec.js
。
touch cypress/integration/app.spec.js
然后,我们在规范文件中编写测试用例。
describe('React App', () => { it('displays a title', () => { cy.visit('http://localhost:3000') cy.get('h1').should('have.text', 'Welcome to React App') }) })
在该测试用例中,我们访问 React 应用程序的主页,然后获取页面上的 h1
元素,并验证它的文本是否为“Welcome to React App”。
4. 配置 CircleCI
接下来,我们需要设置 CircleCI 配置文件,以便在 GitHub 上的代码推送时自动运行 Cypress 测试。CircleCI 的配置文件名应为 .circleci/config.yml
。
创建一个新的 .circleci
文件夹并在其中创建一个 config.yml
文件。
mkdir .circleci touch .circleci/config.yml
打开配置文件,并添加以下内容。
-- -------------------- ---- ------- -------- - ----- ------ ------------------ ------------------------ ------- - ------ --------------------- ------ - -------- - ---- ----- ------- ------------ -------- --- ------- - ---- ----- --- ------- ----- -------- --- ------- ---
在该配置文件中,我们定义了一个 build
作业。该作业使用 Node.js 14.15.0 镜像,安装应用程序的依赖,并运行 Cypress 测试。
5. 配置 GitHub
最后一步是在 GitHub 上配置项目以与 CircleCI 协作。在您的项目中,转到设置选项卡,然后转到“Secrets”(密钥)部分。在该部分中,添加以下环境变量。
CYPRESS_RECORD_KEY
:记录您的 Cypress 测试的 API 密钥。GH_TOKEN
:GitHub 个人访问令牌。CIRCLE_CI_TOKEN
:您的 CircleCI API 令牌。
6. 运行测试
现在,我们已经完成了所有设置。请将您的更改推送到 GitHub 并观察 CircleCI 是否启动。如果一切都设置正确,CircleCI 将运行您的测试。
注意:如果您的应用程序需要身份验证或使用第三方 API,则可能需要在测试中模拟身份验证或使用 mock API。这将确保您的测试不会破坏外部服务或相互冲突。
7. 总结
结合 Cypress 和 CircleCI 可以大大提高前端项目的质量和稳定性。在本文中,我们介绍了如何安装 Cypress 和创建测试用例,以及如何设置 CircleCI 配置文件。最后,我们在 GitHub 上进行了配置以与 CircleCI 协作,并运行了测试。希望这篇文章对您有所帮助,让您更好地了解如何结合 Cypress 和 CircleCI 实现自动化测试。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/647557fd968c7c53b026c2d0