10

Click here to load reader

PHPBR TestFest

Embed Size (px)

DESCRIPTION

Apresentação da TestFest do PHPBR no décimo Fórum Internacional de Software Livre

Citation preview

Page 1: PHPBR TestFest

PHPBR – TestFest

por Er Galvão Abbott

Com a ajuda da comunidade!

Page 2: PHPBR TestFest

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!

Page 3: PHPBR TestFest

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!

Page 4: PHPBR TestFest

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

Page 5: PHPBR TestFest

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

Page 6: PHPBR TestFest

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

Page 7: PHPBR TestFest

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.

Page 8: PHPBR TestFest

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

Page 9: PHPBR TestFest

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

Page 10: PHPBR TestFest

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