I've recently installed laravel and have written some tests in /tests directory but when I use phpunit
at cmd in the same folder that phpunit.xml
exists, it says 'phpunit' is not recognized as an internal or external command,operable program or batch file.
. I'm using windows 7. what should I do?
The solution for me:
php vendor/phpunit/phpunit/phpunit
This, of course, assumes you've set up a php environment variable in Windows
As Unnawut said, it doesn't work because vendor/phpunit/phpunit/phpunit is not a native Windows executable. You need a .bat or .cmd file that will basically call 'php phpunit'. There should be one in vendor/bin, but to make life easy, try this - create a file phpunit.bat (or .cmd) at the root of your site, containing this:
@ECHO OFF
SET BIN_TARGET=%~dp0/vendor/phpunit/phpunit/phpunit
php "%BIN_TARGET%" %*
Now you can call phpunit from the command line at the root of the site.
If you are a window user and you are having this issue, do this:
You need to tell Window where to find PHPUnit command, you can first of all verify that this file exists in your Laravel project under /vendor/bin
Finally you need to append the full path to /vendor/bin
in your window PATH variable,
To do this: 1. Right-click on 'Computer' then click properties
Advanced system settings
Advanced
click Environmental Variables
PATH
then set PATH variable by appendingthe full path to your laravel-project/vendor/bin;
Notice the ;
at the end.
NB: Other variables might already exists in the PATH, so ensure you don't overwrite them by appending your own at the very end
Ok
on all the dialog boxes alias phpunit="vendor/bin/phpunit"
I added this command in command line instead of just "phpunit"
vendor\bin\phpunit
That worked for me.
Install phpunit
globally:
composer global require phpunit/phpunit
Afterwards you will be able to run phpunit
( even on Windows ):
phpunit
The phpunit executable is not in your project root folder, that's why it can't find it.
Now I assume that you already have phpunit in your composer.json
file, something like this:
"require-dev": {
"phpunit/phpunit": "3.7.*"
}
When installed by composer, the package will be installed to vendor/vendor_name/package_name
. So to run it at your project root, type this command:
vendor/phpunit/phpunit/phpunit
Borrowing from @Chris' excellent answer:
Even better, you can make vendor/phpunit/phpunit/phpunit
an environment variable, say "phpunit" and whenever you want to run the test in any laravel project you just call php %phpunit%
.
This working for me
In double quotes this command in console windows
"vendor/bin/phpunit"
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With