我在C#中有以下设置-我有一个组件,它在构造函数中获取文件夹路径,然后,一些巨大的数据被它处理,并以几个文件的形式写到磁盘上(数量级约为1 1Gb,非常IO密集型)。在检索时,数据被读入(也是IO密集型的),我的单元测试(使用MOQ的nunit,设置实际上是一个组件测试)将它们与原始数据进行比较。问题是-单元测试需要几分钟才能完成,这是相当烦人的。我想,有没有一种方法可以在测试夹具设置中创建RAMDrive或RAMFolder,并在the中将其删除。我不能使用内存文件或内存流,因为在组件之外,没有人应该知道确切地使用了哪些文件。
有什么想法吗?
致以最好的问候,皮特
发布于 2012-03-14 16:43:46
这有三种可行的方法。我会试着用3-但还是会买一个SSD。固态硬盘非常适合处理大量的小IO文件,猜猜编译是什么(甚至是大量的C#源文件)。
发布于 2012-03-14 16:40:14
为什么你要在测试结束后把它拆掉?为什么不在ClassCleanup中进行单元测试后清空所有文件
作为RAMdisk软件,您可能想在http://www.superspeed.com/desktop/ramdisk.php上查看RAMDisk 11。
当然,您也可以模拟文件的实际写入,不是吗?
发布于 2012-03-14 16:55:45
我会尝试使用包含两个apis的businessobject,一个包含文件名(针对现有代码),另一个包含streams。
文件api只是一个薄层,它将调用转换为streamapi,在streamapi中完成处理。
单元测试可以使用stream-api (即内存流),而wole系统通过fileapi处理文件流。
https://stackoverflow.com/questions/9698285
复制相似问题