fuelphpでユニットテストを実行すると、No tests found in class "Fuel\Core\TestCase"のwarningが発生する。
原因はphpunit.xmlの中でテストケースを指定する際にワイルドカード(*)を使用している場合(デフォルトでそう)、phpunitがPHPUnit_Framework_TestCaseを継承しているクラスを検索するため、この警告が発生する。
いろいろ調べたが解決策は以下の2つ。
1) ファイル名と中のクラス名を完全に一致させる(大文字小文字も含め)
これはないでしょう。ほとんどの場合ファイル名は小文字で統一しているはず(かな)。
2) 直接PHPUnit_Framework_TestCaseを継承する。
Fuel/Core/TestCaseの中身を見てみよう。
namespace Fuel\Core; /** * A Fuel Specific extension of the PHPUnit TestCase. This will * be used for custom functionality in the future. */ class TestCase extends \PHPUnit_Framework_TestCase { }
ただの空のクラスだ。
下手にクラスの継承元をFuel\Core\TestCaseにすると、そのクラスがphpunitの検索に引っかかり警告が出るというわけ。
根本的な解決としてはこのFuel\Core\TestCaseをabstractにするのが正しいんだが。一応Fuelの開発チームにIssueであげときました。
2014/07/15 追記
* fuelphp 1.7.2でFuel\Core\TestCaseクラスが抽象クラスになるよう修正が行われました。
0 件のコメント:
コメントを投稿