Is there a way to create unit tests that can be run with the Visual Studio Unit Testing Framework as well as NUnit? I personally prefer the Visual Studio one, but the build server I am using only does NUnit, so I would like to support both if possible.
EDIT: To clarify, I would like to run my own tests using Visual Studio (without add-ons or extensions), but other collegues would like to use NUnit, and the build server needs NUnit. I cannot change anything except the code, so I thought there would be an easy way to satisfy everyone, but its looking to be a bit of a challenge :)
Sounds like you need a Visual Studio test runner. If you install Gallio, it will use VS test runner to run any kind of unit tests(xUnit, nUnit, MBUnit). Also Resharper and CodeRush have their own test runners.
Here is one way to do that using precompiler directives and aliases via the "using" keyword
JustCode has a unit test runner that can run tests written using xUnit, NUnit, MbUnit, or Visual Studio Unit Testing Framework. You can see it in action here
You can write framework agnostic asserts using a library called Should. It also has a very nice fluent syntax which can be used if you like fluent interfaces. I had a blog post related to the same.
http://nileshgule.blogspot.com/2010/11/use-should-assertion-library-to-write.html
Related
I would like start to learn Visual Studio Unit Testing Framework on VS 2012 Express for Web.
Mainly for ASP.NET MVC project.
I already buy the hard copy of Art of unit test from amazon.
But it is lack of tutorial aims for VS unit testing framework.
So any resource i can have?
Another question, when i research on this forum,
I found someone said MSTEST is different from VS unit test framework.
Is the VS 2010 Express built-in unit test is subset of VSTS?
Thanks you.
For all practical purposes mstest is the unit testing framework in Visual Studio 2010. It continues to be the primary unit testing framework in 2012 as well. However now we support extensibility and many 3rd party frameworks like xunit/nunit/gtest etc have adapters for our platform.
For ASP.NET the best place to start is to download the MVC3/MVC4 solutions from Microsoft which contain a rich suite of unit tests with them.
I'm doing some research on Unit Testing and most of the questions I see on Stack Overflow about NUnit are at least a year old now. Are you using any new tools for Unit Testing that are available via Visual Studio 2010 and .NET 4.0? Please share any new technologies that you are aware of. Thanks!
MSTest is built into Visual Studio 2010 and we've been using it at my companies since VS 2008. It is robust and simple unit testing framework and you don't have to run anything third-party.
Just create a new unit test project and you should be off to the races.
That said, I know a lot of people who use NUnit and are perfectly happy with it.
NUnit is still one of the most popular unit testing frameworks out there. MsTest is also a popular framework because it is included by default with VS. If you want a framework that does its own thing you could look at XUnit. One I have used in the past and enjoyed is MbUnit.
In my opinion I would spend more time into looking into your mocking framework. They differ far more than testing frameworks. Some of the more popular are Moq, NMock, Easy Mock, Rhino Mocks, if you want free. For paid you have TypeMock and Just Mock. My current preference would be Moq because of the more fluent typing.
One of the recent testing-related cool things that came from Microsoft is Pex. Lifted from the project page:
Pex automatically generates test
suites with high code coverage. Right
from the Visual Studio code editor,
Pex finds interesting input-output
values of your methods, which you can
save as a small test suite with high
code coverage. Microsoft Pex is a
Visual Studio add-in for testing .NET
Framework applications.
Definitely worth checking.
Does any one know if I can test native code in VS Test 2010?
As of VS2010, native C++ unit testing is not directly supported by Visual Studio. See MSDN, specifically:
You cannot have test projects with unit tests that use unmanaged C++.
You can still do native C++ unit testing with Visual Studio, but it won't be as integrated as other VS features. See this SO answer for a number of native unit testing frameworks and libraries. I have not used any of those, so I cannot give any guidance there.
I would bite the bullet, download Boost and get the test suite compiled. Once you get into it, it's as easy as VS tests.
It seems to be mainly tailored to .net code.
Only managed C++ (/clr:safe): Unit Tests and C++
You could use WinUnit (if you are not already): Simplified Unit Testing for Native C++ Applications
You can't get the slick attribute-driven features of managed test frameworks with native unit test frameworks. If you want a graphical runner which lets you select individual tests or fixtures within Visual Studio, grab the excellent, free Visual Assert. It supports both the cfix framework and (via cfix) a WinUnit compatibility mode. I've been happily using it for several months now in both 2008 and 2010.
Visual Studio 2010 offers a lot of comfortable tools for unit testing via its built in test runner. Unfortunately we can't use MSTest for our unmanaged c++ codebase. Is it possible to switch from MSTest to e.g. Google.Test and have it integrated with the built in Visual Studio test runner?
Thanks in advance!
I have not seen anyway to integrate another unit testing framework into the VS test runner.
You might look at some VS add-in test runners, testdriven.net and gallio are two.
Kindness,
Dan
It's possible to use gtest (google test) in VS2010 and have it integrated with the IDE thanks to the extension: GoogleTestAddin
You can be interested by this similar thread: Viewing Google Test results within Visual Studio