O documento descreve uma TestFest para melhorar a cobertura de testes do interpretador PHP através da escrita colaborativa de testes. Participantes aprenderão a escrever testes PHPT para funções e extensões do PHP e como preparar suas máquinas para contribuir com o código de teste durante o evento.
2. O que é a TestFest
- Evento que procura melhorar a cobertura de código do PHPBR – TestFest
interpretador PHP através da escrita de testes.
- O objetivo é que pessoas, como um GU, por exemplo, se
reúnam para aprender juntos
- Uma grande oportunidade de contribuir com o PHP Bem-vindo(a)!
Participe!
Divulgue!
Contribua!
por Er Galvão Abbott
Com a ajuda da
comunidade!
3. Créditos
Essa apresentação e a testfest em si não seriam possíveis sem a PHPBR – TestFest
ajuda de:
Sebastian Bergmann
Eric Stewart
Zoe Slattery
Créditos
PHP SP
PHP SC
PHP Core Developers
Valeu!
por Er Galvão Abbott
Com a ajuda da
comunidade!
4. O que são testes PHPT
- Cada teste é representado por um arquivo .phpt PHPBR – TestFest
- Cada teste é executado em um processo separado.
- Testes são isolados;
- É possível configurar diretivas específicas para cada teste.
PHPT 101
Arquivos seguem uma convenção de nomenclatura:
- Testes de bugs:
bug<bug_id>.phpt
- Testes de funções:
<nome_da_função>_basic.phpt - comportamento básico
<nome_da_função>_error.phpt - comportamento de erro
<nome_da_função>_variation.phpt – variação de comportamento
- Testes genéricos para extensões: por Er Galvão Abbott
Com a ajuda da
<nome_da_extensão><número>.phpt comunidade!
5. Escrevendo Testes
- Cada arquivo de teste contém seções, identificadas PHPBR – TestFest
po dois hífens. Três seções são obrigatórias:
- TEST: Título do teste, não pode exceder uma linha.
- FILE: O código PHP.
- EXPECT[F|REGEX]: O resultado esperado.
PHPT 101
--TEST--
Hello World Example
--FILE--
<?php
print (“Hello World”);
?>
--EXPECT--
Hello World
por Er Galvão Abbott
Com a ajuda da
comunidade!
6. Testes Portáveis
- Existem formas de escrever testes portáveis: PHPBR – TestFest
- Executar o teste condicionalmente;
- Definir diretivas de configuração específicas
Testes Condicionais:
--TEST-- Portabilidade
Hello World Example, 32-bit only
--SKIPIF--
<?php
if (PHP_INT_SIZE != 4) {
die ('This test is for 32-bit platforms');
}
?>
--FILE--
<?php
print (“Hello World”);
?>
--EXPECT-- por Er Galvão Abbott
Hello World
Com a ajuda da
comunidade!
7. Testes Portáveis
Definindo diretivas de configuração: PHPBR – TestFest
--TEST--
Testing require with an existing file
--INI--
include_path='.;/var/www/'
--FILE-- Portabilidade
<?php
require 'foo.php';
?>
--EXPECT--
Foo!
Importante: Questões relacionadas à timezone devem ser
definidas na seção FILE, com a função date_default_timezone_set
devido à ordem de prioridade com que o interpretador PHP
trabalha. por Er Galvão Abbott
Com a ajuda da
comunidade!
8. Preparando sua máquina
Para preparar a sua máquina para a testfest, siga estes passos: PHPBR – TestFest
1. Instale o VirtualBox (gerenciador de VMs) e o
Subversion (controle de versão):
sudo apt-get install virtualbox-ose
sudo apt-get install subversion Preparativos
2. Copie os arquivos US8-PT-Main.vdi e portForwarding.sh e
dê permissão de execução ao .sh (chmod +x);
3. Inicie o VirtualBox e siga os passos:
File → Virtual Media Manager
Add → selecione o arquivo .vdi
Open → OK → Feche o Virtual Media Manager
New (para criar uma nova VM)
No wizard clique Next
Digite o nome: “US8-PT-Main” (sem as aspas)
Operating System: Linux por Er Galvão Abbott
Version: Ubuntu Com a ajuda da
Next comunidade!
9. Preparando sua máquina (cont.)
Base Memory Size: 512Mb (se possível) PHPBR – TestFest
Marque “Boot Hard Disk (Primary Master)”
Marque “Use existing Hard Disk”
Selecione “US8-PT-Main (Normal, 10.00GB)”
Next
Finish
Preparativos
Abra os settings da VM
Em “General” → “Advanced”
Marque “Enable PAE/NX”
Em “Network”
Clique no ícone da roda dentada
Coloque em “Guest MAC Address”: 080027A230B4
Marque “Cable connected”
Em “Audio”
Desmarque “Enable Audio”
Execute o arquivo portForwarding.sh
Faça o checkout pelo svn: por Er Galvão Abbott
svn co http://testfest.php.net/repos/testfest/BrazilUG /caminho Com a ajuda da
comunidade!
10. Vamos trabalhar!
O que precisamos para começar está pronto. Agora vamos PHPBR – TestFest
decidir quais funções/extensões testaremos e vamos botar
a mão na massa!
Obrigado por comparecer e se interessar.
Procure por nós: Obrigado!
http://www.phpbr.com.br
http://wiki.phpbr.com.br
http://www.galvao.eti.br
@galvao
@php_br
por Er Galvão Abbott
Com a ajuda da
comunidade!