Execute testes para um módulo específico no Magento2
-
13-12-2019 - |
Pergunta
Executando os testes para Magento usar php bin/magento dev:tests:run
leva muito tempo.
Existe uma maneira de executar os testes apenas para um módulo específico?
Eu sou um novato em testes (unitários), então tenha piedade.
Solução
Magento 2 usa framework phpunit para execução de testes.Você pode executar testes por tipo e módulo com o comando:
{phpunit_executable} -c {Magentoroot}/dev/test/{type}/phpunit.xml[.dist] path/to/module/test/dir
Por exemplo:
para correr unidade teste para Catálogo, você precisa executar o comando
vendor/phpunit/phpunit/phpunit -c dev/tests/unit/phpunit.xml.dist app/code/Magento/Catalog/Test/Unit/
para correr integração teste para Catálogo, você precisa correr
vendor/phpunit/phpunit/phpunit -c dev/tests/integration/phpunit.xml.dist dev/tests/integration/testsuite/Magento/Catalog
Atualmente apenas o teste unitário foi movido para módulos.Além disso, o teste de integridade estática e de integração está funcionando com todo o código magento.
Outras dicas
A resposta de Kandy parece ser a melhor opção, mas nesse meio tempo encontrei uma maneira rápida e suja de fazer isso.
cópia de dev/tests/unit/phpunit.xml.dist
para dev/tests/unit/phpunit.xml
e substitua
<directory suffix="Test.php">../../../app/code/*/*/Test/Unit</directory>
com
<directory suffix="Test.php">../../../app/code/[Namespace]/[Module]/Test/Unit</directory>
e comente o outro directory
tags dentro do <testsuite>
marcação.
Quando terminar, reverta suas alterações ou remova phpunit.xml
.
apenas para acrescentar que usando o Phpstorm IDE você pode definir a configuração de teste para o seu módulo e executá-lo separadamente. Executando testes no PhpStorm