2011-02-03 93 views
8

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

看起来是那样笨的家伙做单元测试必须在其浏览器中运行的控制器,

例如

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

然而,我只希望从命令行测试,我想自动测试和构建。

任何推荐?

谢谢。

+0

这是一个很好的PHPunit资源。 **单元测试现实世界的Codeigniter应用** [http://vimeo.com/28588831](http://vimeo.com/28588831) – 2014-02-27 17:52:24

回答

4

你可以使用这个集成在PHPUnit - http://www.foostack.com/foostack/

然后,它将在命令行中运行。

+3

仅供参考,foostack似乎与CI 2.0及以上版本不兼容。 – 2011-10-13 18:33:31

+2

未对自己进行测试,但此项目(https://bitbucket.org/kenjis/my-ciunit)是CI 2.x的CIUnit Foostack的一个分支。 – gacrux 2012-05-25 01:03:30

3

这是我做的:

  • 下载Test.php
  • 我的CI应用程序的根目录下创建一个 'T' 目录
  • 将test.php的在T目录
  • 创建一个自举.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 =& get_instance();

这个设置在CI 1.7.x和2.x中很好用。 Test.php也非常易于使用。