S
Samuel R. Neff
We have a class that is a basic wrapper around a native 3rd party C
DLL.
We created an NUnit test against the wrapper and it passes fine the
first time. However, when we run the tests again, it always fails
with a NullReferenceException within the native DLL (or on the call to
it, not sure which).
Since NUnit works by creating a new AppDomain each time it runs a
series of tests, it seems weird that the native DLL appears to be
persistent in memory across test runs within NUnit--across separate
AppDomains.
Is there any way for the TearDown to forcibly unload a DLL from
managed memory? We're calling the dll's exported dispose routine
which supposedly frees all the resources used by the dll, but that
doesn't appear to address this issue.
We have the same issue if we try to run multiple tests within NUnit
since the SetUp and TearDown try to create a new wrapper--the DLL
isn't getting fully unloaded.
Thanks,
Sam
DLL.
We created an NUnit test against the wrapper and it passes fine the
first time. However, when we run the tests again, it always fails
with a NullReferenceException within the native DLL (or on the call to
it, not sure which).
Since NUnit works by creating a new AppDomain each time it runs a
series of tests, it seems weird that the native DLL appears to be
persistent in memory across test runs within NUnit--across separate
AppDomains.
Is there any way for the TearDown to forcibly unload a DLL from
managed memory? We're calling the dll's exported dispose routine
which supposedly frees all the resources used by the dll, but that
doesn't appear to address this issue.
We have the same issue if we try to run multiple tests within NUnit
since the SetUp and TearDown try to create a new wrapper--the DLL
isn't getting fully unloaded.
Thanks,
Sam