Executando a suíte de testes¶
Agora que temos um entendimento básico de qual tipo de teste estamos fazendo, vamos executar a suíte de testes. Antes que possamos rodar
os testes, tenha certeza que você compilou com sucesso o php a partir do fonte e que você tem um executável
em sapi/cli/php
.
Existem duas formas de executar a suíte de testes.
Execução dos testes diretamente com o run-tests.php
¶
Você pode rodar a suíte de testes diretamente com o run-tests.php. No mínimo você precisa especificar qual o executável php que você
gostaria de usar o que você pode fazer usando a flag -p
. Perceba que para rodar todos os testes corretamente deve ser passado
um caminho absoluto para o executável PHP.
~/php-src> sapi/cli/php run-tests.php -p `pwd`/sapi/cli/php
Um meio de usar um atalho que você pode usar para dizer ao run-tests que use o executável PHP que está sendo invocado no momento
é com a flag -P
.
~/php-src> sapi/cli/php run-tests.php -P
Se você não quiser definir a flag -p` ou a -P
todas as vezes, você pode especificar o executável php usando
a variável de ambiente TEST_PHP_EXECUTABLE
que pode ser definida com o comando export
em máquinas Linux.
~/php-src> export TEST_PHP_EXECUTABLE=sapi/cli/php
~/php-src> sapi/cli/php run-tests.php
No Windows, você pode definir a variável de ambiente usando set
.
C:\php-src> set TEST_PHP_EXECUTABLE=sapi/cli/php
C:\php-src> sapi/cli/php run-tests.php
Por padrão run-tests.php
irá começar rodando todos os mais de 15.000 da suíte, o que pode demorar um tempão. Você
pode especificar uma pasta específica de testes para rodar ou mesmo um teste único. O seguinte exemplo irá executar todos os testes
associados com PHP 7’s CSPRNG.
~/php-src> sapi/cli/php run-tests.php -P ext/standard/tests/random
Você também pode especificar múltiplos diretórios ou arquivos alvo para rodar.
~/php-src> sapi/cli/php run-tests.php -P Zend/ ext/reflection/ ext/standard/tests/array/
Com sorte, todos os testes passaram. Caso contrário… oops.
Execução dos testes via Makefile
(recomendado)¶
A forma recomendada de rodar a suíte de testes é via comando test
que é definido no Makefile
. O
comando test
faz todo o trabalho duro de especificar o executável PHP para você (aquele que você compilou), definir algumas
configurações INI padrões e especificar as melhores flags do run-tests para você. Você nem precisa se preocupar em configurar
variáveis de ambiente nem definir flags adicionais, sendo um comando bem simples.
~/php-src> make test
Como antes, run-tests.php
começará a rodar a suíte de testes inteira. Para especificar uma pasta ou um teste único para ser executado você
pode passar para o make
uma variável TESTS
. O exemplo a seguir irá testar se o PHP pode operar com binários literais adequadamente.
~/php-src> make test TESTS=Zend/tests/binary.phpt
Você pode especificar múltipos diretórios ou arquivos alvo para serem executados separando cada caminho por um espaço na variável TESTS
.
~/php-src> make test TESTS="Zend/ ext/reflection/ ext/standard/tests/array/"
Execução de testes em paralelo¶
Isso não é possível.
Mais opções¶
Para uma lista completa das opções que run-tests suporta, rode-o seguido de --help
.
~/php-src> sapi/cli/php run-tests.php --help