我想在phpunit中测试我的php应用程序。我的问题是require_once找不到我要测试的文件。我收到这个错误:
警告: require_once(C:\ MyProject的\ PHPUnit的-tesztek \包括/../包括/ form.php的): 无法打开流:没有这样的文件或目录 第4行的C:\ MyProject \ phpunit-tesztek \ include \ FormTest.php
所以它搜索include /../ include / form.php中的form.php文件有什么不对。
我使用了这段代码:
require_once'PHPUnit / Autoload.php';
require_once(__ DIR __ '/ .. /包括/ form.php的');
测试文件位于C:\ MyProject \ phpunit-tesztek \ include \ FormTest.php
我要测试的文件是:C:\ MyProject \ include \ form.php
有什么问题?
答案 0 :(得分:4)
问题是相对路径。 __DIR__
使用文件所在的目录而不使用尾随分隔符。然后,您使用相对路径(/../
)更改路径以上升到一个目录。
参见手册条目 - > PHP Manual for __DIR__
__DIR__ will return C:\MyProject\phpunit-tesztek\include
您希望使用C:\MyProject\include\
路径
__DIR__ . '/../../include/Form.php';
我通常自己使用dirname(__FILE__)
,因为它获取源代码文件的当前目录(这是绝对的),允许我的相对路径从该位置移动。
答案 1 :(得分:0)
尝试删除../
require_once(DIR.'include/form.php');
答案 2 :(得分:0)
使用魔法常量 DIR :
require_once(__DIR__ . '/../include/form.php');