Recherche par étiquette : laravel

4 articles

Mon curriculum vitæ

/storage/2019/mon-curriculum-vitae/resume-public-fr.png Intéressé ? Veuillez me contacter pour recevoir la version non-censurée.

Comment exécuter des tests PHPUnit automatiquement avec Laravel et Homestead

Lors de mes développements précédents, j'avais l'habitude d'utiliser un script personnalisé avec grunt-contrib-watch qui relançait mes tests PHPUnit à chaque fois que j'enregistrais un fichier PHP. Cependant Laravel vient avec Laravel Mix.

Laravel Mix logo

C'est un outil utile, mais qui ne supporte pas (et ne supportera jamais) PHPUnit. J'ai donc dû chercher une autre solution et le sauveur est phpunit-watcher. Installez, exécutez et... codez. C'est tout ! Des fonctionnalités et personnalisations sont disponibles pour s'adapter à vos besoins.

J'ai exécuté ces commandes dans ma machine Homestead :

$ composer global require spatie/phpunit-watcher

$ phpunit-watcher watch

phpunit-watcher en action

Première utilisation de Laravel Dusk? Voici quelques erreurs et gaffes et leur solution

Manipulant pour la première fois Laravel Dusk, il me fallait tout d'abord installer son paquet :

$ composer require --dev laravel/dusk

Error: Your requirements could not be resolved to an installable set of packages.

J'utilisais toujours Laravel 5.6 mais la version actuelle de dusk est en version 5, qui requiert Laravel 5.7+. J'ai été voir sur Packagist après une version antérieure. Dans mon cas, c'était :

$ composer require --dev laravel/dusk:4.0.5

Chouette, maintenant je peux commencer à rédiger de fantastiques tests ! Heu... Non, pas si vite !

PHP Fatal error:  Class 'Tests\DuskTestCase' not found

Parce que j'ai RTFM trop vite et homis :

$ php artisan dusk:install                                                               
Dusk scaffolding installed successfully.

Keep calm and RTFM

Chouette, maintenant je peux vraiment commencer à rédiger de fantastiques tests !

...

Facebook\WebDriver\Exception\SessionNotCreatedException: session not created: Chrome version must be between 70 and 73   
  (Driver info: chromedriver=2.45.615279 (12b89733300bd268cff3b78fc76cb8f3a7cc44e5),platform=Linux 4.4.0-101-generic x86_6
4)

Alors peut-être…

$ sudo apt-get update
$ sudo apt-get install chromium-browser
[…]
404  Not Found [IP: ...]
E: Failed to fetch http://security.ubuntu.com/ubuntu/pool/universe/c/chromium-browser/chromium-browser...

Dans ce cas, mettez d'abord Homestead à jour. Quittez la machine virtuelle, exécutez $ vagrant box update et enfin installez chromium.

$ php artisan dusk

Dusk - échecs PHPUnit

OUI ! Jamais été aussi content de voir de bons vieux échecs de tests PHPUnit !

Comment créer des liens symboliques via FTP

Révélation: on ne peut pas !

Afin de pouvoir utiliser le File Storage de Laravel, il me fallait créer un lien symbolique dans le dossier public, pointant vers un sous-dossier situé dans le dossier storage. Une opération simple et rapide lorsque vous bénéficiez d'un accès ssh vers votre serveur de production. Mais c'est une toute autre histoire quand vous n'avez qu'un accès FTP !

La solution était donc de laisser PHP se charger du travail pour moi, en utilisant la commode fonction symlink :

if (!file_exists('./storage')) {
    symlink("../storage/app/public", "./storage");
}

[EN] Create symbolic links on server without SSH available?