我正在编写一个封装我无法访问的dll的包装器的UnitTests。
此dll会将文件写入给定位置,并在dll的整个生命周期内保留句柄。
我的UnitTests运行后,我想删除测试期间dll写的所有文件。
但是,如果我使用MSTest属性[TestCleanup]
[ClassCleanup]
或[AssemblyCleanup]
,我无法删除所有文件,因为dll仍然已加载且文件上的句柄仍然存在存在。
有没有办法在MSTest卸载testet dll后运行最后一个方法?
现在,我只看到两种可能的解决方案,但这些解决方案听起来都不具吸引力:
AssemblyCleanup
上卸载(很多工作)