3

我正在构建一个测试工具,以在极难进行单元测试的遗留 PHP 代码目录上执行,尽管我正在使用 PHPUnit 作为该工具。

关于 PHPUnit 的一个很酷的事情是它会将 PHP 通知、警告和错误冒泡到异常中。使用这些知识,我构建了一个工具,include()可以从 try/catch 块中的目录递归文件并记录任何异常。

问题是,如果我包含数百个文件,这很快就会成为内存占用和崩溃。我考虑过使用它,但我不确定这是否会从内存中“清除”它:

// Include file into buffer
ob_start();

include($file);

// Clear file from buffer
ob_clean();

处理这种性质的事情并适当管理内存/资源的最佳方法是什么?

[编辑]

此外,这是我正在开发的一个内部工具,用于帮助管理数千个包含不可测试(在时间限制意义上)遗留程序代码的文件。

这个想法怎么样?

// Enable garbage collector (in case this helps?)
gc_enable();

// Get procedural php and execute it
$fileData = file_get_contents($file);
eval($fileData);

// Clear variable
$fileData = null;
4

1 回答 1

1

如果您创建一个单独的 CLI 脚本(“测试器”),该脚本一次包含一个文件并记录异常,并让您的主脚本(“迭代器”)遍历/递归到您需要的脚本目录中怎么办?通过shell为每个文件测试和调用测试脚本?

于 2012-08-04T02:28:52.000 回答