前のページで計測したテストカバレッジを確認しながら,カバレッジが 100% になるようにさまざまなテストコードを記載していくことになります.すべてのコードをカバーするテスト記載して実行した結果,コメントの投稿や編集,削除などの機能もテストすることになります.これによりデータベースが更新されることになるので,開発中は頻繁にデータベースを初期化することになるでしょう.つまり,ロールバック,マイグレーション,シードの設定,という一連の作業を頻繁に行うことになります.
vagrant@ubuntu2204 comment_app $ php artisan migrate:rollback ⏎ vagrant@ubuntu2204 comment_app $ php artisan migrate ⏎ vagrant@ubuntu2204 comment_app $ php artisan db:seed ⏎
Ubuntu などの Linux OS (macOS も)では複数のコマンドをセミコロンで区切って一気に実行することができます.
vagrant@ubuntu2204 comment_app $ php artisan migrate:rollback; php artisan migrate; php artisan db:seed ⏎
INFO Rolling back migrations.
2023_10_15_115031_create_comments_table ............................................. 13ms DONE
2019_12_14_000001_create_personal_access_tokens_table ................................ 5ms DONE
2019_08_19_000000_create_failed_jobs_table ........................................... 5ms DONE
2014_10_12_100000_create_password_reset_tokens_table ................................. 4ms DONE
2014_10_12_000000_create_users_table ................................................. 5ms DONE
INFO Running migrations.
2014_10_12_000000_create_users_table ................................................ 10ms DONE
2014_10_12_100000_create_password_reset_tokens_table ................................. 4ms DONE
2019_08_19_000000_create_failed_jobs_table ........................................... 8ms DONE
2019_12_14_000001_create_personal_access_tokens_table ............................... 11ms DONE
2023_10_15_115031_create_comments_table .............................................. 4ms DONE
INFO Seeding database.
Database\Seeders\CommentsTableSeeder .................................................. RUNNING
Database\Seeders\CommentsTableSeeder ............................................ 36.18 ms DONE
vagrant@ubuntu2204 comment_app $
さらに,過去に実行した Linux コマンドは最新のものが 1,000 件程度 history
コマンドで確認できます.grep
は検索にヒットした行だけを表示するためのコマンドです.history
コマンドの履歴番号を指定して同じコマンドを再度実行するには !履歴番号
と入力します.このやり方を理解すると,自動テストやサーバの起動など,複雑なコマンドを覚える必要はほぼなくなります.
history
コマンドで履歴を確認すると,一気に表示が流れてしまい,全てを見るには(邪道ですが)スクロールをする必要があります.
vagrant@ubuntu2204 comment_app $ history ⏎
1 ip a
2 exit
3 ls
(中略)
201 ls -l /var/www/html/
202 php artisan test --coverage-html /var/www/html/cv_reports/comment_app
203 php artisan serve --host=192.168.56.101 --port=8000
例えばキーワードを serve
にして過去のコマンド履歴を検索します.
vagrant@ubuntu2204 comment_app $ history | grep serve ⏎ 79 php artisan serve --host=192.168.56.101 --port=8000 134 php artisan serve --host=192.168.56.101 --port=8000 139 php artisan serve --host=192.168.56.101 --port=8000 144 php artisan serve --host=192.168.56.101 --port=8000 148 php artisan serve --host=192.168.56.101 --port=8000 153 php artisan serve --host=192.168.56.101 --port=8000 157 php artisan serve --host=192.168.56.101 --port=8000 161 php artisan serve --host=192.168.56.101 --port=8000 166 php artisan serve --host=192.168.56.101 --port=8000 173 php artisan serve --host=192.168.56.101 --port=8000 203 php artisan serve --host=192.168.56.101 --port=8000 217 history | grep serve vagrant@ubuntu2204 comment_app $
キーワード serve
を含むコマンドだけが表示されました.履歴から 173 番と全く同じコマンドを実行します.
vagrant@ubuntu2204 comment_app $ !173 ⏎ php artisan serve --host=192.168.56.101 --port=8000 INFO Server running on [http://192.168.56.101:8000]. Press Ctrl+C to stop the server ^C vagrant@ubuntu2204 comment_app $
また,Ctrl + R を押してからキーワードを入力してそのまま実行する方法もあります.Ctrl + R と押すと,次のように表示されます.
vagrant@ubuntu2204 comment_app $ Ctrl + R
(reverse-i-search)`':
そこに serve
と入力すると,コマンド履歴から一つが選ばれて表示されるので,Enter を押下して実行します.
vagrant@ubuntu2204 comment_app $ (reverse-i-search)`serve': php artisan serve --host=192.168.56.101 --port=8000