我正在尝试将 SimpleTest 与 CodeIgniter 一起使用,使用maroonbytes提供的代码。我正在使用 LAMP 和 NetBeans 6.9。
test.php 页面在我的浏览器中加载。我有一个存根测试,它显示在下拉选择中。当我尝试运行它时,我收到 2 个 PHP 错误:
消息:include_once(/var/www/sparts3/main/tests/basic_test_v.php):无法打开流:没有这样的文件或目录
消息:include_once(): 未能打开 '/var/www/sparts3/main/tests/basic_test_v.php' 以包含 (include_path='.:/usr/share/php:/usr/share/pear')
路径错误 - basic_test_v.php在子文件夹/tests/views中。
调试器在test.php中指向这个:
function add_test($file, &$test)
出于某种原因,NetBeans 此时没有公开 $file 的值。这是否意味着它是空的?
我已经 jimmied 一行代码,因为它让我通过了 Code 404 Page Not Found。似乎调试器 GET 导致验证器失败。所以我以我无知的方式添加了一个标准(我确定它应该是一个已处理的异常或其他东西):
if ($this->uri->uri_string == '' || $this->uri->uri_string == 'XDEBUG_SESSION_START')
{ ... }
我该如何解决这个问题?顺便说一句,这是试图解决我的另一篇文章,我将对其进行更新;似乎最好把这个问题变成一个离散的问题。
更新 1: 我一直在使用 Web Developer 插件 (Firefox) 来试验 POST 条目。我相信这些在代码中处理不当。在调试时,NetBeans 似乎仍然不愿显示一些字符串变量;这令人沮丧。
更新 2: 在我看来,有效的代码处理在 NetBeans 停止显示变量的同一点停止。我正在逐步完成test.php。我正在完成一个函数add_test($file, &$test)。此函数以 if 语句打开;完成得很好,我可以看到变量。然后是一个新的 if 语句:
if (file_exists($implementation))
{
require_once ($implementation); ...
一旦我在那条线上,就会发生两件事:
- NetBeans 中显示的变量变为空白,除了 SuperGlobals
- 代码表现得好像 $implementation是一个空变量
我在这些行上方添加了一条语句:
$implementation = 'http://var/www/sparts3/main/tests/views/basic_test_view.php';
这不会改变任何事情。无论我是否使用 NetBeans/Xdebug,浏览器的输出都是一样的。
所以它开始看起来像一个 PHP 处理故障。那些存在吗?我可能会尝试从主机服务上传和尝试——仅用于诊断线索,而且很无聊,因为没有调试能力的 CI 对我来说是不感兴趣的。
更新 3: 我在 WAMP PC 上尝试了一切。相同的浏览器结果(加上一些“已弃用”的错误,与 PHP 4 与 5 有关)。我想我可以在那台 PC 上调试(如果 Xdebug 正在运行),但似乎没什么意义。