2017-08-09 14 views
0

私は、PHPユニットテストスイートで多数のテストを行っています。PHPのメソッドに応じてテストが合格または失敗するユニットの呼び出し

すべてのテストは完全なスイートを実行する際に個別に実行すると、しかし、特定のテストが合格か私はPHPユニット呼び出す方法に応じて、失敗することがあり渡します

$ php phpunit --configuration phpunit.xml --filter FooIntegrationTest 

PHPUnit 5.7.19 by Sebastian Bergmann and contributors. 

................             16/16 (100%) 

Time: 3.97 seconds, Memory: 109.50MB 

OK (16 tests, 36 assertions) 

$ php phpunit --configuration phpunit.xml tests/Integration/FooIntegrationTest.php 

PHPUnit 5.7.21 by Sebastian Bergmann and contributors. 

..........F.F...             16/16 (100%) 

Time: 3.73 seconds, Memory: 111.75MB 

FAILURES! 
Tests: 16, Assertions: 36, Failures: 2. 

問題の不具合は予期しない結果(つまり、コードは正常に実行されます)、PHPエラーまたは例外はありません。

テストの大部分は両方向に渡り、上記の結果を生み出すテストでは特別なことはないようです。

+1

私が気づいた点は、PHPUnitのバージョンが5.7.19と5.7.21の2つのバージョンを実行しているように見えることです。 –

+0

ahはい私は別のVMでテストして、PHPユニットバージョンの問題であるかどうかを確認します。 ただし、バージョンに関係なく問題は解決しません。 – se75

+0

異なるバージョンを実行している場合、他の違い(つまりphpunit.xmlが異なる)や異なるディレクトリ(パスに影響するなど)から実行される可能性があります。 –

答えて

0

が解決 ....

phpunit ... FooIntegrationTest.phpだけ&を開き、関係のないテストクラスから名前空間の競合が単一のクラスファイルは、テストをマッチングを探すためにスイート内のすべてのファイルを開きますphpunit ... --filter FooIntegrationTest一方

をspecfied実行されます。別のファイルでグローバルに名前空間を持つ関数につながり、誤ったパスを引き起こします。

教訓:ユニットテストクラスでグローバルに名前空間付きの関数を宣言しないでください!

関連する問題