【问题标题】:Automated Unit Testing with CodeIgniter使用 CodeIgniter 进行自动化单元测试
【发布时间】:2011-02-03 07:12:03
【问题描述】:

任何使用 CodeIgniter 的人都使用自动化单元测试?

似乎 CodeIgniter 的人做单元测试的方式需要有一个在浏览器中运行的控制器,

例如

  1. http://codeigniter.com/user_guide/libraries/unit_testing.html
  2. 或者这个:http://jensroland.com/projects/toast/

但是,我只想从命令行进行测试,我想要自动化测试和构建。

有什么推荐吗?

谢谢。

【问题讨论】:

  • 这是一个很好的 PHPunit 资源。 对真实世界的 Codeigniter 应用程序进行单元测试 http://vimeo.com/28588831

标签: php unit-testing codeigniter


【解决方案1】:

您可以将此集成与 phpunit 一起使用 - http://www.foostack.com/foostack/

然后它将从命令行运行。

【讨论】:

  • 仅供参考,foostack 似乎与 CI 2.0 及更高版本不兼容。
  • 我自己没有测试过,但这个项目 (bitbucket.org/kenjis/my-ciunit) 是 CIUnit Foostack for CI 2.x 的一个分支。
【解决方案2】:

这是我的工作:

  • 下载Test.php
  • 在我的 CI 应用的根目录下创建一个 't' 目录
  • 将Test.php放到t目录下
  • 创建 bootstrap.php 文件(见下文)以初始化测试
  • require_once 我测试中的 bootstrap.php 文件。
  • 在 t 目录中的测试上运行 prove

bootstrap.php:

<?php

// Initialize CodeIgniter, suppressing output.
ob_start();
require_once __DIR__ . '/../index.php';
ob_end_clean();

require_once __DIR__ . '/Test.php';

测试示例:

t/000-sanity.t:

#!/usr/bin/env php
<?php

require_once 'bootstrap.php';

plan(1);

is(true, true, 'Test.php works');

所有 CodeIgniter 的东西都可用。比如你可以$ci =&amp; get_instance();

此设置在 CI 1.7.x 和 2.x 中运行良好。 Test.php 也很容易使用。

【讨论】:

  • 这不起作用(不再)。输出永远不会被抑制,并且 CodeIgniter 会退出 PHP 进程,所以不幸的是测试永远不会运行。使用 CodeIgniter 2.2.0 测试
猜你喜欢
  • 2010-09-10
  • 1970-01-01
  • 1970-01-01
  • 2013-08-29
  • 2023-03-29
  • 2010-12-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多