🥕
Laravel11 testコマンド
この記事は Laravel11にあるartisanコマンドを全部調べる Advent Calendar 2024 24日目の記事です。
今回はtestコマンドについて調べました。
これらはlaravel/frameworkには定義しているものではなく、nunomaduro/collisionのLaravel拡張パッケージに定義しているコマンドです。
laravel/laravelのcomposer.jsonに書かれているパッケージだったので対象に含めています。
環境
- PHP 8.4.1
- laravel/laravel 11.3.3
- laravel/framework 11.33.2
- nunomaduro/collision 8.5.0
test
テストを実行する。
php artisan test
実行するとPHPUnitもしくはPestのテストを実行します。
advent-calendar-2024 % php artisan test
PASS Tests\Unit\ExampleTest
✓ that true is true
PASS Tests\Feature\ExampleTest
✓ the application returns a successful response 0.04s
Tests: 2 passed (2 assertions)
Duration: 0.07s
また、PHPUnitもしくはPestに渡すことができる引数はtestコマンドでも渡すことができます。
advent-calendar-2024 % php artisan test --testsuite=Feature
PASS Tests\Feature\ExampleTest
✓ the application returns a successful response 0.07s
Tests: 1 passed (1 assertions)
Duration: 0.14s
オプション | 説明 |
---|---|
--without-tty |
TTYへの出力を無効 |
--compact |
結果を簡潔に表示 |
--coverage |
コードカバレッジの計測 |
--min[=MIN] |
コードカバレッジの最小しきい値を指定 |
-p --parallel
|
テストを並列で実行 |
--profile |
もっとも遅いテストトップ10のリスト表示 |
--recreate-databases |
テストデータベースの再作成 |
--drop-databases |
テストデータベースの削除 |
--without-databases |
テストデータベース接続が無効 |
-
--without-tty
を付けるとTTYへの出力を無効にできます -
--compact
を付けるとテスト結果を簡潔に表示します
advent-calendar-2024 % php artisan test --compact
..
Tests: 2 passed (2 assertions)
Duration: 0.14s
-
--coverage
を付けるとコードカバレッジの計測が可能です
カバレッジ計測を行うには別途Xdebug、またはPCOVが必要です -
--min
を使うことでテストカバレッジの最小値を指定できます
指定した値に満たないテストは失敗します -
-p
、もしくは--parallel
を付けるとテストを並列で実行できます
このオプションを使うにはbrianium/paratestパッケージのインストールが必要です -
--profile
を付けるともっとも遅い10件のテストのリストが表示できます
advent-calendar-2024 % php artisan test --profile
PASS Tests\Unit\ExampleTest
✓ that true is true
PASS Tests\Feature\ExampleTest
✓ the application returns a successful response 0.07s
Tests: 2 passed (2 assertions)
Duration: 0.14s
Top 10 slowest tests:
Tests\Feature\ExampleTest > the application return 0.07s
Tests\Unit\ExampleTest > that true is true 0.00s
────────────────────────────────────────────────────────
(54.31% of 0.14s) 0.08s
-
--recreate-databases
を付けると並列テストの開始時にテストデータベースを再作成します -
--drop-databases
を付けると並列テストの終了時にテストデータベースを削除します -
--without-databases
を付けると並列テスト中にテストデータベースへの接続を無効化します
Discussion