使用phpunit,我遇到了一些麻烦,包括路径,而不是phpunit本身,而是用于我的代码和测试目录。
我有以下代码结构:
Application
-StringCalculator.php
tests
-StringCalculatorTest.php
在我的字符串calculatortest.php中,我有一个要求语句:
require_once('../StringCalculator.php');
从测试文件夹内部运行phpunit StringCalculatorTest.php
完美工作。
但是,当我在根目录中引入phpunit.xml配置文件时。
Application
-StringCalculator.php
tests
-StringCalculatorTest.php
phpunit.xml
包括路径被拧紧。我必须将require_once替换为
require_once('StringCalculator.php');
设置的正确方法是什么包括应用程序和测试目录之间的路径?
设置php包含路径的最佳位置位于引导程序中。通常,您的phpunit.xml
文件将包括一个bootstrap属性:
<phpunit backupGlobals="true"
backupStaticAttributes="false"
bootstrap="bootstrap.php"
cacheTokens="true"
colors="true"
... and so on ...
</phpunit>
然后在引导程序文件中您可以设置包括路径,包括重要文件等。
set_include_path(get_include_path() . PATH_SEPARATOR . '../my/sources');
phpunit文档的附录C中介绍了配置文件。
编辑:链接更新
我知道这个问题已经回答
这个答案适用于未来的访客
根据Phpunit文档,您可以在 phpunit.xml
中使用includePath
指令进行包含路径
<php>
<includePath>/path/to/ur/project</includePath>
</php>
首先,我不明白require_once('../StringCalculator.php');
的工作原理,它应该是: require_once('../Application/StringCalculator.php');
。
然后,slashingweapon答案很好,这是最好的IMO,但是,如果您不想要那么多麻烦,则可以指定require_once
从当前文件的目录开始:
require_once(__DIR__ . '../Application/StringCalculator.php');