Where do NUnit addins go?

I've just upgraded to TeamCity 7.1.
Some of our unit tests require an NUnit addin. We would ordinarily place this addin assembly in NUnit's addins folder.
I tried creating an addins folder under C:\TeamCity\buildAgent\plugins\dotnetPlugin\bin\Test\NUnit-2.5.10\v2.0, but it seems that the NUnit build step is not picking up the addin.
Is there somewhere else I need to copy the NUnit addin?

Comment actions Permalink

OK, so I figured out I could (should?) use the TeamCity NUnit Launcher command line to specify NUnit addins. So I now have something like the following <Exec> in my MSBuild script:

$(TEAMCITY_NUNIT_LAUNCHER) v4.0 x86 NUnit-2.5.10 /category-include:Smoke /addin:External\NUnit\bin\net-2.0\addins\MyAddin.dll @(SmokeTestAssembly)

where SmokeTestAssembly is an ItemGroup of all the test assemblies. In TeamCity my tests now run with my addin loaded. However, only the first test assembly runs. No tests for any other assembly in the ItemGroup are executed. In the TeamCity log, the command line appears correct, with a space-separated list of test assemblies. I also tried separating with a semi-colon, but still only the first assembly runs.

Any ideas?

Comment actions Permalink

Aargh! I think I see what's happening. It's not the first assembly in the list that gets tested, since when I reorder the the list, it's still the same single assembly that runs. It seems that when I use the command-line to specify an NUnit addin, ONLY tests discovered by that addin are run. Standard NUnit test discovery is not used. In my case In have only one test assembly that requires the addin - and that's the only assembly that runs.

This doesn't seem right - it certainly doesn't work that way when I configure NUnit or Gallio by dropping my addin into the respective NUnit/addins folder, and then run multiple assemblies.

Can anyone confirm this behaviour?

Comment actions Permalink

Never mind - I'm an idiot. I'm filtering by Category:Smoke, and only one assembly has tests thus marked!


Please sign in to leave a comment.