kohana unittest(cli和web access)的一些问题

时间:2012-07-01 21:22:05

标签: unit-testing phpunit kohana command-line-interface kohana-3.2

我按照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

1 个答案:

答案 0 :(得分:1)

Web访问不起作用,因为在Kohana版本3. *中,单元测试模块不再存在Web界面。开箱即用的唯一方法是通过CLI执行此操作。

通常可以通过执行以下操作来完成此操作。

  1. 打开终端
  2. 将目录更改为应用程序的tests目录
  3. 运行'phpunit'
  4. 此外,该教程有点过时了。在[{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>