Teste funcional de fluxos de trabalho PHP SSH2 com PHPUnit e Vagrant

Quando $this->markTestIncomplete()simplesmente n√£o vai fazer. Digite o Vagrant.

Para começar com as ferramentas, você precisará se familiarizar com as seguintes:

Vagrant http://vagrantup.com
Voc√™ encontrar√° muitos bons coment√°rios sobre sua instala√ß√£o e uso. Para ser breve, irei fornecer links para alguns que achei √ļteis e n√£o fornecerei muitos detalhes sobre isso. Sugiro come√ßar aqui: http://vagrantup.com/v1/docs/getting-started/index.html

PHPUnit: http://www.phpunit.de

Existem quatro métodos de autenticação ssh2 fornecidos com as ferramentas php ssh2:
arquivo baseado em host ssh2 auth – Autenticar usando uma chave de host p√ļblica
– ssh2
auth nenhum – Autenticar como “nenhum”
senha
ssh2 auth – Autenticar por SSH usando uma senha simples – ssh2 auth pubkey arquivo – Autenticar usando uma chave p√ļblica

Para o meu projeto que eu precisava para validar funcionalmente um fluxo de trabalho de upload de um arquivo para um ssh2 utilizando servidor de autenticação de senha e ssh2 auth pubkey. Para conseguir isso, preciso testar o seguinte:
РPosso me autenticar com o método desejado?
– Posso validar a impress√£o digital da chave do servidor?
– Posso colocar o conte√ļdo de um arquivo em um caminho conhecido no servidor remoto?
– Posso validar se o conte√ļdo e o nome do arquivo de destino s√£o os esperados?

Para conseguir isso, eu precisava de um ambiente com uma chave p√ļblica e privada conhecida que fornecesse a impress√£o digital e as duas chaves conhecidas para estabelecer a conex√£o sem muito trabalho. Para autentica√ß√£o baseada em senha, eu preciso de um ambiente que permita autentica√ß√£o n√£o baseada em senha por SSH. Este recurso √© geralmente desabilitado e deve ser alterado no provisionamento do vagrant ou voc√™ deve criar uma imagem configurada. N√£o querendo criar uma caixa personalizada para este caso, utilizo as ferramentas de provisionamento embutidas no vagrant e no sed. A partir daqui, √© realmente uma quest√£o de escrever testes e executar o vagrant, d√™ uma olhada na ess√™ncia dos exemplos que forneci.

Exemplo Gist https://gist.github.com/3612867

O TL; DR:

  • Escreva seus testes
  • Busque as chaves SSH do Vagrant
  • Crie ou pegue o exemplo VagrantFIle
  • corre vagrant init
  • corre vagrant up
  • execute os testes
  • enxaguar / repetir