我有一些代码,用于删除和重建一个Lucene索引,如果它被捕获为损坏,我想要单元测试这个功能。故意损坏测试FSDirectory,然后对损坏的索引执行单元测试的最佳方法是什么?
我假设只有文件系统目录可以被破坏,但是如果有一种方法可以用RAM目录来模拟相同的事情,那就更好了,因为我更喜欢在我的lucene单元测试中使用RAM。
发布于 2012-03-25 03:23:38
你可以破坏任何目录中的东西,只需直接使用目录api来弄乱索引文件即可。
例如,看看Lucene的MockDirectoryWrapper.crash() (用于单元测试)中的逻辑,以模拟机器崩溃(通过搞乱任何尚未同步的文件):它通过截断文件、将文件的一部分清零、完全删除文件或将文件完全截断为0字节文件来模拟这一过程。
http://svn.apache.org/repos/asf/lucene/dev/trunk/lucene/test-framework/src/java/org/apache/lucene/store/MockDirectoryWrapper.java
发布于 2012-03-25 03:18:00
假设其中一个索引文件至少为2K:
dd if=/dev/urandom of=<index file> bs=1K count=1 seek=1Khttps://stackoverflow.com/questions/9854676
复制相似问题