2011-02-03 47 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也非常易於使用。