Lors de l'exécution d'un test PHPUnit, je voudrais pouvoir vider la sortie afin de pouvoir déboguer une ou deux choses.
J'ai essayé ce qui suit (similaire à l' exemple du manuel PHPUnit );
class theTest extends PHPUnit_Framework_TestCase
{
/**
* @outputBuffering disabled
*/
public function testOutput() {
print_r("Hello World");
print "Ping";
echo "Pong";
$out = "Foo";
var_dump($out);
}
}
Avec le résultat suivant:
PHPUnit @package_version@ by Sebastian Bergmann.
.
Time: 0 seconds, Memory: 3.00Mb
OK (1 test, 0 assertions)
Notez qu'il n'y a aucune sortie attendue.
J'utilise les versions HEAD des dépôts git en date du 19 septembre 2011.
Sortie de php -version
:
$ php -version
PHP 5.2.9 (cli) (built: Dec 8 2010 11:36:37)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2009 Zend Technologies
with Xdebug v2.1.0, Copyright (c) 2002-2010, by Derick Rethans
Y a-t-il quelque chose que je fais de mal, ou est-ce potentiellement un bogue PHPUnit?
phpunit /path/to/tests/theTest.php
(si la classe ci-dessus était dans le fichier theTest.php
).
ob_get_level()
revient 1
. Cependant, cela est contredit par le code suivant: avec while (ob_get_level() > 0) { ob_end_flush(); }
quelles erreurs ob_end_clean(): failed to delete buffer. No buffer to delete.
. Curieux et curieux.
testOutput()
méthode?