2

我已经按照此处所述配置了 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
4

1 回答 1

1

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

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

  1. 打开终端
  2. 将目录更改为应用程序的测试目录
  3. 运行'phpunit'

另外,教程有点过时了。建议对 Kohana 3.2 中的单元测试设置进行修订:在使用 Kohana 3.2 运行 PHPUnit 时抑制请求

由于它是从 CLI 运行的,因此无法访问 HTTP 环境变量。

根据 PHPUnit 文档配置附录,即使它们不可用,您也可以通过在 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>
于 2012-07-14T15:01:36.003 回答