【发布时间】:2014-07-10 23:39:14
【问题描述】:
在 MyTest.php 中运行没有错误的 Simpletest 测试:
require_once ('simpletest/autorun.php');
class MyTest extends UnitTestCase {
function test() {
//Test...
}
}
一个 SimpleTest 测试套件
require_once ('simpletest/autorun.php');
class AllTests extends TestSuite {
function __construct() {
$this->TestSuite('All tests');
$this->addFile('MyTest.php');
}
}
错误:
致命错误:无法在 /Library/WebServer/Documents/option/tests/simpletest/autorun 中重新声明 simpletest_autorun()(之前在 /Library/WebServer/Documents/Option/tests/simpletest/autorun.php:26 中声明)。第34行的php
(可怕的)解决方案,将 MyTest.php 更改为:
if (!function_exists("simpletest_autorun")) {
require_once ('simpletest/autorun.php');
}
class MyTest extends UnitTestCase {
function test() {
//Test...
}
}
这个例子似乎遵循文档,它没有或 SimpleTest 有这个错误?
【问题讨论】:
-
您在错误消息中将完整路径替换为 "dir" 所省略的信息是找出问题的关键。
-
@Phil 已更新完整目录。我认为这就是我更换的原因。更仔细地看,有一个标题“o”的区别
-
好了。 OS X 文件系统区分大小写。
-
@Phil 但它没有解释为什么要调用不同的案例。考虑到 MyTest.php 和 AllTest.php 位于同一个目录中,调用 require_once 应该会产生不同的输出
-
这个问题中没有足够的信息可以说明。在某处,您有一些在
Option中查找的代码和在option中查找的一些其他代码。据我所知,甚至可以在您的include_path中进行配置。
标签: php simpletest