Clone o repositório e inicie o submódulo
$ git clone https://github.com/PHPTestFestBrasil/vagrant-phptt.git
$ cd vagrant-phptt
$ ./start
Pronto! Após alguns minutos, a máquina virtual estará completamente montada para utilização.
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 debian/contrib-jessie64
$ vagrant up
$ vagrant ssh
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.
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.
$ make test TESTS=diretorio/
$ make test TESTS=diretorio/*.phpt
$ make test TESTS=diretorio/nome_teste.phpt