2011-02-03 22 views
8

CodeIgniterを使用する人は誰でも自動ユニットテストを使用しますか?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) –

答えて

4

あなたはPHPUnitでこの統合を使用することができます - http://www.foostack.com/foostack/

これは、コマンドラインから実行します。ここで

+3

、foostackはCI 2.0以上と互換性がないようです。 –

+2

自分自身ではテストされていませんが、このプロジェクト(https://bitbucket.org/kenjis/my-ciunit)はCI 2.nx用のCIUnit Foostackのフォークです。 – gacrux

3

は、私が何をすべきかです:

  • ダウンロードTest.php
  • 私のCIアプリ
  • のルートに 'T' ディレクトリを作成します
  • トンディレクトリにtest.phpをを入れてブートストラップを作成します。 .phpファイル(下記参照)を使ってテストを初期化します。
  • require_once私のテストではbootstrap.phpファイル。
  • トンディレクトリ

bootstrap.phpでのテストの実行prove

<?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も使い方が簡単です。

+0

これは機能しません(これ以上)。出力は抑制されず、CodeIgniterはPHPプロセスを終了しますので、残念ながらテストは実行されません。 CodeIgniter 2.2.0でテスト済み –

関連する問題