Bootstrap para teste de integração de plugins WordPress com PHPUnit.
composer require --dev jdgrimes/wpppb
Primeiro, você precisará de um checkout local do repositório de desenvolvimento do WordPress, incluindo o diretório tests
. A forma recomendada de conseguir isso, principalmente se você pretende contribuir com o núcleo do WordPress, é com VVV. O WPPPB baseia-se nas ferramentas de teste já incluídas no núcleo do WordPress, portanto não funcionará sem elas.
Depois de ter uma cópia local do diretório tests
do WordPress, você pode executar o script de configuração do WPPPB:
vendor/bin/wpppb-init
Responda às instruções e você estará pronto para começar!
Seus testes serão colocados no diretório tests
que será criado na raiz do seu projeto (ou seja, junto com o diretório vendor
adicionado pelo Composer). Espera-se que a fonte do seu plugin (a parte que seria compactada e instalada em um site WordPress) esteja em um diretório src
ao lado desses dois, e não na raiz do seu projeto em si. Exemplo de estrutura de arquivo ficaria assim:
- src/
- my-plugin.php
- includes/
- etc.
- tests/
- vendor/
Com algumas modificações, você provavelmente poderia usar o WPPPB com uma estrutura de diretórios diferente, mas é isso que ele espera por padrão.
Você pode executar seus testes do PHPUnit como faria normalmente:
phpunit
Você também pode fazer outras coisas interessantes, como testar a rotina de desinstalação do seu plugin.
(Observe que o bootstrap padrão utiliza o autoloader PHP do Composer, que requer PHP 5.3. Veja aqui instruções sobre como usar o PHP 5.2.)
O objetivo deste projeto é fornecer um bootstrap para desenvolvedores de plugins que desejam realizar testes de integração para seus plugins usando o testsuite principal do WordPress. O seu objectivo não é apenas tornar isto mais fácil, mas também melhor, fornecendo uma implementação que torne os testes tão realistas quanto possível.
Para isso, o carregador funciona ativando remotamente o(s) plugin(s) e deixando o WordPress carregá-los normalmente. Isso fornece testes mais realistas do que incluir e ativar manualmente os plug-ins na ação muplugins_loaded
, como normalmente é feito.
O código deste projeto é fornecido sob a licença do MIT.