私たちのプロジェクトでは、PHPUnit フレームワークの上にフレームワークを作成しました。これは、単体テストを作成する際の一般的なタスクのいくつかに役立ちます。
このカスタム フレームワークは PHPUnit_Framework_TestCase から継承し、 mySetup() を変更して、コードに便利な関数を追加します。
<?php
class OurUnitTestFramework extends PHPUnit_Framework_TestCase {
public $dbMock;
protected function mySetup (..) { ... }
protected function testHelper () { ... }
}
?>
テスト コードでは、OurUnitTestFramework を拡張してテストを記述します。
<?php
require_once ("OurUnitTestFramework");
class DatabaseConnectionTest extends OurUnitTestFramework {
parent::setUp (..) { ... }
public function testSomeThing () { ... }
public function testSomeOtherThing () { ... }
}
?>
これまで、Jenkins を介してすべての単体テストを実行していましたが、まだ正常に実行されていますが、フォルダーでテストを実行しようとすると失敗します。フォルダー/サブフォルダー内のすべてのテストは正常に実行されますが、1 つの失敗があります。
[sumit@dev model]$ phpunit database
PHPUnit 3.5.14 by Sebastian Bergmann.
F........
Time: 0 seconds, Memory: 10.50Mb
There was 1 failure:
1) Warning
No tests found in class "OurUnitTestFramework".
FAILURES!
Tests: 9, Assertions: 30, Failures: 1.
サブディレクトリを持つディレクトリ データベースがあり、すべてのテストはそのフォルダーとそのサブフォルダーからパスしますが、OurUnitTestFramework から、このカスタム フレームワークにテストが見つからないというエラーが発生します。テストファイルに含まれている/拡張されているファイルに対してphpunitが単体テストを実行している理由を理解できませんか?
この 1 つのエラーを無視することを選択することもできますが、このままにしておいてよいかどうか、またはそれを通過させるために何か構成する必要があるかどうかを知りたいと思いました。
ありがとう