はじめに
PHPUnitを使用していて、データプロバイダを使用したテストを書いていて、INFO No tests found.
と言われかなりハマったので、戒めにさらっと書きます!
エラー内容
- テストを実行すると
INFO No tests found.
と出てしまう。
試したこと(現状)
- データプロバイダの命名に違いがないか
- タイポはないか
- データプロバイダのアノテーションを消すと動くこと
原因
- 結論、問題の原因はデータプロバイダの中で、ファサードを使っていたことでした。
- データプロバイダはLaravelのライフサイクルの外みたい?です
use Str; // このようにファサードで使うのはNG
private function getDefaultInvalidParams(): array
{
return [
'receiverId' => 999999999999999,
'message' => Str::random(2001), // ここでエラー
];
}
解決策
- データプロバイダの中ではファサードは使わない
use Illuminate\Support\Str; // ファサードでuseしない
private function getDefaultInvalidParams(): array
{
return [
'receiverId' => 999999999999999,
'message' => Str::random(2001), // これでここが動きます
];
}
さいごに
エラーの出力内容が非常にわかりづらかった、、、