在 Travis CI 和 CircleCI 上运行 Dusk 测试
发布于 作者: Mohamed Said
Laravel Dusk 允许我们通过运行实际浏览器为支持 JavaScript 的应用程序编写端到端测试,这模拟了用户与我们应用程序的实际交互,并为我们提供了有关应用程序行为的更准确反馈。
但是,如何使用不同的持续集成服务运行 Dusk 测试并不十分清楚,因此我尝试在 Travis CI 和 CircleCI 上运行这些测试,并成功实现了。
在 Travis CI 上运行 Dusk 测试
为了能够在 Travis CI 上运行测试,我们需要使用支持 sudo 的 Ubuntu Trusty 环境,该环境具有 Dusk 的独立 chromedriver 所需的正确 Chrome 版本。
我们还需要使用 Xvfb,它是一个内存中显示工具,允许我们在 Travis 提供的无显示环境中运行实际浏览器。最后,我们必须在运行测试之前手动运行独立的 chromedriver。
我们的 .travis.yml
文件可能如下所示
sudo: requiredlanguage: phpdist: 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-interactiontest: pre: - "./vendor/laravel/dusk/bin/chromedriver-linux": background: true - cp .env.testing .env - "php artisan serve": background: true override: - php artisan dusk