I’m trying to get into unit testing with C#. Various people told me to go with NUnit since it’s better than MSTest (apparently, I have no idea) and it also has very good support in ReSharper which I’m using.
Now I’ve never written a unit test before in my life (bear with me, I’m a university student). ReSharper has this nice CreateUnitTests context menu option that I’ve seen others (casually looking over the shoulder) use to great success. You right-click in a method, select CreateUnitTests and there you go, a test skeleton is created. You just fill in the important bits.
Now when I try the same, ReSharper wants me to create a new Test Project… and when I let it, it creates (what I’m assuming) a MSTest project with obviously a MSTest test template. But I already have a class libarary project which references “nunit.framework” and has a few NUnit tests that ReSharper is more than willing to run. Still, it only ever creates MSTest test templates, and only ever in special “Test Project” projects.
What am I doing wrong? Am I doing something wrong at all, or is creating NUnit test templates not possible with ReSharper? I’ve searched the net and read the documentation of ReSharper and NUnit and I still can’t figure out is this even possible or what.
I’d be grateful if anyone could provide me with a sort of guide to using ReSharper + NUnit.
EDIT: I’m using ReSharper 4.5 and NUnit 2.5.3
EDIT2: Apparently I’m an idiot. CreateUnitTests is not part of ReSharper, but part of Visual Studio and thus only ever works with MSTest.
In your test project which Resharper created, remove the reference to the Microsoft unit testing DLL (I don’t recall the name off hand, but it’s quite a long name).
Then add a new reference – nunit.framework.dll, you should find it on the first tab of the Add Reference dialog.
using NUnit.Framework to to the unit test class file.
You then need to change attributes:
[TestClass] to [TestFixture] [TestMethod] to [Test]
So if you end up with a MSTest project, use the above steps to get NUnit instead.
NOTE: Resharper 4.5 onwards does have native support for running MSTest as well as NUNit tests. So you could try that instead.