0
respostas

.env.testing não funciona, base principal é apagada nos testes

Após executar esses comandos, nessa sequência:

php artisan key:generate
php artisan config:cache

Meu arquivo .env.testing parece estar sendo ignorado e os testes estão rodando no database principal, limpando todas as séries e até logins após execução.

Gostaria de saber como posso reverter essa situação?


Edit:

Fala galera descobri!

Pelo que entendi (me corrijam se eu estiver errado), o comando:

php artisan config:cache

GERA um cache.

E de acordo com esse link: https://github.com/laravel/framework/issues/13374

"Observe que o cache de configuração e rota deve ser usado durante a implantação na produção. Não os use no desenvolvimento local, pois eles impedirão que você execute os testes em um ambiente de teste."

Apaguei os caches usando:

php artisan cache:clear
php artisan route:clear
php artisan config:clear
php artisan view:clear

Obs.: Acredito que apenas o config:clear já resolveria mas por via das dúvidas limpei todos os caches, já que aparentemente eles são mais úteis em um ambiente de produção e o phpunit não gosta muita deles hehe.

Espero que esse post ajude quem teve o mesmo problema e cuidado ao executar comandos da internet como eu fiz haha...

É provável que o problema de encryption teria sido resolvido apenas com o primeiro comando php artisan key:generate sem a necessidade de gerar cache com o segundo.

Vivendo e aprendendo!


edit 2:

O problema é que .env.testing não está usando as variáveis do .env e apenas substituindo as citadas nele...

É preciso gerar uma key para o ambiente de testes com:

php artisan key:generate --env=testing

Que não está funcionando =D

Ele não coloca uma key dentro do .env.testing


Edit 3:

É necessário adicionar manualmente no .env.testing APP_KEY= e depois pode rodar o php artisan key:generate --env=testing que ele vai criar a chave.

Mas...o inimigo agora é outro...

public function testBasicTest()
    {
        $response = $this->get('/series');

        $response->assertStatus(200);
    }

Por que esse teste retorna false? (subi o artisan serve em outra aba do terminal)