Tableless

Busca Menu

Criando alias para executar testes com PHPUnit

Seja o primeiro a comentar por

O PHPUnit com certeza é uma das melhores ferramentas de teste automatizado em PHP, e normalmente lidar com vários projetos é realmente chato alternar entre eles e toda vez ter que digitar o comando /vendor/bin/phpunit. Não seria muito mais LEGAL ter um alias global que identifique em qual projeto você está no terminal e que disponibilize o comando phpunit ou melhor ainda, ter um alias de teste para cada projeto, como por exemplo: phpunit_project_1 ou phpunit_project_2.

Neste artigo irei demonstrar uma maneira prática e fácil de testar múltiplos projetos que fazem uso do PHPUnit com um único alias “phpunit” para qualquer projeto ou um alias dedicado a realizar testes para projetos pré-definidos. (Os comandos de exemplos foram testados no terminal do Mac).

Vamos supor que temos 2 projetos em nosso diretório “/www”, com uma estrutura similar do exemplo abaixo:

| www
-------| project_1
-------------------| app (código de produção)
-------------------| vendor (phpunit e outros pacotes)
-------------------| tests  (testes automatizados)
-------| project_2
-------------------| app (código de produção)
-------------------| vendor (phpunit e outros pacotes)
-------------------| tests  (testes automatizados)

Para executar os testes no project_1, temos que:

  1. Acessar a pasta do projeto pelo terminal:
    cd /www/project_1
  2. Executar os testes:
    /vendor/bin/phpunit

Para qualquer projeto temos que realizar o mesmo processo, acessar a pasta e executar os testes com o comando /vendor/bin/phpunit.

FELIZMENTE, temos outras maneiras de fazer isso de forma mais confortável e ágil, com o .bash_profile temos esse poder!!!!

Por exemplo, para utilizar o comando phpunit e executar o comando /vendor/bin/phpunit automaticamente na pasta de qualquer projeto, podemos fazer o seguinte:

  1. No Terminal digite:
    cd
  2. Pressione ENTER e em seguida digite o comando abaixo e pressione ENTER novamente:
    sudo nano .bash_profile
  3. Dentro do arquivo digitamos o seguinte:
    alias phpunit='$(pwd)/vendor/bin/phpunit'
  4. Para salvar o arquivo pressione:
    COMMAND + X e em seguida digite Y e pressione ENTER.
  5. Para carregar as novas configurações digite:
    source ~/.bash_profile

O comando basicamente irá criar um novo alias chamado phpunit e será atribuído a ele o caminho atual (pwd) que você estiver no terminal (por exemplo /www/project_1), mais o caminho até o phpunit do seu projeto /vendor/bin/phpunit.

Agora para utilizarmos nosso novo alias, basta entrarmos na pasta do projeto, como por exemplo: “cd /www/project_1” e digitarmos “phpunit” e pressionar ENTER.

Podemos realizar este processo para qualquer projeto, por exemplo: cd /www/project_2 e em seguida phpunit os testes do projeto 2 serão executados.

PERFEITO, certo?!!!
NÃO, ainda podemos melhorar nosso bash para que ele tenha um alias dedicado para cada projeto, vamos alterar algumas coisas:

  1. No Terminal digite:
    cd
  2. Pressione ENTER e em seguida digite o comando abaixo e pressione ENTER novamente:
    sudo nano .bash_profile
  3. Dentro do arquivo removemos o código anterior:
    alias phpunit='$(pwd)/vendor/bin/phpunit'
  4. E inserimos essas duas linhas (aqui você poderá inserir todos os seus projetos conforme desejar):

    alias phpunit_project_1='cd /caminho_pasta_www/project_1/; $(pwd)/vendor/bin/phpunit'
    alias phpunit_project_2='cd /caminho_pasta_www/project_2/; $(pwd)/vendor/bin/phpunit'
  5. Para salvar o arquivo pressione:
    COMMAND + X e em seguida digite Y e pressione ENTER.
  6. Para carregar as novas configurações digite:
    source ~/.bash_profile

PRONTO!!
Agora podemos executar os nossos testes de qualquer lugar, sem a necessidade de acessar a pasta do projeto para executá-los.

Valeu pessoal, espero que tenha ajudado!

Publicado no dia