5
respostas

Problema no Arquivo .env.testing

Após Realizar o Teste na classe CriadorDeSerieTest, minha base apaga.

Meu arquivo .env.testing está idêntico ao da aula.

com as linhas

DB_CONNECTION=sqlite
DB_DATABASE=:memory:

Estou suspeitando que o problema seja devido ao meu Sistema Operacional: Ubuntu 18.04 LTS e na aula é Windows.

Alguém pode me ajudar?

5 respostas

Atualizei meu Ubuntu para o 20.04 LTS e, aparentemente, permanece o problema.

Olá Aloizio,

Qual base de dados que está sendo apagada? Ao utilizar o sqlite com o :memory: o banco de teste não vai existir após a execução dos testes, é criado o banco apenas em memória e após executar os testes o banco é apagado.

Bom dia Lucas, a base que fica no arquivo database.sqlite.

Segui passo a passo a aula: Corrigindo o ambiente, na parte 8 do curso de Laravel parte 2.

Mesmo eu revertendo para a forma anterior , sem o use RefreshDatabase no arquivo CriadorDeSerieTest e removendo o .env.testing os valores não aparecem.

Desconfiei de algo para configurar na IDE , no php unit do Eclipse.

Meu arquivo CriadorDeSerieTest.php está assim:

namespace Tests\Feature;

use Tests\TestCase;
use Illuminate\Foundation\Testing\WithFaker;
use Illuminate\Foundation\Testing\RefreshDatabase;
use App\Services\CriadorDeSerie;
use App\Serie;

class CriadorDeSerieTest extends TestCase
{
    use RefreshDatabase;

    public function testCriarSerie()
    {
        $criadorDeSerie = new CriadorDeSerie();
        $nomeSerie = 'Nome de teste';
        $serieCriada = $criadorDeSerie->criarSerie($nomeSerie, 1, 1);

        $this->assertInstanceOf(Serie::class, $serieCriada);
        $this->assertDatabaseHas('series', ['nome' => $nomeSerie]);
        $this->assertDatabaseHas('temporadas', ['serie_id' => $serieCriada->id, 'numero' => 1]);
        $this->assertDatabaseHas('episodios', ['numero' => 1]);

    }
}

Entendi, parece que você seguiu os passos corretamente mesmo. Testa por favor utilizando o projeto final do curso disponibilizado pelo professor.

É só extrair o projeto em uma pasta separada e após executar o composer install você pode fazer todos os testes e verificar se o mesmo problema acontece.

Tive o mesmo problema, com o projeto final, porém notei que ao executar direto pelo terminal não tenho problema, tanto no meu projeto quanto no projeto final. Acredito que seja alguma configuração do Eclipse que está causando esse problema, ignorando a variável .env.testing.