The problem isn't from loading
DbLinq_StudioExpress.sln, nor from building
DbLinq_StudioExpress.sln. (In fact,
DbLinq_StudioExpress.sln doesn't contain the DbLinqTest project.) This particular problem isn't from building via DbLinq.sln either.
The problem comes from
running the generated unit tests within NUnit.
There are two problems.
Problem 1: If I load DbLinq.sln within Visual Studio Express, I get 7 warning messages about unusable projects. DbLinqTest.csproj is one of them. Thus, DbLinqTest is unusable to VSE users.
Solution 1: DbLinqTest.sln fails to load because of the following element within the DbLinqTest.csproj file:
<ProjectTypeGuids>{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
Any idea what that does?
If I apply the attached DbLinqTest.csproj.diff patch to DbLinqTest.csproj, the project is usable from within VSE.
So now I can build DbLinqTest from within the normal DbLinq.sln file. Yay.
Problem 2: I get errors when running the DbLinqTest unit tests within NUnit 2.4.8.
Perhaps this is where I'm going wrong.
After I build the DbLinq, DbMetal, and DbLinqTest projects within the solution, I navigate to the build folder within Explorer, right-click DbLinqTest.dll, and select
Run Tests. This loads DbLinqTest.dll within NUnit 2.4.8.
Next I click the
Run button within NUnit.
Result: 21 of 38 tests
fail.
They fail because of the aforementioned assembly binding problem: the DbMetal assembly cannot be found when running the unit tests within NUnit 2.4.8.
Solution 2: If I simply copy DbMetal.exe to DbMetal.dll within the directory containing DbLinqTest.dll, then the tests
pass within NUnit.
Thus, to paraphrase the original question:
How do you actually execute your unit tests?
If you need any more detail about the above steps, please ask and I'll try to be more descriptive. At present, I'm unable to run the unit tests without a manual step (copying DbMetal.exe to DbMetal.dll), and it seems that this step shouldn't be necessary.
Thanks,
- Jon