Browser Tests with Laravel Dusk in Gitlab CI/CD Pipelines.
This is a complete test suite for running tests (Unit, Feature, Browser) on your Laravel installation.
It uses Laravel Dusk for browser tests via a Docker executor runner in GitLab.
With this package, you don't need to worry, about Chrome or chromedriver compatibility. This is done automatically, to make your Browser Testing with Laravel Dusk, as easy, as possible.
Laravel dusk? Find more in Laravel Docs Laravel 10.x | Laravel 9.x | Laravel 8.x | Laravel 7.x | Laravel 6.x | Laravel 5.8
Gitlab? Find more on gitlab
Gitlab Continous Integration CI ? Find more on gitlab-runner
You may be wondering why deprecated versions are still available. The main reason is to allow for browser testing of your older Laravel applications while you're transitioning to newer versions.
This plug-and-play package is designed for your CI testing environment in GitLab.
All you need to do is select the appropriate version of your PHP interpreter (based on your Laravel version), and you should be ready to go.
Colours indicate the current state of PHP's life cycle and supported versions. Please note that all published images are fully functional and entirely usable for testing purposes.
Compatibility
LARAVEL VERSION | COMPATIBLE | PHP VERSIONS |
---|---|---|
10.x | YES | |
9.x | YES | |
8.x | YES | |
7.x | YES | |
6.x | YES | |
5.8 | YES | |
5.7 | YES | |
5.6 | YES | |
5.5 | YES | |
5.4 | Reported working | |
5.3 and below | Not tested |
With no modifications needed, you should be up and running in seconds. However, please carefully read the notes that follow.
For now DuskTestCase.php needs to be modified in all cases. THIS package is not going to work without -no-sandbox directive in this file.... Please read more about it, under Usage...
In case of any issues, please read the current documentation thoroughly, check existing issues (including closed ones) on GitHub, and finally, report a new issue on GitHub.
If this package proves to be useful to you, please star it on Docker Hub or GitHub to increase its visibility to other users.
Changelog
-
2023-12-30 -
stable
tag refersphp-8.2
from now on -
2023-12-30 -
latest
tag refersphp-8.3
from now on -
2023-12-20 -
php-8.3
tag released with latest versions of chrome and chromedriver -
2023-04-29 -
latest
tag refersphp-8.2
from now on -
2022-12-16 -
php-8.2
tag added with thanks to @pepijnolivier -
2022-12-16 - Latest chromedriver compatibility updated up to v.109
-
2022-09-01 -
latest
tag refersphp-8.1
from now on -
2022-09-01 - Latest chromedriver compatibility updated up to v.105 with thanks to @Velzeboer
-
2022-04-16 - Laravel 9 compatibility confirmed
-
2022-04-16 -
php-8.1
tag added -
2022-04-16 - Latest chromedriver compatibility updated up to v.101
-
2021-11-03 - Latest chromedriver compatibility updated up to v.96
-
2021-11-03 -
stable
tag refersphp-7.4
from now on -
2021-10-28 -
latest
tag refersphp-8.0
from now on andstable
tag refers tophp-7.2
-
2021-10-28 - php imagick extension added to all images except deprecated
php-7.1
-
2021-10-12 - Latest chromedriver compatibility updated up to v.95
-
2021-01-29 - Latest chromedriver compatibility updated up to v.89
-
2020-12-03 - PHP 8.0 version released in
php-8.0
tag + latest chromedriver compatibility updated -
2020-10-23 - PHP 8.0 RC in
php-8.rc
tag tested with Laravel 8 -
2020-10-20 - Latest chromedriver compatibility updated up to v.87
-
2020-09-15 - Laravel 8 compatibility confirmed in php-7.3, php-7.4 and latest tags
-
2020-08-17 - Latest chromedriver compatibility updated v.85
-
2020-05-15 - latest PHP versions, Laravel 7 compatibility confirmed
-
2020-02-17 - Node updated to 12.x LTS
-
2019-12-12 - Latest for now refers to PHP 7.4
-
2019-12-12 - PHP 7.4 in
php-7.4
tag -
2019-12-12 - Latest chromedriver compatibility updated v.78 & v.79
-
2019-09-27 - Latest chromedriver compatibility updated v.77
-
2019-09-24 - chilio/laravel-dusk-ci:old-stable is deprecated for now. Use it only with old Laravel versions (before 5.5)
-
2019-05-06 - Latest chromedriver compatibility updated v.75
-
2019-04-04 - Latest chromedriver compatibility updated v.74
-
2018-12-20 - PHP 7.3 in
php-7.3
tag -
2018-10-24 - Update to ubuntu:bionic (18.04), Install php-geos and link default
php
command tophp7.2
in latest tag -
2018-10-09 - Updated to nodejs v8
-
2018-10-06 - Latest chromedriver compatibility updated
-
2018-07-24 - mysql 8.0 and mysql:latest are now supported, but you need to make some modifications to your
.gitlab-ci.yml
. Unfortunately for now you cannot simply run mysql in services, as it was before.Simple workaround, is to change in services: (everywhere you call mysql service) to:
services:
- name: mysql:latest
command: ["--default-authentication-plugin=mysql_native_password"]
You need to make sure your Laravel config/database.php
has these modes array also:
'mysql' => [
...
'prefix' => '',
'strict' => true,
'engine' => null,
'modes' => [
'ONLY_FULL_GROUP_BY',
'STRICT_TRANS_TABLES',
'NO_ZERO_IN_DATE',
'NO_ZERO_DATE',
'ERROR_FOR_DIVISION_BY_ZERO',
'NO_ENGINE_SUBSTITUTION',
],
],
- 2018-05-14 - chilio/laravel-dusk-ci:stable ships now with php 7.2 and chrome versions check enabled
- 2018-05-14 - chilio/laravel-dusk-ci:stable moved to chilio/laravel-dusk-ci:old-stable. If you encounter any problems use the old one, or post issues...
- 2018-05-08 - Automatic Chrome and chromedriver versions check and fix - works only in chilio/laravel-dusk-ci:latest for now, if you experience errors with this please use chilio/laravel-dusk-ci:stable or chilio/laravel-dusk-ci:php-7.2
- 2018-02-16 - New command introduced - versions - works only in chilio/laravel-dusk-ci:latest for now
- 2018-02-15 - chilio/laravel-dusk-ci:latest - tested with Laravel 5.6 and dusk 3.0
- 2017-12-20 - chilio/laravel-dusk-ci:latest uses php 7.2 from now on, as it is marked as working without issues
- 2017-12-01 - php 7.2 support added, latest tag refers still to php 7.1 for now, so if you want to use 7.2, please choose exact docker tag : chilio/laravel-dusk-ci:php-7.2
- 2017-09-10 - initial release, with php 7.1 for laravel 5.5
Documentation
What's included? (versions depend on image/tag)
Libs included |
---|
PHP |
Xdebug |
NGINX |
Chromedriver |
Chrome |
NODEJS |