我按照here的描述配置了kohana(3.2)unittest模块。 所以我有:
APPPATH/tests/
phpunit.xml
sampletest.php
最后一行index.php文件:
require APPPATH.'bootstrap'.EXT;
if ( ! defined('SUPPRESS_REQUEST'))
Request::factory()->execute()->send_headers();
所以第一个问题是在CLI中出现下一个错误:
ErrorException [ 8 ]: Undefined index: SERVER_NAME ~ SYSPATH/classes/kohana/url.php [ 79 ]
这是因为启用了E_STRICT。所以当我关闭E_STRICT时没有任何反应。我的意思是在CLI中没有phpunit的输出,只是空行。
第二个问题是Web访问根本不起作用(http:// localhost / unittest)。发生404错误。也许我应该创建一些路线或什么?
Mac OS 10.7.4
Apache 1.3.41
PHPUnit 3.6.11
Kohana 3.2.0
答案 0 :(得分:1)
Web访问不起作用,因为在Kohana版本3. *中,单元测试模块不再存在Web界面。开箱即用的唯一方法是通过CLI执行此操作。
通常可以通过执行以下操作来完成此操作。
此外,该教程有点过时了。在[{3}}
中建议修订Kohana 3.2中的单元测试设置由于它是从CLI运行的,因此无法访问HTTP环境变量。
根据PHPUnit文档Suppressing the request when running PHPUnit with Kohana 3.2,即使它们不可用,您也可以在操作之前通过在phpunit.xml文件中配置它们来设置它们:
设置PHP INI设置,常量和全局变量
元素及其子元素可用于配置PHP设置,常量和全局变量。它也可以用于添加include_path。
<php>
<includePath>.</includePath>
<ini name="foo" value="bar"/>
<const name="foo" value="bar"/>
<var name="foo" value="bar"/>
<env name="foo" value="bar"/>
<post name="foo" value="bar"/>
<get name="foo" value="bar"/>
<cookie name="foo" value="bar"/>
<server name="foo" value="bar"/>
<files name="foo" value="bar"/>
<request name="foo" value="bar"/>
</php>