在 Travis CI 和 CircleCI 上运行 Dusk 测试

发布于 作者:

Running Dusk tests on Travis CI and CircleCI image

Laravel Dusk 允许我们通过运行实际浏览器为支持 JavaScript 的应用程序编写端到端测试,这模拟了用户与我们应用程序的实际交互,并为我们提供了有关应用程序行为的更准确反馈。

但是,如何使用不同的持续集成服务运行 Dusk 测试并不十分清楚,因此我尝试在 Travis CI 和 CircleCI 上运行这些测试,并成功实现了。

在 Travis CI 上运行 Dusk 测试

为了能够在 Travis CI 上运行测试,我们需要使用支持 sudo 的 Ubuntu Trusty 环境,该环境具有 Dusk 的独立 chromedriver 所需的正确 Chrome 版本。

我们还需要使用 Xvfb,它是一个内存中显示工具,允许我们在 Travis 提供的无显示环境中运行实际浏览器。最后,我们必须在运行测试之前手动运行独立的 chromedriver。

我们的 .travis.yml 文件可能如下所示

sudo: required
language: php
dist: trusty
 
php:
- 7.1
 
install:
- travis_retry composer install --no-interaction
 
before_script:
- export DISPLAY=:99.0
- sh -e /etc/init.d/xvfb start
- ./vendor/laravel/dusk/bin/chromedriver-linux &
- cp .env.testing .env
- php artisan serve &
 
script:
- php artisan dusk

在 CircleCI 上运行 Dusk 测试

在 CircleCI 上,它甚至更简单,我们只需要手动运行独立的 chrome 驱动程序并使用 php artisan serve 来启动 PHP 的内置服务器即可。

machine:
pre:
- sudo apt-get update; USE_PRECOMPILE=true sudo -E circleci-install php 7.1.0
 
php:
version: 7.1.0
 
dependencies:
override:
- composer install --no-interaction
test:
pre:
- "./vendor/laravel/dusk/bin/chromedriver-linux":
background: true
- cp .env.testing .env
- "php artisan serve":
background: true
 
override:
- php artisan dusk
Mohamed Said photo

网络开发者和 Laravel 核心贡献者

分类于
Cube

Laravel 时事通讯

加入 40k+ 其他开发人员,绝不错过新的技巧、教程等。

Laravel Forge logo

Laravel Forge

轻松创建和管理您的服务器,并在几秒钟内部署您的 Laravel 应用程序。

Laravel Forge
Tinkerwell logo

Tinkerwell

Laravel 开发人员必备的代码运行器。使用 AI、自动完成和本地和生产环境上的即时反馈来进行调整。

Tinkerwell
No Compromises logo

没有妥协

Joel 和 Aaron,来自 No Compromises 播客的两位经验丰富的开发人员,现在可以为您的 Laravel 项目提供服务。 ⬧ 固定费用 7500 美元/月。 ⬧ 没有冗长的销售流程。 ⬧ 没有合同。 ⬧ 100% 退款保证。

没有妥协
Kirschbaum logo

Kirschbaum

提供创新和稳定性,以确保您的 Web 应用程序成功。

Kirschbaum
Shift logo

Shift

正在运行旧版本的 Laravel?即时、自动化的 Laravel 升级和代码现代化,让您的应用程序保持新鲜。

Shift
Bacancy logo

Bacancy

为您的项目配备经验丰富的 Laravel 开发人员,拥有 4-6 年的经验,每月只需 2500 美元。获得 160 小时的专业知识和 15 天的无风险试用。立即安排电话!

Bacancy
Lucky Media logo

Lucky Media

现在就幸运起来 - Laravel 开发的理想选择,拥有十多年的经验!

Lucky Media
Lunar: Laravel E-Commerce logo

Lunar:Laravel 电子商务

Laravel 的电子商务。一个开源软件包,将现代无头电子商务功能的强大功能带到 Laravel。

Lunar:Laravel 电子商务
LaraJobs logo

LaraJobs

官方 Laravel 职位板

LaraJobs
SaaSykit: Laravel SaaS Starter Kit logo

SaaSykit:Laravel SaaS 启动工具包

SaaSykit 是一个 Laravel SaaS 启动工具包,它包含运行现代 SaaS 所需的所有功能。支付、精美结账、管理面板、用户仪表板、身份验证、预制组件、统计信息、博客、文档等。

SaaSykit:Laravel SaaS 启动工具包
Rector logo

Rector

您无缝升级 Laravel、降低成本和加速创新的合作伙伴,以打造成功的企业。

Rector
MongoDB logo

MongoDB

通过 MongoDB 和 Laravel 的强大集成来增强您的 PHP 应用程序,使开发人员能够轻松高效地构建应用程序。支持事务、搜索、分析和移动用例,同时使用熟悉的 Eloquent API。了解 MongoDB 的灵活、现代数据库如何改变您的 Laravel 应用程序。

MongoDB
Maska is a Simple Zero-dependency Input Mask Library image

Maska 是一个简单的无依赖输入掩码库

阅读文章
Add Swagger UI to Your Laravel Application image

将 Swagger UI 添加到您的 Laravel 应用程序

阅读文章
Assert the Exact JSON Structure of a Response in Laravel 11.19 image

在 Laravel 11.19 中断言响应的精确 JSON 结构

阅读文章
Build SSH Apps with PHP and Laravel Prompts image

使用 PHP 和 Laravel 提示构建 SSH 应用程序

阅读文章
Building fast, fuzzy site search with Laravel and Typesense image

使用 Laravel 和 Typesense 构建快速、模糊的网站搜索

阅读文章
Add Comments to your Laravel Application with the Commenter Package image

使用 Commenter 软件包在您的 Laravel 应用程序中添加评论

阅读文章