• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
PHPT
 

PHPT

on

  • 2,363 views

Criando testes para a linguagem PHP

Criando testes para a linguagem PHP

Statistics

Views

Total Views
2,363
Views on SlideShare
1,439
Embed Views
924

Actions

Likes
7
Downloads
12
Comments
0

10 Embeds 924

http://ivanrosolen.com 874
http://rosolen.net 20
http://www.rosolen.net 10
http://abtasty.com 6
http://translate.googleusercontent.com 4
http://www.ivanrosolen.com.br 4
http://ivanrosolen.com.t.skyfaster.com 2
http://ivanrosolen.com.br 2
http://www.linkedin.com 1
http://digg.com 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n

PHPT PHPT Presentation Transcript

  • PHPTPHPMS Conf 2012
  • IVAN ROSOLEN @ivanrosolen Co-fundador do PHPSP Desenvolvedor 10+ anos Equipe de inovação da ARIZONA http://about.me/ivanrosolen
  • PHPT• Apenas um teste por aquivo .phpt• Testes executados em processos separados• Diferentes configurações do PHP para cada teste
  • Nomenclatura• Bugs - bug<id>.phpt• Extensões - <nomedaextensao><numero>.phpt• Funções Comportamento básico - <nomedafuncao>_basic.phpt Erro - <nomedafuncao>_error.phpt Variações - <nomedafuncao>_variation.phpt
  • Seções Obrigatórias --TEST-- Uma linha para descrever o teste --FILE-- código PHP (isso mesmo PHP!) --EXPECT-- Resultado esperado (acerto ou erro)
  • --TEST-- [--DESCRIPTION--] [--CREDITS--] [--SKIPIF--] [--REQUEST--][--POST-- | --PUT-- | --POST_RAW-- | --GZIP_POST-- | --DEFLATE_POST-- | --GET--] [--COOKIE--] [--STDIN--] [--INI--] [--ARGS--] [--ENV--] --FILE-- | --FILEEOF-- | --FILE_EXTERNAL-- | --REDIRECTTEST-- [--HEADERS--] [--CGI--] [--XFAIL--] [--EXPECTHEADERS--] --EXPECT-- | --EXPECTF-- | --EXPECTREGEX-- [--CLEAN--]
  • --EXPECTF--%s string %i integer%d number %f floats%c single char %x hexadecimal%w whitespace %e directory sep.
  • Como FazerBaixar o source da versão do PHP desejadatar -xvf php-5.4.5.tar.gz./configure (com parâmetros necessários)makemake test
  • Testando make test TESTS=diretorio/ make test TESTS=diretorio/*.phpt make test TESTS=diretorio/nome.phptTeoricamente .zip do PHP win roda os testes com o php.exenmake test
  • Exemplos
  • --TEST--Xuplau--FILE--<?php echo Xuplau’; ?>--EXPECT--Xuplau
  • --TEST--Xuplau Error--FILE--<?php echo Xuplau--EXPECTF--Parse error: syntax error, unexpected %s (T_ENCAPSED_AND_WHITESPACE) in %s.php on line %d
  • --TEST--Xuplau Error--FILE--<?php echo Xuplau--EXPECTREGEX--Parse error: (syntax|parse) error, unexpected .* (T_ENCAPSED_AND_WHITESPACE) in .* on line d
  • --TEST--Apagar TMP Files--FILE--<?php$tmp = dirname(__FILE__) . /foo.tmp;$fp = fopen($tmp, w);fwrite($fp, bar);fclose($fp);?>--CLEAN--<?php$tmp = dirname(__FILE__) . /foo.tmp;unlink($tmp)?>--EXPECT--
  • --TEST--Skipif teste!--SKIPIF--<?phpif ( substr(PHP_OS, 0, 3 ) != WIN) die(Teste apenas para Unix);?>--FILE----EXPECT--
  • --TEST--Testing imagerectangle() of GD library--CREDITS--Ivan Rosolen <contato [at] ivanrosolen [dot] com>#testfest PHPSP on 2009-06-30--SKIPIF--<?phpif ( ! extension_loaded(gd) ) die( skip GD not present; skipping test );?>--FILE--<?php// Create a image$image = imagecreatetruecolor( 100, 100 );// Draw a rectangleimagerectangle( $image, 0, 0, 50, 50, imagecolorallocate($image, 255, 255, 255) );ob_start();imagepng( $image, null, 9 );$img = ob_get_contents();ob_end_clean();echo md5(base64_encode($img));?>--EXPECT--282aaecfdd50091821d63093d9bb1bb9
  • --TEST--Testing wrong param passing imagefilledellipse() of GD library--CREDITS--Ivan Rosolen <contato [at] ivanrosolen [dot] com>#phpsptestfest PHPSP on 2010-05-29--SKIPIF--<?phpif (!extension_loaded("gd")) die("skip GD not present");?>--FILE--<?php// Create a image$image = imagecreatetruecolor(400, 300);// choose a color for the ellipse$ellipse = imagecolorallocate($image, 255, 255, 255);// draw the white ellipseimagefilledellipse( wrong param, 200, 150, 300, 200, $ellipse);?>--EXPECTF--Warning: imagefilledellipse() expects parameter 1 to be resource, %s given in %s on line %d
  • Deu erro! *.exp *.log*.diff *.out *.php *.phpt *.sh
  • Que Teste eu Faço? http://gcov.php.net
  • PHPT +• Suas extensões• Seus Projetos https://github.com/vrana/notorm
  • Enviando Testes• Clonar git https://github.com/php/php-src• Pull Request• Avisar na lista do QA Quality Assurance list - php-qa@lists.php.net
  • Linkshttp://gcov.php.nethttp://qa.php.net/write-test.phphttp://php.net/mailing-lists.phpPara Windows ( não testei muito ainda )https://wiki.php.net/qa/testfest-2010/windows-test-environmenthttp://pastebin.com/CxFtXUwShttp://pastebin.com/PPBr05kQ
  • Dúvidas?