2
votes

I just discovered Laravel Dusk, and I was excited to use it in my project. However, it can't seem to get it to work. I followed the Laravel Documentation to install Dusk. When I run php artisan dusk in the terminal, I get

  [Symfony\Component\Process\Exception\RuntimeException]
  TTY mode is not supported on Windows platform.

I found this (https://github.com/laravel/dusk/pull/13/files) which is supposed to fix it I think, but I still get the error.

Also, I attempted to run the Dusk tests through PhpStorm following the accepted answer here (https://laracasts.com/discuss/channels/testing/dusk-via-phpstorm), but I get a Class config does not exist error. Many people said that this caused by a space in the .env file, but that is not my issue.

Can anyone help me figure out what is going on with Laravel Dusk in my setup? My Laravel project is 5.4 and I'm using Laravel Dusk 1.0 and PhpStorm is 2017.2.1

1

1 Answers

4
votes

You can install chromedriver into windows on your own, and try not to use the version that is shipped with laravel dusk. Remember that, your chromedriver version needs to match your currently installed Chrome version, and when Chrome gets updated, then you need to update/reinstall chromedriver manually again. Hopefully it does not happen too often, and when there are updates, you benefit from using latest versions, which I find really nice :) Download it here.

After installing chromedriver, you need to start it from command line (just issue command in your download/install directory chromedriver) or add it as service (which I do not prefer, cause I want to have control of which service is running on 9515 port).

Finally you need to comment out // static::startChromeDriver(); in your DuskTestCase.php, which tries to start laravel dusk included chromedriver, cause in this case, you are already running one.

Run dusk tests again and all should be working fine.

I don't know what your system setup is, but I am using this workaround on windows 10 with Laravel 5.5, dusk 2.0, which still causes problems, when chrome gets updated.

BTW. Just to mention. This also works with CI workflows using docker. You can read more about it here