結論から言うと
Dusk内部で使用しているSeleniumのChromeDriverがパーミッションの問題で起動できていなかった
以下のコマンドで実行権限を付与する
cd [Laravelのディレクトリ]
chmod 755 vendor/laravel/dusk/bin/*
経緯
Laravleの実行環境は macOS Sierra + Laradock
公式ドキュメントや各種紹介記事と同じようにDuskを導入して実行するとエラーが発生
(LaradockのworkspaceコンテナにChromeは入っていないのでDuskはMac上で実行)
エラーメッセージは特に表示されない
php artisan dusk
PHPUnit 5.7.21 by Sebastian Bergmann and contributors.
E 1 / 1 (100%)
Time: 366 ms, Memory: 13.00MB
There was 1 error:
1) Tests\Browser\ExampleTest::testBasicExample
テスト実行前に落ちてる気配がするので、例外を捕まえて無理やりメッセージを表示できるか試みる
ExampleTest.php
class ExampleTest extends DuskTestCase
{
/**
* A basic browser test example.
*
* @return void
*/
public function testBasicExample()
{
try{
$this->browse(function (Browser $browser) {
$browser->visit('/')
->assertSee('Laravel');
});
}catch (\Exception $e){
echo "\n";
echo $e->getMessage();
echo "\n";
throw $e;
}
}
}
エラー内容の確認に成功
(9515ポートはChromeDriverが待ち受けているはずのポート)
php artisan dusk
PHPUnit 5.7.21 by Sebastian Bergmann and contributors.
E 1 / 1 (100%)
Curl error thrown for http POST to /session with params: {"desiredCapabilities":{"browserName":"chrome","platform":"ANY"}}
Failed to connect to localhost port 9515: Connection refused
Time: 369 ms, Memory: 13.00MB
There was 1 error:
1) Tests\Browser\ExampleTest::testBasicExample
Google検索した所、ポートの競合or権限不足で起動失敗の可能性
ポートの競合はなかったので実行権限を付加したところ無事起動
duskインストールの際にcomposer update
をworkspaceコンテナで実行したせいで実行権限が付加されなかったのかも?