【问题标题】:PHP Unit test - include once error for project classPHP单元测试 - 包含项目类的一次错误
【发布时间】:2011-12-15 11:32:05
【问题描述】:

我创建了一些测试,但运行它们时出现问题

In bootstrap I have:

    define("BASE_PATH",str_replace("\\","/",dirname(__FILE__)));

//Get an array of your include paths
$include_parts = explode(PATH_SEPARATOR,get_include_path());

//Extend the paths
$include_parts[] = dirname(dirname(BASE_PATH)); //this is ../../

//recompile the paths and set them
set_include_path(implode(PATH_SEPARATOR,$include_parts));
/**
 * Test if phpunit running on php 5.3 or newer
 */
version_compare(PHP_VERSION, '5.3', '<') and exit('Test requires PHP 5.3 or newer.');
error_reporting(E_ALL & ~E_STRICT);
ini_set('display_errors', TRUE);
define('DOC_ROOT','');

运行测试时我收到警告

警告:include_once():打开失败 '/private/config/abc.php' 用于包含 (include_path='/usr/local/bin:/usr/local/lib/php/:.:/opt/docroot/shared:/export/home/john/public_html/sports') 在 /export/home/john/public_html/sports/private/tests/Football/Match/LineupTest.php 在第 3 行

出了什么问题,因为我看到了包含路径,我看到了我的目录。

【问题讨论】:

  • 你能把 LineupTest.php 的第 3 行粘贴到这里吗?
  • 顺便说一句,exit 采用退出代码(整数)。您可能希望这里的die 返回错误退出代码并显示消息。

标签: php phpunit


【解决方案1】:

您使用绝对路径包含abc.php,因此忽略包含路径。你的文件系统中真的有/private/config/abc.php 吗?

【讨论】:

  • 是的,我也是这么想的(因此评论)。如果你不介意我会回答的;)
【解决方案2】:

您包含'/private/config/abc.php' 而不是'private/config/abc.php',因此此处的包含路径无关紧要。

这可能有两个原因:

  • 你只是有一个错字(因此我的评论是为了看到这一行)
  • 或者您缺少定义并且您的行显示为$path.'/private...,但由于某种原因$path 为空,因此包含失败。

【讨论】:

    猜你喜欢
    • 2018-10-02
    • 2013-05-22
    • 2015-01-12
    • 2015-02-28
    • 1970-01-01
    • 2017-07-24
    • 2019-11-07
    • 2015-12-20
    • 2019-04-19
    相关资源
    最近更新 更多