LoginSignup
4
1

Laravelでデータプロバイダを使ったテストで INFO No tests found. と出てしまう原因

Posted at

はじめに

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), // これでここが動きます
        ];
    }

さいごに

エラーの出力内容が非常にわかりづらかった、、、

4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1