我试图在组中执行几个测试,其中每个测试都是包含两个函数的.php文件。问题是来自给定组的每个测试都具有相同名称的清理功能(例如test10_cleanup,其中10是组号)。 执行此代码后:
$dir = __DIR__ . "/tests/";
$tests = array_slice(scandir($dir), 2);
foreach ($tests as $test) {
include("{$dir}{$test}");
$arr = get_defined_functions();
//Weird Note: user defined functions are in reverse order
//cleanup function is in array's first element
call_user_func($arr["user"][1]);
call_user_func($arr["user"][0]);
unset($arr);
}
似乎取消设置并重新获得当前定义的功能并不能清除以前的功能。那么,是否可以使用过程代码而不是使用OOP来修复,或者我应该直接为每个测试文件执行一个新的php进程?