phpでユニットテストを行うときはPHPUnitがお勧めですが, PEARの run-tests( .phpt ) というのもあるので紹介しておきます。
PEARがインストールされていれば使えるので PEAR をインストールします。
composer require pear/pear
例 : m.php
<?php
function implode_recursive($glue, array $pieces) {
$result = array();
array_walk_recursive($pieces, function($value) use(&$result) {
$result[] = $value;
});
return implode($glue, $result);
}
テストファイルをディレクトリ tests/ 以下に作成します。ファイル名は 001.phpt とします。
例 : tests/001.phpt
--TEST--
test 001
--FILE--
<?php
require __DIR__ . '/../m.php';
$test = array(
"hoge",
"fuga",
array(
array(
1,
2,
),
"foo",
"bar",
array(),
"qux",
),
"piyo",
);
var_dump(implode_recursive(",", array()));
var_dump(implode_recursive(",", $test));
var_dump(implode_recursive("", $test));
?>
--EXPECT--
string(0) ""
string(30) "hoge,fuga,1,2,foo,bar,qux,piyo"
string(23) "hogefuga12foobarquxpiyo"
書き方は次のようになっています
--TEST--
コメント
--FILE--
phpによる標準出力への出力
--EXPECT--
予想される結果
これで「phpによる標準出力への出力」と「予想される結果」を単純に比較してくれます
コマンドラインから以下のように実行します
cd tests/
pear run-tests
これだけで フォルダ内の全ての .phpt ファイルを読み込んでテストを実行します。
テスト結果
Running 1 tests
PASS test 001[001.phpt]
TOTAL TIME: 00:01
1 PASSED TESTS
0 SKIPPED TESTS
以下のようにするとテストが失敗した時に色がついて表示されるのでオススメです
pear run-tests | grep --color=auto -i -e 'fail' -e'$'
以下のようにエイリアスを作成しておくと phpt と入力するだけでテストが走るので便利です
vi ~/.bash_profile
alias phpt="pear run-tests | grep --color=auto -i -e 'fail' -e'$'"