次のようなPHPUnitテストがあります。
/**
* @dataProvider provideSomeStuff
*/
public function testSomething($a, $b, $c)
{
...
}
/**
* @dataProvider provideSomeStuff
* @depends testSomething
*/
public function testSomethingElse($a, $b, $c)
{
...
}
/**
* @depends testSomething
*/
public function testMoreStuff()
{
...
}
// Several more tests with the exact same setup as testMoreStuff
成功しても、testSomething
それに依存するすべてのテストはスキップされます。PHPUnit マニュアルのいくつかの注記は、テストがデータ プロバイダーを使用する他のテストに依存する可能性があることを示しています。
注:
テストが @dataProvider メソッドと、それが依存する 1 つ以上のテストの両方から入力を受け取る場合、データ プロバイダーからの引数は、依存するテストからの引数の前に来ます。メモ
テストがデータ プロバイダーを使用するテストに依存している場合、依存するテストが少なくとも 1 つのデータ セットに対して成功すると、依存するテストが実行されます。データ プロバイダーを使用するテストの結果は、依存するテストに注入できません。
したがって、すべてのテストをスキップする理由がわかりません。私は何時間もこれに苦労してきました、誰かが私を助けてください。上記の疑似コードから問題を導き出せない場合の完全なテスト コードを次に示します。
テスト結果のスクリーンショット: