/vagrant-phptt-provisioned

Debian Jessie (non gui) Vagrant Virtual Machine provisioned to use in events

Primary LanguageShellBSD 2-Clause "Simplified" LicenseBSD-2-Clause

PHPTestFest - Virtual Machine

Essa máquina virutal utiliza uma imagem já provisionada, para ser utilizada nos eventos sem a necessidade de acesso à internet para fazer o provisionamento.

A idéia é levar essa VM montada em pendrives com a vm box baixada, para facilitar o "mão na massa" nos eventos.

Começando

Clone o repositório e inicie o submódulo

$ git clone https://github.com/PHPTestFestBrasil/vagrant-phptt-provisioned.git
$ cd vagrant-phptt-provisioned
$ ./start

Pronto! Após alguns segundos, a máquina virtual estará completamente montada para utilização.

Requisitos

Preparação do ambiente vagrant

Inicie a máquina virtual com o Vagrant

$ vagrant plugin install vagrant-vbguest
$ vagrant plugin install vagrant-cachier
$ vagrant plugin install vagrant-rsync-back
$ vagrant plugin install vagrant-timezone
  • opcional: baixar a box antes da primeira execução da VM (ex: pré-PHPTestFest). Normalmente não necessário porque ao iniciar a VM a box será baixada se não existir e, principalmente, se houver uma atualização de versão da box.
$ vagrant box add phptestfest/base.box

Iniciar e acessar a VM

$ vagrant up
$ vagrant ssh

Compilando o PHP e rodando os testes

Compile o PHP com os comandos abaixo:

$ cd php-src
$ ./buildconf
$ ./configure \
    --enable-gcov \
    --enable-debug \
    --enable-sigchild \
    --enable-libgcc \
    --with-openssl \
    --with-kerberos \
    --with-pcre-regex \
    --enable-bcmath \
    --with-bz2 \
    --enable-calendar \
    --with-curl \
    --with-enchant \
    --enable-exif \
    --enable-ftp \
    --with-gd \
    --enable-gd-jis-conv \
    --with-gettext \
    --with-mhash \
    --with-kerberos \
    --with-imap-ssl \
    --enable-intl \
    --enable-mbstring \
    --with-onig \
    --with-pspell \
    --with-recode \
    --with-mm \
    --enable-shmop \
    --with-snmp \
    --enable-soap \
    --enable-sockets \
    --enable-sysvsem \
    --enable-wddx \
    --with-xmlrpc \
    --with-xsl \
    --enable-zip \
    --with-zlib \
    --with-readline \
    --with-libedit
$ make

E então execute os testes com o comando abaixo:

$ make test

No final do processo (que demora alguns minutos), responda com Y para que o resultado dos testes seja enviado para o site do PHPQA.

Gerando LCOV code coverage report

Siga os próximos passos para gerar um relatório de cobertura de código como o abaixo:

Rode os seguintes comandos:

$ ./configure --enable-gcov # configura o php habilitando essa biblioteca
$ make

Para gerar um relatório de cobertura de um teste, é necessário executar o comando

$ make lcov TESTS=teste/a/ser/executado  ; xdg-open lcov_html/index.html

O relatório em HTML fica disponível em lcov_html/index.html. Assim, é só comparar o seu relatório de cobertura com o relatório do PHP QA para ver se o seu teste testou algo que não era testado antes.

Testando

$ make test TESTS=diretorio/
$ make test TESTS=diretorio/*.phpt
$ make test TESTS=diretorio/nome_teste.phpt

Slides

Fontes para geração desse repositório: