在我们的应用程序中,我们希望检查磁盘空间不足异常。在不使用大量块文件的情况下模拟这种情况的最佳方法是什么?
发布于 2012-03-20 16:57:41
有许多方法(虚拟驱动器、小分区,甚至是一个大文件来填充您的测试分区)。
通常我更喜欢使用磁盘配额,因为它变化很快(所以我可以在几秒钟内手动测试,但我也可以将它集成到我的自动测试中),并且我可以自由地尝试不同的条件(低磁盘空间,非常低的磁盘空间,磁盘已满)。此外,您还可以不同地处理“磁盘配额不足”和“磁盘已满”(如果需要)。
为特定用户分配磁盘配额,并使用该凭据运行应用程序。如果配额足够小,您可以模拟磁盘空间不足的情况(并且可以在不创建大量文件的情况下检查各种值)。
它可以通过through UI完成,也可以通过带有fsutil的command line来完成
fsutil quota modify k: 1000000发布于 2012-03-20 17:08:51
如果你使用的是Windows7或Windows2008 R2,你可以创建一个small virtual disk,挂载它并在那里测试你的应用程序。这样,“低磁盘空间”磁盘就与操作系统磁盘和其他应用程序隔离开来。
要执行此操作,请打开磁盘管理,然后选择创建VHD。选择一个合适的小尺寸,创建磁盘,初始化它,然后映射它。
或者,您可以使用DiskPart命令行工具创建并挂载虚拟磁盘。
VHD本身只是主磁盘上的一个文件;这意味着您可以将VHD与任何测试套件一起提供,并在运行测试之前挂载它。这为您提供了比更改磁盘配额等更多基于“系统”的方法更好的优势,因为它可以以最小的工作量自动进入您的测试。
发布于 2012-03-20 16:58:02
throw new System.IO.IOException("There is not enough space on the disk.");https://stackoverflow.com/questions/9783775
复制相似问题