【问题标题】:Netbeans and PHPUnit Skeletion Generator: No such file or directoryNetbeans 和 PHPUnit 骨架生成器:没有这样的文件或目录
【发布时间】:2012-11-18 10:53:06
【问题描述】:

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

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 设置这个环境变量或使用正确的相对路径。

【问题讨论】:

    标签: netbeans phpunit


    【解决方案1】:

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

    在许可文本下方作为我添加的第一行 php

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

    成功了。

    【讨论】:

      猜你喜欢
      • 2012-11-16
      • 2013-09-04
      • 1970-01-01
      • 2013-05-04
      • 2011-03-05
      • 2019-08-01
      • 1970-01-01
      • 2017-06-20
      • 1970-01-01
      相关资源
      最近更新 更多