5
respostas

Erro ao executar o teste 'PDO Exception'

Acompanhei o passo a passo da aula mas ao rodar o phpunit recebo este erro:

ingrid.grelo@QAV-WS015:~/work/alura/mocks$ phpunit PHPUnit 8.5.2 by Sebastian Bergmann and contributors.

..............E 15 / 15 (100%)

Time: 76 ms, Memory: 10.00 MB

There was 1 error:

1) Alura\Leilao\Tests\Service\EncerradorTest::testleiloesComMaisDeUmaSemanaDevemSerEncerrados PDOException: could not find driver

/home/ingrid.grelo/work/alura/mocks/src/Infra/ConnectionCreator.php:15 /home/ingrid.grelo/work/alura/mocks/src/Dao/Leilao.php:14 /home/ingrid.grelo/work/alura/mocks/tests/Service/EncerradorTest.php:57

ERRORS! Tests: 15, Assertions: 25, Errors: 1.

Aconteceu antes e depois de implementar o duble... não sei como resolver :(

5 respostas

Você esta usando Sqlite? Parece que alguma extensão que o pdo utliza não esta instalada ou habilitada no php. Para resolver isso você vai no seu arquivo php.ini e remove o ";" da linha onde vc habilitia a extensão do sqlite, se for o sqlite que vc esta usando, caso seja outro banco, vc procura no arquivo a extensão correspondente ao seu banco de dados;

acha uma linha igual essa e remove o ;
;extension=pdo_sqlite

vai ficar assim

extension=pdo_sqlite

Você pode verificar as extensões que vc tem com o comando php -m

Se mesmo depois de alterar o arquivo ainda assim persistir o erro, talvez vc tenha que instalar a extensão, dai vai depender do teu sistema operacional o metodo de instalação

Também tive esse erro. Conseguir resolver fazendo o que o Vinicius comentou, mas também precisei executar o comando "sudo apt-get install php-sqlite3", para instalar o sqlite. (Uso linux)

Agradeço imenso a ajuda!! Mas não pude resolver...

Estou a usar meu computador do trabalho e não tenho permissão para alterar o php.ini (Failed to save 'php.ini': Insufficient permissions. Select 'Retry as Sudo' to retry as superuser.)

O meu computador pessoal não anda muito bem e tenho preferido estudar e fazer os exercicios neste, mas terei de rever isto.

Mais uma vez obrigada! :)

Mas você não tem a senha do computador? Se vc tiver a senha pode abrir o php.ini com o comando sudo, ai vc vai conseguir editar.

Você pode usar este comando

sudo gedit caminho_para_arquivo_php.ini

É o computador do meu trabalho... não tenho acesso... eu cheguei a alterar o arquivo php.ini mas nao tem como salvar.

Mas segui a aula e foi possivel acompanhar pois afinal nao precisamos usar o BD depois de certo ponto :)

Obrigada pela ajuda!! ;)