Reputation: 173
Using phpunit and I am having some trouble with include paths, not for phpunit itself, but for my code and tests directory.
I have the following code structure:
Application
-StringCalculator.php
tests
-StringCalculatorTest.php
Inside my StringCalculatorTest.php i have a require statement:
require_once('../StringCalculator.php');
Running phpunit StringCalculatorTest.php
from inside the tests folder works perfectly.
However, when i then introduce a phpunit.xml configuration file in the root directory i.e.
Application
-StringCalculator.php
tests
-StringCalculatorTest.php
phpunit.xml
the include path is screwed. I have to replace the require_once to
require_once('StringCalculator.php');
What is the correct way to set include paths between the application and the test directory?
Upvotes: 13
Views: 15861
Reputation: 11307
The best place to set your PHP include path is in your bootstrap file. Usually, your phpunit.xml
file will include a bootstrap attribute:
<phpunit backupGlobals="true"
backupStaticAttributes="false"
bootstrap="bootstrap.php"
cacheTokens="true"
colors="true"
... and so on ...
</phpunit>
Then in your bootstrap file you can set include paths, include important files, etc..
set_include_path(get_include_path() . PATH_SEPARATOR . '../my/sources');
The config file is covered in Appendix C of the PHPunit docs.
EDIT: Link updated
Upvotes: 11
Reputation: 6740
I know the question already been answer
This answer is for future visitor
According to phpunit documentation, u can use includePath
directive in your phpunit.xml
for your inclusion path
<php>
<includePath>/path/to/ur/project</includePath>
</php>
Upvotes: 9
Reputation: 49553
First, I don't get how require_once('../StringCalculator.php');
works, it should rather be: require_once('../Application/StringCalculator.php');
.
Then, slashingweapon answer is good and it's the best IMO, however if you don't want that much trouble, you can specify your require_once
to start from the directory of the current file:
require_once(__DIR__ . '../Application/StringCalculator.php');
Upvotes: 3