我使用 netbeans 7.2.1 和最新的 phpunit。当我想通过右键单击 php 类在 netbeans 中生成单元测试时,工具-> 创建 phpUnit 测试骨架生成器会抛出错误:没有这样的文件或目录。
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 root,但它是灰色的,并且无法将其设置为比您的应用程序高一级的文件夹。
我该如何解决这个问题?
编辑:
进一步澄清:
我最初有一个 sharedResources 的相对文件路径,它也不起作用。我改成这个并且 coruse ti 是有道理的,因为 DOCUMENT_ROOT 是由 apache 设置的,因此在 netbeans 中运行时没有设置。所以临时修复是添加
$docRoot = getenv("DOCUMENT_ROOT");
if(empty($docRoot)){
putenv("DOCUMENT_ROOT=C:/xampp/htdocs");
}
到每个班级的负责人。当然,这不是一个非常实用或好的解决方案。我需要告诉 netbeans 设置这个环境变量或使用正确的相对路径。