Laravel8 Duskでは、テストが変わってもブラウザの状態が引き継がれてしまいます。
テストが変わってログイン中の状態を引き継いでほしくないなど、いちいち気にしないと行けないのは面倒過ぎます。逆に、簡略化のために引き継いでほしいということもあります。
この辺りを自動でなんとかするコードを書いてみました。

PHPフレームワーク Laravel実践開発 | 掌田津耶乃 |本 | 通販 | Amazon
Amazonで掌田津耶乃のPHPフレームワーク Laravel実践開発。アマゾンならポイント還元本が多数。掌田津耶乃作品ほか、お急ぎ便対象商品は当日お届けも可能。またPHPフレームワーク Laravel実践開発もアマゾン配送商品なら通常配送...
test/DuskTestCase.phpに幾つかのメソッドを追加します。
下記は追記したコードのみの抜粋です。
abstract class DuskTestCase extends BaseTestCase
{
// テストごとにセッションを削除するか?
private bool $autoDeleteSessions = true;
/**
* テスト実行前のクリーンアップ処理
*/
public function tearUp(): void
{
parent::tearUp();
if($this->autoDeleteSessions) {
$this->deleteBrowserSessions();
}
}
/**
* 次のテスト実行前のクリーンアップ処理
*/
public function tearDown(): void
{
parent::tearDown();
if($this->autoDeleteSessions) {
$this->deleteBrowserSessions();
}
}
/**
* ブラウザのセッションをクリア
*/
public function deleteBrowserSessions(): void
{
foreach (static::$browsers as $browser) {
$browser->driver->manage()->deleteAllCookies();
}
}
/**
* テストごとにブラウザセッションを削除するかどうか設定
*/
public function setAutoDeleteSessions(bool $flag): void
{
$this->autoDeleteSessions = $flag;
}
}

PHPフレームワークLaravel入門 第2版 | 津耶乃, 掌田 |本 | 通販 | Amazon
Amazonで津耶乃, 掌田のPHPフレームワークLaravel入門 第2版。アマゾンならポイント還元本が多数。津耶乃, 掌田作品ほか、お急ぎ便対象商品は当日お届けも可能。またPHPフレームワークLaravel入門 第2版もアマゾン配送商品...
setAutoDeleteSessions()メソッドで自動クリアを有効にするか設定できます。デフォルトはクリアするになっていますのでクリアしたくない場合は各テストクラスの tearUp()メソッドでこのメソッドを呼んで設定すると良いでしょう。
任意のタイミングで手動でクリアしたい場合もあると思いますのでdeleteBrowserSessions()もつけました。
