Nunit没有发布测试中使用的DLL /无法在拆卸时删除

时间:2009-12-08 11:57:12

标签: dll nunit

我有一个应用程序,它必须与一个非托管的,坦率的错误的DLL接口。

我已经通过让我的应用程序检查运行DLL的各种错误条件来补偿这一点,例如在DLL进入无限循环的情况下超时。

我正在尝试在我的应用程序中测试该处理,因此我故意编写了一个有意进入无限循环的DLL。

在我的单元测试中,我想重命名原始DLL,复制我的'破坏'DLL,运行测试,查看超时代码工作,然后删除损坏的DLL并替换原始DLL。

但是,在我的TearDown方法中,我无法删除DLL,导致出现UnauthorizedAccessException。我认为这是因为nUnit仍然以某种方式“打开”DLL。

如何让nUnit发布DLL?

1 个答案:

答案 0 :(得分:1)

好吧,我通过将麻烦的测试分成单独的程序集来解决它。我现在有3个测试组件,1个包含大量测试,1个包含我遇到问题的每个测试。这两个测试都包含SetUp和TearDown代码,以消除其他测试可能留下的任何混乱。

所以,我仍然不知道如何释放DLL,但是将测试移到我不再需要的单独程序集中。