8

A bash function to run tests for both PHPUnit and Pest

 2 years ago
source link: https://freek.dev/2142-a-bash-function-to-run-tests-for-both-phpunit-and-pest
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

Lean Admin is a Laravel package for building custom admin panels. It's based on the TALLstack (Livewire & Alpine) and its main focus is customizability. Start by defining resources with fields and then customize anything you want. Replace CRUD actions, modify field behavior, or tweak Blade views, and much more. Lean is launching soon, and you can join the the waiting list here to get a discount.

A bash function to run tests for both PHPUnit and Pest

Original – Dec 5th 2021 by Freek Van der Herten – 2 minute read

I've used this little bash alias for many years to quickly run the tests inside of a project.

alias p="vendor/bin/phpunit"

With this alias in place, I can run the tests by typing "p" on the CLI. Nice!

For a long time, everything was great! But then, Pest appeared on the scene. It's an alternative test runner for PHP with a high focus on developer experience.

If you want to know more about Pest, check out the official documentation or the video course that I made on it.

To execute Pest, I introduced another bash alias.

alias pest="vendor/bin/pest"

But having separate commands for PHPUnit and Pest is a bit cumbersome. I often switch projects, and with two testing commands, I have to think if I should use p or pest to run the tests.

Because I didn't want to think about this (and because my muscle memory always let me type "p"), I've now replaced these two aliases with a single Bash function.

function p() {
    if [ -f vendor/bin/pest ]; then
       vendor/bin/pest "$@"
    else
       vendor/bin/phpunit "$@"
    fi
 }

With this function, I can type "p" in the terminal to run the tests of the project where I'm currently on. The function will pick the right test runner for me. Sweet!

Because I often use the --filter flag to run a single test, I've also added this pf function.

function pf() {
    if [ -f vendor/bin/pest ]; then
       vendor/bin/pest --filter "$@"
    else
       vendor/bin/phpunit --filter "$@"
    fi
 }

Both the p and pf functions can be found in my dotfiles repository. You'll find all settings that I use on the CLI in that repository. If you want to use the same settings as me, look at the readme in the repo to learn how to use them.

Stay up to date with all things Laravel, PHP, and JavaScript.

Follow me on Twitter. I regularly tweet out programming tips, and what I myself have learned in ongoing projects.

Every two weeks I send out a newsletter containing lots of interesting stuff for the modern PHP developer.

Expect quick tips & tricks, interesting tutorials, opinions and packages. Because I work with Laravel every day there is an emphasis on that framework.

Rest assured that I will only use your email address to send you the newsletter and will not use it for any other purposes.

Comments #


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK