我们目前正在针对我们的hdf5抽象层编写测试。
我们有一个测试,确保数据集类型更改不会影响我们的抽象层。为了测试这一点,我们每次要测试数据集类型更改时都会创建一个新的hdf5文件。 每次操作(读/写)后,hdf5文件都会关闭。
问题是当我们调用 H5F.Close()时,hdf5文件中的修改似乎不是同步编写。
当我们的测试在调试中执行(使用分步调试器)时,测试正常工作。
在发布中执行时,测试被破坏,我们的抽象层读取数据集值,该值是上次修改前数据集的值< / strong>(来自以前的数据集类型)。
我们还发现,如果在I / O操作之间使用Thread.Sleep(1000)执行测试,则发布模式下的测试正确执行。
十月2017年第4期
任何帮助将不胜感激。谢谢你抽出时间。
答案 0 :(得分:0)
回答我自己的问题:
HDF5库工作正常,错误来自我们的对象之一。
在测试期间,我正在更新缓存的对象。缓存最后修改时间跟踪器分辨率是第二种在进行密集单元测试时不精确的方法。由于此对象在HDF5文件中定义模型,因此会导致读取前一个定义的类型,而不是预期的数据类型。
谢谢你的时间!