Netbeans和PHPUnit Skeletion Generator:没有这样的文件或目录

时间:2012-11-30 08:30:09

标签: netbeans phpunit

我使用netbeans 7.2.1和最新的phpunit。当我想通过右键单击php类在netbeans中生成单元测试时,然后工具 - >创建phpUnit测试Skeleton生成器抛出错误:没有这样的文件或目录。

require_once(/sharedResources/connection.inc.php): failed to open stream: No such file or directory

问题是require_once中显示的路径是错误的。它生成了这个:

$sharedResources = getenv("DOCUMENT_ROOT") . "/sharedResources";

并应解析为绝对文件路径。当应用程序在apache中运行时,这很好用。然而,当从netbeans运行时,似乎getenv(“DOCUMENT_ROOT”)是错误的。我的问题是如何才能正确设置?我的申请是

getenv("DOCUMENT_ROOT") . "/MyApp";

我正在创建测试的文件在

"MyApp/services"

在“项目”属性下,有一个选项Web根目录,但它显示为灰色,无法将其设置为比应用程序高一级的文件夹。

我该如何解决这个问题?

编辑:

进一步澄清:

我最初有一个sharedResources的相对文件路径,它也不起作用。我改变了这个和coruse ti是有意义的,因为DOCUMENT_ROOT是由apache设置的,因此在netbeans中运行时没有设置。所以临时解决方法是添加

$docRoot = getenv("DOCUMENT_ROOT");
if(empty($docRoot)){
    putenv("DOCUMENT_ROOT=C:/xampp/htdocs");
}
每个班级的负责人。当然,这不是一个非常实用或好的解决方案。我需要告诉netbeans设置此环境变量或使用正确的相对路径。

1 个答案:

答案 0 :(得分:0)

这是我的解决方案。它不理想,但简单而有效。问题是,当Apache没有调用脚本而是netbeans调用脚本时,DOCUMENT_ROOT显然是空的。因此必须以某种方式设定。为此,我编辑了php文件phpunit-skelgen(它没有文件结尾,但它是一个php文件)。

在我添加的第一个php行的许可证文本下面

putenv("DOCUMENT_ROOT=C:/xampp/htdocs");

这就是诀窍。