Fato de teste independente do Laravel Dusk, que não requer a própria estrutura do Laravel.
Laravel Dusk fornece uma API de teste e automação de navegador expressiva e fácil de usar. Por padrão, o Dusk não exige que você instale JDK ou Selenium em sua máquina. Em vez disso, Dusk usa um driver Chrome independente. No entanto, você é livre para utilizar qualquer outro driver Selenium que desejar.
Para começar, você deve adicionar a dependência do unglud/dusker Composer ao seu projeto:
composer require --dev unglud/dusker
Em seguida, você precisa copiar todos os arquivos necessários para o seu diretório de trabalho. O comando abaixo fará isso por você. Ele cria (ou usa o diretório tests
existente) e coloca os arquivos lá. Além disso, ele copia o utilitário do console artisan
para o diretório raiz do projeto. Se você já possui este arquivo, ele será sobrescrito!
O arquivo .env.dusk
também estará na raiz do seu projeto, que você precisará renomear para .env
ou copiar o conteúdo para o arquivo existente.
composer run-script post-install-cmd -d ./vendor/unglud/dusker
Se desejar que esses arquivos sejam atualizados automaticamente sempre que você atualizar este pacote, você pode adicionar isto ao seu arquivo composer.json
:
"scripts": { "post-install-cmd": [ "DuskerCopyFile::copy" ], "post-update-cmd": [ "DuskerCopyFile::copy" ] }, "extra": { "copy-file": { "vendor/unglud/dusker/src/example/": "tests/", "vendor/unglud/dusker/artisan": "artisan" } }
Como você percebe, o arquivo .env.dusk
não está incluído lá para simplificar as coisas.
Depois de instalar o pacote, os comandos do Artisan estarão disponíveis em seu projeto raiz. Execute o comando dusk:install
Artisan:
php artisan dusk:install
Agora tente executar o teste para ter certeza de que tudo funciona
php artisan dusk
Após esta parte você pode usar a documentação oficial do Dusk no site do Laravel, porque funcionará exatamente como foi projetado por Taylor Otwell.
Freqüentemente, você testará páginas que requerem autenticação. Você pode usar o método loginAs do Dusk para evitar interagir com a tela de login durante cada teste. O método loginAs aceita login
de usuário e password
:
$this->browse(function (Browser $browser) { $browser->loginAs('username', 'password') ->visit('/home'); });
Após utilizar o método loginAs, a sessão do usuário será mantida para todos os testes dentro do arquivo.
Como não temos acesso ao Auth
e Router
nativos do Laravel, por usá-lo sem o Laravel, precisamos configurar a funcionalidade de login. Em .env
você deve especificar LOGIN_ENDPOINT
- caminho para seu diretório público onde Dusker copiará o arquivo que estará acessível a partir de um navegador. Por padrão é http://example.com/_dusker/login.php
. Segundo LOGIN_IMPLEMENTATION
-- caminho para sua classe, que utiliza a lógica do seu projeto permitindo autenticação. Você pode usar /tests/LoginManagerExample.php
como exemplo de como deve ser.
Dusker é lançado sob a licença do MIT. Consulte o arquivo LICENSE incluído para obter detalhes.