How do I run directory-structured tests in phpunit?
Pergunta
The PHPUnit docs say that I can shove all my tests into a folder and run phpunit
on the folder to execute them all in one go:
http://www.phpunit.de/manual/current/en/organizing-tests.html
But when I try on my forked copy of Slim (https://github.com/codeguy/Slim) it doesn't work! I have installed PHPUnit via PEAR so I don't think there's anything odd about it.
Here's the output:
mark@ubuntu:/project/submodules/Slim$ phpunit tests
PHP Fatal error: Uncaught exception 'PHPUnit_Framework_Exception' with message 'Neither "tests.php" nor "tests.php" could be opened.' in /usr/share/php/PHPUnit/Util/Skeleton/Test.php:102
Stack trace:
#0 /usr/share/php/PHPUnit/TextUI/Command.php(157): PHPUnit_Util_Skeleton_Test->__construct('tests', '')
#1 /usr/share/php/PHPUnit/TextUI/Command.php(129): PHPUnit_TextUI_Command->run(Array, true)
#2 /usr/bin/phpunit(49): PHPUnit_TextUI_Command::main()
#3 {main}
thrown in /usr/share/php/PHPUnit/Util/Skeleton/Test.php on line 102
Any ideas what I'm doing wrong?
-EDIT-
I'm using PHPUnit 3.5.15.
Here are the contents of the directories Slim
and tests
:
mark@ubuntu:/project/submodules/Slim$ ls -l
total 20
-rw-r--r-- 1 mark mark 4320 Aug 23 14:41 README.markdown
drwxr-xr-x 1 mark mark 408 Aug 24 02:39 Slim
-rw-r--r-- 1 mark mark 6993 Aug 23 14:41 index.php
-rw-r--r-- 1 mark mark 1398 Aug 23 14:41 logo.png
drwxr-xr-x 1 mark mark 476 Aug 23 14:41 tests
mark@ubuntu:/project/submodules/Slim$ ls -l tests
total 104
-rw-r--r-- 1 mark mark 73 Aug 23 14:41 Foo.php
drwxr-xr-x 1 mark mark 204 Aug 23 14:41 Http
-rw-r--r-- 1 mark mark 4398 Aug 23 14:41 LogTest.php
-rw-r--r-- 1 mark mark 5088 Aug 23 14:41 LoggerTest.php
-rw-r--r-- 1 mark mark 734 Aug 23 14:41 README
-rw-r--r-- 1 mark mark 11115 Aug 23 14:41 RouteTest.php
-rw-r--r-- 1 mark mark 10327 Aug 23 14:41 RouterTest.php
drwxr-xr-x 1 mark mark 102 Aug 23 14:41 Session
-rw-r--r-- 1 mark mark 47703 Aug 23 14:41 SlimTest.php
-rw-r--r-- 1 mark mark 6447 Aug 23 14:41 ViewTest.php
drwxr-xr-x 1 mark mark 102 Aug 23 14:41 logs
drwxr-xr-x 1 mark mark 102 Aug 23 14:41 templates
I've literally just forked Slim and cloned it, nothing fancy!
Solução 2
It turns out that this error is what you see when you specify a folder but the folder doesn't contain any files that match the pattern *Test.php
.
This is NOT my problem, however. I'm running the tests from within a shared folder inside an Ubuntu VM using VirtualBox. This doesn't play well with PHPUnit, apparently. Or it might be PHP. Either way, it's incorrectly erroring because when I move the folder into a non-shared location inside the VM it works just fine.
Edit
I was running VirtualBox 4.1.0 which apparently has this problem. Upgrading to 4.1.2 fixed it and everything is running fine now. Thanks to everyone for their help.
Outras dicas
Normally you issue the phpunit
command inside whichever folder contains phpunit.xml
and/or bootstrap.php
. My guess is that these are located inside the tests
folder.
.../Slim$ cd tests
.../Slim/tests$ phpunit