Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I run directory-structured tests in phpunit?

Tags:

php

phpunit

slim

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!

like image 461
Mark Stickley Avatar asked Mar 10 '26 01:03

Mark Stickley


2 Answers

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
like image 198
David Harkness Avatar answered Mar 11 '26 14:03

David Harkness


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.

like image 20
Mark Stickley Avatar answered Mar 11 '26 13:03

Mark Stickley



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!