O Drupal 8 está complementando a estrutura de teste baseada no Simpletest com PHPUnit , e o Simpletest pode ser removido no Drupal 9.
Ainda não estou atualizando para o Drupal 8, mas queria saber como posso escrever testes existentes no PHPUnit (para acompanhar a tendência) do Drupal 7, em vez do Simpletest?
Existe algum método ou módulo para integrar o PHPUnit ao Drupal 7?
Existem poucos como phpunit ou drunit , mas não são para o Drupal 7.
Respostas:
Você pode executar os testes do PHPUnit executando o Drupal dentro de cada um dos seus arquivos de teste. Não é o ideal, mas funciona.
fonte
O PHPUnit fornece uma API agradável para construir os objetos, enquanto o teste mais simples do Drupal não. Existe uma biblioteca disponível no gist para integrar o PHPUnit ao Drupal 7 .
Para executar esses scripts, você precisa fazer o checkout deste repositório gist . Para executar testes de unidade na linha de comando, basta ir ao site do Drupal (por exemplo,
<DRUPAL_ROOT>/sites/default
) e usar o dphpunit.bash da mesma maneira que usaria o comando phpunit.O script consiste em 3 arquivos:
Fonte: http://devblog.more-onion.com/content/writing-unit-tests-drupal-7
bootstrap.inc.php
dphpunit.bash
drun-phpunit.php
Há mais uma biblioteca disponível para integração do PHPUnit com o Drupal 7: https://github.com/sebastianbergmann/phpunit
Mais informações sobre esses scripts podem ser consultadas aqui: http://thomaslattimore.com/blog/using-phpunit-with-drupal-7
fonte
Existe uma solução alternativa com o arquivo de configuração.
Gist: https://gist.github.com/permanovd/cb9c02920c49a29c97653f4f697147b1
Isso é tudo. Agora você pode iniciar seus testes de várias maneiras.
1. CLI
phpunit -c phpunit.xml.dist QuestionValidationValueOptionsInputTest /yoursite.dir/public_html/profiles/standard/modules/some_module/tests/QuestionValidationTest.php
Onde:
2. IDE (phpstorm)
Você precisa adicionar a configuração de execução de teste
E não é necessário incluir o código de inicialização drupal em todos os testes.
Nota
Você pode ter problemas com os testes devido à versão php errada do seu ambiente.
Leitura adicional:
https://phpunit.de/manual/current/en/organizing-tests.html
fonte