Teste de unidade PHP WordPress?


8

Dado como o WordPress é escrito e como ele interage com um banco de dados e como não é muito orientado para OOP, existe uma maneira de testar um tema de unidade? existe uma maneira de testar a unidade de uma estrutura (não uma estrutura de tema) que interaja com o WordPress, ou seja, por exemplo, você pode escrever um teste de unidade para lidar com o loop, lidar com os widgets?

Se sim, alguém tem algum exemplo? Eu sei escrever testes de unidade, mas nunca tentei escrever um para um tema.

Pensamentos?

Respostas:


5

Não há nada que o impeça de escrever seu próprio teste de unidade para temas / plugins usando PHPUnit ou alguma outra plataforma de teste.

Quanto ao WordPress, ele tem testes de unidade oficiais aqui:

Existem vários scripts de construção que podem automatizar o teste de unidade encontrado aqui, incluindo o WP-CLI que foi construído no teste de unidade, embora você precise obviamente escrever seu próprio código.

Também encontrei este plugin hoje através do discurso do scibu no twitter :)
http://wordpress.org/extend/plugins/razor/
Há mais alguns no repositório:
http://wordpress.org/extend/plugins/tags/phpunit

Confira também : Tutoriais para teste de unidade no WordPress e para unit-test.svn.wordpress.org?


3

Eu escrevi a biblioteca de testes PHPunit do Travis-CI para o Jigoshop e o Easy Digital Downloads, ambos plug-ins de comércio eletrônico WP desenvolvidos no Github. A biblioteca utilizada pode ser facilmente convertida para trabalhar com temas. O bom do pacote com o Travis-CI é que podemos usá-lo para testar rapidamente várias versões de PHP e WP. Se seu tema é um tema premium e, portanto, colocá-lo em um repositório gratuito do Github não é uma opção, o pacote funciona em repositórios particulares do Github com o Travis-CI.

Como alternativa, você pode usar o encontrado no Jigoshop e usar o PHPUnit com linha de comando.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.