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.

Foi útil?

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 corrervendor/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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a magento.stackexchange
scroll top