当我运行PHPUnit时,在我看来,在单个测试类中运行许多测试时,它似乎有内存泄漏。但我不知道这是一个错误还是预期的行为。
重现:
$numberOfTests = 1;
,消耗的内存为5.75MB。
Time: 0 seconds, Memory: 5.75Mb
$numberOfTests = 10000;
,我不希望内存增长如此之多,只是新数组的大小。但是用过的内存是99.75MB,我觉得它太多了。
Time: 4 seconds, Memory: 99.75Mb
Memory = 5294552
(5.2MB)Memory = 15735352
(15.7MB)问题:
我的版本:
phpunit --version
提供PHPUnit 3.6.10 by Sebastian Bergmann.
。
这是代码:
<?php
class DemoTest extends \PHPUnit_Framework_TestCase
{
/** @dataProvider providerHello */
public function testHello( $a, $b, $c )
{
$this->assertTrue( true );
}
public function providerHello()
{
$numberOfTests = 10000;
$data = array();
for( $i = 0; $i < $numberOfTests; $i++ )
{
$data[] = array( 1, 2, 3 );
}
echo( "Memory = " . memory_get_peak_usage() . PHP_EOL );
return $data;
}
}
?>
答案 0 :(得分:0)
您需要在phpunit.xml文件中将backupGlobals和backupStaticAttributes设置为false。如果不使用配置文件,也可以在命令行中执行此操作。
--no-globals-backup
--static-backup