1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

laravel PHPUnitテスト testから始まるメソッド名を記載しているのにNo tests found.のエラーが発生する

Last updated at Posted at 2023-08-05

概要

  • テストクラスとテストメソッドを定義し、ファイルを指定してテストを実行したがINFO No tests found.がでてテストが実行されなかった。ちょっとだけ詰まったので解決策を記載する。

問題発生までの経緯

  • 下記のようなテストコードのメソッドを記載した。当該のテストクラスには下記のメソッドしか存在しない。別のメソッドをそのまま持ってきているのでDocコメント部分にデータプロバイダーの呼び出しなどが記載されたままになっている。

    test.php
        /**
         * 正常系
         *
         * make method-test class=tests/Feature/App/Http/Controllers/User/ChangeTypeControllerTest.php method=test_ユーザータイプ更新_正常系
         *
         * @dataProvider validParamsDataProvider
         * @param array<string, string|int> $validParams
         * @return void
         * 
         */
        public function test_ユーザータイプ更新_正常系(/* array $validParams */): void
        {
            dd('');
            $user = User::factory()->createOne(['email' => 'test1@example.com']);
            $requestBody = [
                'userId' => $user->id,
                'userTypeMasterId' => $user->userTypeMasterId,
            ];
        
            $response = $this->sendRequest($this->path, $this->method, $requestBody);
        
            $response->assertStatus(Response::HTTP_OK);
    /*         $this->assertDatabaseHas(
                'users',
                [
                    'email' => $validParams['email'],
                    'name' => $validParams['name'],
                    'user_type_master_id' => $validParams['userTypeMasterId'],
                ]
            ); */
        }
    
  • 上記のテストメソッドしか記載されていないテストクラスを指定してPHPUnitでテストを実行した。

問題発生

  • 下記のエラーがでて当該のテストクラスが実行されない。

    INFO  No tests found.
    

問題解決までの経緯

  • 一つ一つ問題が無いか確認する。
  • まずはphp artisan testコマンドで指定しているパスが正しいかを確認した。
    • 特に問題なさそう。
  • テストメソッドがテストメソッドとして認識されるようになっているか(@testアノテーション付与 or メソッド名をtestで始める)を確認した。
    • 特に問題なさそう。
  • 当該のテストメソッドのDocコメントを一旦削除した。
  • ↑を実施したところテストメソッドが実行されdd()で止まった。

原因

  • 存在しないデータプロバイダーメソッドをDocコメント内部で呼んでいたためだった。怠慢はよくない。
1
0
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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?