Phpunit: ChildTestのスペルが正しくない場合、TestBaseクラスにテストが見つかりません

作成日 2017年08月25日  ·  4コメント  ·  ソース: sebastianbergmann/phpunit

| Q | A
| -------------------- | ---------------
| PHPUnitバージョン| 5.7.21
| PHPバージョン| 5.6.30
| インストール方法| 作曲

こんにちは、

クラス名を正しく記述しないと、PHPUnitで奇妙な動作が見つかりました。 #731と関係があると思います

シチュエーション:

  • 2つのクラスがあります。

    • _Test_で終わらないTestBaseクラスを含むTestBase.phpファイルであるため、呼び出さないでください

    • MyTestクラスを含むChildTest.phpファイル(その場合は間違った名前)。 phpunit tests/を実行すると、次のようになります。 No tests found in class "Edyan\MyPackage\Tests\TestBase"で、クラスに含まれるテストは適切に実行されます。

  • TestBaseabstract $として設定した場合:問題ありません

  • MyTestの名前をChildTestに変更した場合:問題ありません

何か案が ?
ありがとう

最も参考になるコメント

独自のテストを含まないTestBaseクラスなどの基本クラスは、 abstractとして宣言する必要があります。 その場合、PHPUnitは存在しないテストを実行しようとしません。

全てのコメント4件

コンポーザーを使用しているため、PSR-0 / 4オートローダーを使用します。 PSR標準によると、クラスとファイル名の不一致はエラーです。

ご回答有難うございます、

これは、PHPUnitがファイルとは異なる名前のクラスをロードしてはならないことを意味しますか? composerを使用して、 CDE.php $にあるクラスABCをロードしようとすると、エラーが発生します。

ありがとう

独自のテストを含まないTestBaseクラスなどの基本クラスは、 abstractとして宣言する必要があります。 その場合、PHPUnitは存在しないテストを実行しようとしません。

それは明らかです、ベストプラクティスに感謝します

このページは役に立ちましたか?
0 / 5 - 0 評価