PHPUnit:对于tearDown()方法未处理的变量会发生什么情况?

PHPUnit:对于tearDown()方法未处理的变量会发生什么情况?,php,unit-testing,phpunit,Php,Unit Testing,Phpunit,我想知道PHPUnit\u Framework\u TestCase和children中tearDown方法中的变量设置null是否仅仅是一种形式,或者是否有实际用途 例如: protected function tearDown(){ $this->someUsedVariable=null; } 附言:我的意思是,使用的变量在脚本结束时不会被销毁吗?当然,它们在脚本结束时会被销毁。一旦启动了测试套件,您的脚本就不会直接结束,因为您可能会执行成百上千个测试用例,如果没有正确地删除,

我想知道
PHPUnit\u Framework\u TestCase
和children中
tearDown
方法中的变量设置
null
是否仅仅是一种形式,或者是否有实际用途

例如:

protected function tearDown(){
  $this->someUsedVariable=null;
}

附言:我的意思是,使用的变量在脚本结束时不会被销毁吗?

当然,它们在脚本结束时会被销毁。一旦启动了测试套件,您的脚本就不会直接结束,因为您可能会执行成百上千个测试用例,如果没有正确地删除,所有这些测试用例加在一起迟早会耗尽所有内存/填充到数据库(等)的最大连接数


通过将变量设置为null,可以允许垃圾收集器在激活后释放已使用的内存。

脚本结束后,变量将被销毁。
拆卸有助于删除测试期间生成的数据,例如数据库中的数据或生成的文件。

我明白了。。你有没有从zend studio运行phpunit?我的有点慢,我想知道是我自己还是每个人都会这样。我已经有一段时间没有使用phpunit了(现在正在使用Ruby)。您可能想检查xdebug并分析什么在说这么长时间。PHPUnit保留对每个测试用例实例的引用,直到所有测试完成并打印出最终结果。将测试用例实例变量设置为
null
允许GC删除它们,只要没有其他变量保存引用。