SlideShare une entreprise Scribd logo
1  sur  10
Télécharger pour lire hors ligne
PHPBR – TestFest




 por Er Galvão Abbott

   Com a ajuda da
    comunidade!
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!
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!
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!
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!
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!
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!
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!
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!
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!

Contenu connexe

Tendances

Linux - Instalação de Programas
Linux - Instalação de ProgramasLinux - Instalação de Programas
Linux - Instalação de ProgramasÁtila Camurça
 
Gerenciamento de Backups PostgreSQL com pgbarman
Gerenciamento de Backups PostgreSQL com pgbarmanGerenciamento de Backups PostgreSQL com pgbarman
Gerenciamento de Backups PostgreSQL com pgbarmanJuliano Atanazio
 
Palestra Linux Survival Kit para PHPeiros
Palestra Linux Survival Kit para PHPeirosPalestra Linux Survival Kit para PHPeiros
Palestra Linux Survival Kit para PHPeirosLeonardo Tumadjian
 
Introdução ao python
Introdução ao pythonIntrodução ao python
Introdução ao pythonMaria Silveira
 
Introdução à linguagem de programação Python
Introdução à linguagem de programação PythonIntrodução à linguagem de programação Python
Introdução à linguagem de programação PythonCarlos Schults
 
Apostila manual completo - windows-script-host
Apostila   manual completo - windows-script-hostApostila   manual completo - windows-script-host
Apostila manual completo - windows-script-hostRogerio Pereira
 
Sistema Operacional GNU/Linux
Sistema Operacional GNU/LinuxSistema Operacional GNU/Linux
Sistema Operacional GNU/LinuxPedro Neto
 
Mini-curso de linux básico
Mini-curso de linux básicoMini-curso de linux básico
Mini-curso de linux básicoAdriano Melo
 
Apostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em LinuxApostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em Linuxeliezer
 
Introdução ao Linux - aula 03 e 04
Introdução ao Linux - aula 03 e 04Introdução ao Linux - aula 03 e 04
Introdução ao Linux - aula 03 e 04Renan Aryel
 

Tendances (16)

Linux - Instalação de Programas
Linux - Instalação de ProgramasLinux - Instalação de Programas
Linux - Instalação de Programas
 
Postgres Big data
Postgres Big dataPostgres Big data
Postgres Big data
 
Drupal + Rex
Drupal + RexDrupal + Rex
Drupal + Rex
 
Python, CPython, Pythonico, Cython
Python, CPython, Pythonico, CythonPython, CPython, Pythonico, Cython
Python, CPython, Pythonico, Cython
 
Gerenciamento de Backups PostgreSQL com pgbarman
Gerenciamento de Backups PostgreSQL com pgbarmanGerenciamento de Backups PostgreSQL com pgbarman
Gerenciamento de Backups PostgreSQL com pgbarman
 
Palestra Linux Survival Kit para PHPeiros
Palestra Linux Survival Kit para PHPeirosPalestra Linux Survival Kit para PHPeiros
Palestra Linux Survival Kit para PHPeiros
 
Introdução ao python
Introdução ao pythonIntrodução ao python
Introdução ao python
 
Introdução às ferramentas cat por onde começar
Introdução às ferramentas cat   por onde começarIntrodução às ferramentas cat   por onde começar
Introdução às ferramentas cat por onde começar
 
Introdução à linguagem de programação Python
Introdução à linguagem de programação PythonIntrodução à linguagem de programação Python
Introdução à linguagem de programação Python
 
Apostila manual completo - windows-script-host
Apostila   manual completo - windows-script-hostApostila   manual completo - windows-script-host
Apostila manual completo - windows-script-host
 
Sistema Operacional GNU/Linux
Sistema Operacional GNU/LinuxSistema Operacional GNU/Linux
Sistema Operacional GNU/Linux
 
Ubuntu COMSOLiD 5
Ubuntu COMSOLiD 5Ubuntu COMSOLiD 5
Ubuntu COMSOLiD 5
 
Mini-curso de linux básico
Mini-curso de linux básicoMini-curso de linux básico
Mini-curso de linux básico
 
Replicação PostgreSQL com RepManager
Replicação PostgreSQL com RepManagerReplicação PostgreSQL com RepManager
Replicação PostgreSQL com RepManager
 
Apostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em LinuxApostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em Linux
 
Introdução ao Linux - aula 03 e 04
Introdução ao Linux - aula 03 e 04Introdução ao Linux - aula 03 e 04
Introdução ao Linux - aula 03 e 04
 

En vedette

Etica y moral monica pino
Etica y moral monica pinoEtica y moral monica pino
Etica y moral monica pinoMónika Pino
 
Php Test Fest PHPMS, Maio 2008
Php Test Fest PHPMS, Maio 2008Php Test Fest PHPMS, Maio 2008
Php Test Fest PHPMS, Maio 2008zehzinho
 
Martí Ribot, Xavi Pozo, Gerard Melis preguntas
Martí Ribot, Xavi Pozo, Gerard Melis preguntasMartí Ribot, Xavi Pozo, Gerard Melis preguntas
Martí Ribot, Xavi Pozo, Gerard Melis preguntas4esopalamos
 
The Outcome Economy
The Outcome EconomyThe Outcome Economy
The Outcome EconomyHelge Tennø
 

En vedette (7)

Brasiliatestfest
BrasiliatestfestBrasiliatestfest
Brasiliatestfest
 
Gbi
GbiGbi
Gbi
 
Etica y moral monica pino
Etica y moral monica pinoEtica y moral monica pino
Etica y moral monica pino
 
Php Test Fest PHPMS, Maio 2008
Php Test Fest PHPMS, Maio 2008Php Test Fest PHPMS, Maio 2008
Php Test Fest PHPMS, Maio 2008
 
4 As AdWords de Google
4 As AdWords de Google4 As AdWords de Google
4 As AdWords de Google
 
Martí Ribot, Xavi Pozo, Gerard Melis preguntas
Martí Ribot, Xavi Pozo, Gerard Melis preguntasMartí Ribot, Xavi Pozo, Gerard Melis preguntas
Martí Ribot, Xavi Pozo, Gerard Melis preguntas
 
The Outcome Economy
The Outcome EconomyThe Outcome Economy
The Outcome Economy
 

Similaire à PHPBR TestFest

PHPSP TestFest 2009
PHPSP TestFest 2009PHPSP TestFest 2009
PHPSP TestFest 2009Rafael Dohms
 
Tutorial poke-tool
Tutorial poke-toolTutorial poke-tool
Tutorial poke-toolunifesptk
 
Certificação Linux: Conhecendo o caminho das pedras - Bruna Griebeler
Certificação Linux: Conhecendo o caminho das pedras - Bruna GriebelerCertificação Linux: Conhecendo o caminho das pedras - Bruna Griebeler
Certificação Linux: Conhecendo o caminho das pedras - Bruna GriebelerTchelinux
 
Testando Aplicações com PHPT
Testando Aplicações com PHPTTestando Aplicações com PHPT
Testando Aplicações com PHPTSidney Souza
 
O futuro do elephante: as promessas do php para 2019
O futuro do elephante: as promessas do php para 2019O futuro do elephante: as promessas do php para 2019
O futuro do elephante: as promessas do php para 2019Cassio Santos
 
A lógica do Python e seus termos
A lógica do Python e seus termosA lógica do Python e seus termos
A lógica do Python e seus termosValore I/O
 
Automação de Aplicativos: Scripting com Python
Automação de Aplicativos: Scripting com PythonAutomação de Aplicativos: Scripting com Python
Automação de Aplicativos: Scripting com PythonFabio Spanhol
 
Muito prazer, eu sou PHP
Muito prazer, eu sou PHPMuito prazer, eu sou PHP
Muito prazer, eu sou PHPLuís Cobucci
 
TDC 2015 - Trilha PHP - Testes e Ambiente de Integração Contínua PHP para o D...
TDC 2015 - Trilha PHP - Testes e Ambiente de Integração Contínua PHP para o D...TDC 2015 - Trilha PHP - Testes e Ambiente de Integração Contínua PHP para o D...
TDC 2015 - Trilha PHP - Testes e Ambiente de Integração Contínua PHP para o D...Bruno Tanoue
 
Testes de unidade e TDD SoLiSC 2011
Testes de unidade e TDD SoLiSC 2011Testes de unidade e TDD SoLiSC 2011
Testes de unidade e TDD SoLiSC 2011Luís Cobucci
 
Aprendendo a criar plugins para o Wordpress - Richard Barros
Aprendendo a criar plugins para o Wordpress - Richard BarrosAprendendo a criar plugins para o Wordpress - Richard Barros
Aprendendo a criar plugins para o Wordpress - Richard BarrosRichard Barros
 
Ubuntu 8.04 LTS 2008
Ubuntu 8.04 LTS 2008Ubuntu 8.04 LTS 2008
Ubuntu 8.04 LTS 2008SergioSouza
 

Similaire à PHPBR TestFest (20)

Mini Curso de PHP
Mini Curso de PHPMini Curso de PHP
Mini Curso de PHP
 
PHPSP TestFest 2009
PHPSP TestFest 2009PHPSP TestFest 2009
PHPSP TestFest 2009
 
Tutorial poke-tool
Tutorial poke-toolTutorial poke-tool
Tutorial poke-tool
 
Certificação Linux: Conhecendo o caminho das pedras - Bruna Griebeler
Certificação Linux: Conhecendo o caminho das pedras - Bruna GriebelerCertificação Linux: Conhecendo o caminho das pedras - Bruna Griebeler
Certificação Linux: Conhecendo o caminho das pedras - Bruna Griebeler
 
Cakephp 2.0 - O que mudou
Cakephp 2.0 - O que mudouCakephp 2.0 - O que mudou
Cakephp 2.0 - O que mudou
 
Sapo Sessions PHP
Sapo Sessions PHPSapo Sessions PHP
Sapo Sessions PHP
 
Testando Aplicações com PHPT
Testando Aplicações com PHPTTestando Aplicações com PHPT
Testando Aplicações com PHPT
 
O futuro do elephante: as promessas do php para 2019
O futuro do elephante: as promessas do php para 2019O futuro do elephante: as promessas do php para 2019
O futuro do elephante: as promessas do php para 2019
 
I educar-manual-de-instalaao
I educar-manual-de-instalaaoI educar-manual-de-instalaao
I educar-manual-de-instalaao
 
A lógica do Python e seus termos
A lógica do Python e seus termosA lógica do Python e seus termos
A lógica do Python e seus termos
 
Automação de Aplicativos: Scripting com Python
Automação de Aplicativos: Scripting com PythonAutomação de Aplicativos: Scripting com Python
Automação de Aplicativos: Scripting com Python
 
Evolucao php2
Evolucao php2Evolucao php2
Evolucao php2
 
Muito prazer, eu sou PHP
Muito prazer, eu sou PHPMuito prazer, eu sou PHP
Muito prazer, eu sou PHP
 
Muito prazer, eu sou PHP
Muito prazer, eu sou PHPMuito prazer, eu sou PHP
Muito prazer, eu sou PHP
 
Rumo à Certificação PHP
Rumo à Certificação PHPRumo à Certificação PHP
Rumo à Certificação PHP
 
TDC 2015 - Trilha PHP - Testes e Ambiente de Integração Contínua PHP para o D...
TDC 2015 - Trilha PHP - Testes e Ambiente de Integração Contínua PHP para o D...TDC 2015 - Trilha PHP - Testes e Ambiente de Integração Contínua PHP para o D...
TDC 2015 - Trilha PHP - Testes e Ambiente de Integração Contínua PHP para o D...
 
PHP 5.3 - Introdução
PHP 5.3 - IntroduçãoPHP 5.3 - Introdução
PHP 5.3 - Introdução
 
Testes de unidade e TDD SoLiSC 2011
Testes de unidade e TDD SoLiSC 2011Testes de unidade e TDD SoLiSC 2011
Testes de unidade e TDD SoLiSC 2011
 
Aprendendo a criar plugins para o Wordpress - Richard Barros
Aprendendo a criar plugins para o Wordpress - Richard BarrosAprendendo a criar plugins para o Wordpress - Richard Barros
Aprendendo a criar plugins para o Wordpress - Richard Barros
 
Ubuntu 8.04 LTS 2008
Ubuntu 8.04 LTS 2008Ubuntu 8.04 LTS 2008
Ubuntu 8.04 LTS 2008
 

Plus de Er Galvão Abbott

Tudo o que você precisa saber sobre o php7
Tudo o que você precisa saber sobre o php7Tudo o que você precisa saber sobre o php7
Tudo o que você precisa saber sobre o php7Er Galvão Abbott
 
DRYing the Skeleton: Reducing code repetition in ZF2
DRYing the Skeleton: Reducing code repetition in ZF2DRYing the Skeleton: Reducing code repetition in ZF2
DRYing the Skeleton: Reducing code repetition in ZF2Er Galvão Abbott
 
Php7 esta chgando! O que você precisa saber
Php7 esta chgando! O que você precisa saberPhp7 esta chgando! O que você precisa saber
Php7 esta chgando! O que você precisa saberEr Galvão Abbott
 
ABRAPHP: Conquistas e Realizações - 2012-2014
ABRAPHP: Conquistas e Realizações - 2012-2014ABRAPHP: Conquistas e Realizações - 2012-2014
ABRAPHP: Conquistas e Realizações - 2012-2014Er Galvão Abbott
 
Implementing security routines with zf2
Implementing security routines with zf2Implementing security routines with zf2
Implementing security routines with zf2Er Galvão Abbott
 
Desenvolvendo aplicações com ZF2
Desenvolvendo aplicações com ZF2Desenvolvendo aplicações com ZF2
Desenvolvendo aplicações com ZF2Er Galvão Abbott
 
Web: funcionamento, evolução e mercado
Web: funcionamento, evolução e mercadoWeb: funcionamento, evolução e mercado
Web: funcionamento, evolução e mercadoEr Galvão Abbott
 
Otimizando a execução de código-fonte PHP
Otimizando a execução de código-fonte PHPOtimizando a execução de código-fonte PHP
Otimizando a execução de código-fonte PHPEr Galvão Abbott
 
ZF2 Menor, melhor e mais poderoso
ZF2 Menor, melhor e mais poderosoZF2 Menor, melhor e mais poderoso
ZF2 Menor, melhor e mais poderosoEr Galvão Abbott
 
Implementando rotinas de geolocalização
Implementando rotinas de geolocalizaçãoImplementando rotinas de geolocalização
Implementando rotinas de geolocalizaçãoEr Galvão Abbott
 
OSS, Comunidade, Eventos e como sua empresa ganha com isso
OSS, Comunidade, Eventos e como sua empresa ganha com issoOSS, Comunidade, Eventos e como sua empresa ganha com isso
OSS, Comunidade, Eventos e como sua empresa ganha com issoEr Galvão Abbott
 
OWASP: O que, Por que e Como
OWASP: O que, Por que e ComoOWASP: O que, Por que e Como
OWASP: O que, Por que e ComoEr Galvão Abbott
 
Além da autenticação: Permissões de acesso com Zend Framework
Além da autenticação: Permissões de acesso com Zend FrameworkAlém da autenticação: Permissões de acesso com Zend Framework
Além da autenticação: Permissões de acesso com Zend FrameworkEr Galvão Abbott
 
Proposta de Boas Práticas e Padrões de Desenvolvimento Web
Proposta de Boas Práticas e Padrões de Desenvolvimento WebProposta de Boas Práticas e Padrões de Desenvolvimento Web
Proposta de Boas Práticas e Padrões de Desenvolvimento WebEr Galvão Abbott
 
Preto, Branco e as Sombras de Cinza
Preto, Branco e as Sombras de CinzaPreto, Branco e as Sombras de Cinza
Preto, Branco e as Sombras de CinzaEr Galvão Abbott
 

Plus de Er Galvão Abbott (20)

Segurança PHP em 2016
Segurança PHP em 2016Segurança PHP em 2016
Segurança PHP em 2016
 
Tudo o que você precisa saber sobre o php7
Tudo o que você precisa saber sobre o php7Tudo o que você precisa saber sobre o php7
Tudo o que você precisa saber sobre o php7
 
DRYing the Skeleton: Reducing code repetition in ZF2
DRYing the Skeleton: Reducing code repetition in ZF2DRYing the Skeleton: Reducing code repetition in ZF2
DRYing the Skeleton: Reducing code repetition in ZF2
 
Php7 esta chgando! O que você precisa saber
Php7 esta chgando! O que você precisa saberPhp7 esta chgando! O que você precisa saber
Php7 esta chgando! O que você precisa saber
 
PHP e Open Source
PHP e Open SourcePHP e Open Source
PHP e Open Source
 
ABRAPHP: Conquistas e Realizações - 2012-2014
ABRAPHP: Conquistas e Realizações - 2012-2014ABRAPHP: Conquistas e Realizações - 2012-2014
ABRAPHP: Conquistas e Realizações - 2012-2014
 
Implementing security routines with zf2
Implementing security routines with zf2Implementing security routines with zf2
Implementing security routines with zf2
 
Desenvolvendo aplicações com ZF2
Desenvolvendo aplicações com ZF2Desenvolvendo aplicações com ZF2
Desenvolvendo aplicações com ZF2
 
Apresentacao frameworks
Apresentacao frameworksApresentacao frameworks
Apresentacao frameworks
 
Web: funcionamento, evolução e mercado
Web: funcionamento, evolução e mercadoWeb: funcionamento, evolução e mercado
Web: funcionamento, evolução e mercado
 
Otimizando a execução de código-fonte PHP
Otimizando a execução de código-fonte PHPOtimizando a execução de código-fonte PHP
Otimizando a execução de código-fonte PHP
 
Unbreakeable php
Unbreakeable phpUnbreakeable php
Unbreakeable php
 
PHP: Evolução
PHP: EvoluçãoPHP: Evolução
PHP: Evolução
 
ZF2 Menor, melhor e mais poderoso
ZF2 Menor, melhor e mais poderosoZF2 Menor, melhor e mais poderoso
ZF2 Menor, melhor e mais poderoso
 
Implementando rotinas de geolocalização
Implementando rotinas de geolocalizaçãoImplementando rotinas de geolocalização
Implementando rotinas de geolocalização
 
OSS, Comunidade, Eventos e como sua empresa ganha com isso
OSS, Comunidade, Eventos e como sua empresa ganha com issoOSS, Comunidade, Eventos e como sua empresa ganha com isso
OSS, Comunidade, Eventos e como sua empresa ganha com isso
 
OWASP: O que, Por que e Como
OWASP: O que, Por que e ComoOWASP: O que, Por que e Como
OWASP: O que, Por que e Como
 
Além da autenticação: Permissões de acesso com Zend Framework
Além da autenticação: Permissões de acesso com Zend FrameworkAlém da autenticação: Permissões de acesso com Zend Framework
Além da autenticação: Permissões de acesso com Zend Framework
 
Proposta de Boas Práticas e Padrões de Desenvolvimento Web
Proposta de Boas Práticas e Padrões de Desenvolvimento WebProposta de Boas Práticas e Padrões de Desenvolvimento Web
Proposta de Boas Práticas e Padrões de Desenvolvimento Web
 
Preto, Branco e as Sombras de Cinza
Preto, Branco e as Sombras de CinzaPreto, Branco e as Sombras de Cinza
Preto, Branco e as Sombras de Cinza
 

PHPBR TestFest

  • 1. PHPBR – TestFest por Er Galvão Abbott Com a ajuda da comunidade!
  • 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!