我正在使用(学习)vfsStream 来测试目录树上的文件系统操作,其中包含 23,000 个项目。
这是我在 PHPUnit 测试中尝试做的事情:
public function testMockFS() {
$buffer = (array) json_decode(file_get_contents(__DIR__ . '/resources/structure.json'));
$root = vfsStream::setup('/',null,$buffer);
$it = new FilesystemIterator($root);
foreach ($it as $fileInfo) {
echo $fileInfo->getFilename() . "\n";
}
}
注意:我知道这不会测试任何东西。现在,我只是想让迭代工作,所以我想在开始编写测试之前将目录结构打印到屏幕上。
structure.json是来自生产的转储,其中包含文件系统的完整复制(没有文件内容,这与我们正在处理的工作无关)。
vfsStream::setup() 似乎工作正常。没有错误。
如何使用 FilesystemIterator 迭代 vfsSystem?我觉得要么 1)$root 应该从 FilesystemIterator 可以使用的 vfs 返回一个目录,或者 b)我应该将“vfs::/”作为参数传递,但 FilesystemIterator 不知道什么是“vfs::”事情是。
我敢肯定,我让这变得比它必须的更难。提前致谢。