Download - PHPBR TestFest
PHPBR – TestFest
por Er Galvão Abbott
Com a ajuda da comunidade!
PHPBR – TestFest
Bem-vindo(a)!
por Er Galvão Abbott
Com a ajuda da comunidade!
O que é a TestFest
- Evento que procura melhorar a cobertura de código do 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
Participe!
Divulgue!
Contribua!
PHPBR – TestFest
Créditos
por Er Galvão Abbott
Com a ajuda da comunidade!
Créditos
Essa apresentação e a testfest em si não seriam possíveis sem aajuda de:
Sebastian BergmannEric StewartZoe Slattery
PHP SPPHP SC
PHP Core Developers
Valeu!
PHPBR – TestFest
PHPT 101
por Er Galvão Abbott
Com a ajuda da comunidade!
O que são testes PHPT
- Cada teste é representado por um arquivo .phpt
- Cada teste é executado em um processo separado.
- Testes são isolados;- É possível configurar diretivas específicas para cada teste.
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:
<nome_da_extensão><número>.phpt
PHPBR – TestFest
PHPT 101
por Er Galvão Abbott
Com a ajuda da comunidade!
Escrevendo Testes
- Cada arquivo de teste contém seções, identificadaspo 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.
--TEST--Hello World Example--FILE--<?phpprint (“Hello World”);?>--EXPECT--Hello World
PHPBR – TestFest
Portabilidade
por Er Galvão Abbott
Com a ajuda da comunidade!
Testes Portáveis
- Existem formas de escrever testes portáveis:- Executar o teste condicionalmente;- Definir diretivas de configuração específicas
Testes Condicionais:
--TEST--Hello World Example, 32-bit only--SKIPIF--<?php if (PHP_INT_SIZE != 4) {
die ('This test is for 32-bit platforms');}?>--FILE--<?phpprint (“Hello World”);?>--EXPECT--Hello World
PHPBR – TestFest
Portabilidade
por Er Galvão Abbott
Com a ajuda da comunidade!
Testes Portáveis
Definindo diretivas de configuração:
--TEST--Testing require with an existing file--INI--include_path='.;/var/www/'--FILE--<?phprequire 'foo.php';?>--EXPECT--Foo!
Importante: Questões relacionadas à timezone devem serdefinidas na seção FILE, com a função date_default_timezone_setdevido à ordem de prioridade com que o interpretador PHPtrabalha.
PHPBR – TestFest
Preparativos
por Er Galvão Abbott
Com a ajuda da comunidade!
Preparando sua máquina
Para preparar a sua máquina para a testfest, siga estes passos:
1. Instale o VirtualBox (gerenciador de VMs) e o Subversion (controle de versão):
sudo apt-get install virtualbox-osesudo apt-get install subversion
2. Copie os arquivos US8-PT-Main.vdi e portForwarding.sh edê permissão de execução ao .sh (chmod +x);
3. Inicie o VirtualBox e siga os passos:
File → Virtual Media ManagerAdd → selecione o arquivo .vdiOpen → OK → Feche o Virtual Media ManagerNew (para criar uma nova VM)No wizard clique NextDigite o nome: “US8-PT-Main” (sem as aspas)Operating System: LinuxVersion: UbuntuNext
PHPBR – TestFest
Preparativos
por Er Galvão Abbott
Com a ajuda da comunidade!
Preparando sua máquina (cont.)
Base Memory Size: 512Mb (se possível)Marque “Boot Hard Disk (Primary Master)”Marque “Use existing Hard Disk”Selecione “US8-PT-Main (Normal, 10.00GB)”NextFinish
Abra os settings da VMEm “General” → “Advanced”Marque “Enable PAE/NX”Em “Network”Clique no ícone da roda dentadaColoque em “Guest MAC Address”: 080027A230B4Marque “Cable connected”Em “Audio”Desmarque “Enable Audio”
Execute o arquivo portForwarding.sh
Faça o checkout pelo svn:svn co http://testfest.php.net/repos/testfest/BrazilUG /caminho
PHPBR – TestFest
Obrigado!
por Er Galvão Abbott
Com a ajuda da comunidade!
Vamos trabalhar!
O que precisamos para começar está pronto. Agora vamos decidir quais funções/extensões testaremos e vamos botara mão na massa!
Obrigado por comparecer e se interessar.
Procure por nós:
http://www.phpbr.com.brhttp://wiki.phpbr.com.brhttp://www.galvao.eti.br
@galvao@php_br