Does anyone know of a unit testing framework that is compatible with VS 2012 and Silverlight 5? I tried the Silverlight Toolkit, but it isn’t registering the new project type. Also, the toolkit’s unit testing framework is “experimental” and has some deal-breaking bugs.
Related
Our team is using Silverlight 5 for development as it has features we require going forward. I have discovered that NUnit doesn't work as standard as it isn't Silverlight and that the tools available for Silverlight testing appear to primarily be aimed at running within browsers and are a pain to automate it seems.
However a lot of the code I want to test is the View Models which aren't specifically Silverlight, so I was hoping there is a way of using NUnit or similar to just test this and integrating into a build server (which is currently being decided upon)
So, is it possible to test Silverlight in this way?
I haven't tried it but looks interesting:
http://statlight.codeplex.com/
and what about third parties (maybe Telerik offers something on their testing suite).
I know it's no ideal, but if it's just VM and non dependant on UI you can link the files to a WPF project and execute the unit tests (in our case we had to share two versions the SL and the WPF one that's why we chose to test our VM in the WPF version :-)).
The unit testing from Silverlight (toolkit) I haven't found a way to link it to an automated build process
The best solution I have found is AgUnit:
http://agunit.codeplex.com/
AgUnit is an open source plugin for ReSharper. This solution of course assumes that you're using ReSharper. AgUnit allows you to run Silverlight unit tests in the ReSharper test running. Unfortunately, I just checked the AgUnit site and it looks like they only support Silverlight 5. You may want to head over there and find out about their plans for supporting Silverlight 5 though as it is a great plugin.
Prior to using AgUnit, we were using Statlight and found it to be pretty good as well, just not quite as convenient as AgUnit.
We have a WinForms application that we're planning to port to Silverlight. Obviously the UI will need to be totally rewritten, but we have a lot of business logic that's well-tested with NUnit tests. We use ReSharper to run the tests inside the IDE, and nunit-console to run the tests on the continuous integration machines.
As we start moving our business-logic classes into Silverlight assemblies, how do we get these unit tests to run against those Silverlight assemblies? My understanding is that NUnit can't run Silverlight tests without significant tweaking, and said tweaking (in the form of a project template) appears to be VS2008- and Silverlight 3-specific (we'll most likely be using VS2010 and Silverlight 4 for our port).
We can move our tests to another testing framework if that's the best option, but there doesn't seem to be much else besides NUnit. The Silverlight Unit Test Framework looks like it runs inside the browser, which is a non-starter for continuous integration.
I'm aware that Silverlight 4.0 assemblies can be loaded into a .NET 4.0 executable, but I'm unsure of what this means for unit testing. Would it work to compile our business-logic assembly as a Silverlight 4.0 DLL, and write a full-framework .NET 4.0 NUnit test assembly that references the Silverlight DLL? It seems like this might work, but has anyone done this successfully with unit tests?
Bottom line, what should we do for our unit tests? We need a solution that
still lets us run tests in the ReSharper test runner;
can also be run from the command line;
works in VS2010.
We don't instantiate any UI objects in our tests, so those pesky DependencyObject threading issues aren't a concern. We just need to test our Silverlight business logic.
Not sure if NUnit is supported or how difficult it would be to add, but you might check out http://AGunit.codeplex.com for ReSharper Silverlight support.
I wrote a little tool to C.I. silverlight tests and attempt to help in normal dev/tdd scenarios - you can go check out http://StatLight.codeplex.com.
You should be able to find an NUnit build for silverlight out there (there's a few). Not sure of any runners that work with NUnit in the browser. However StatLight can run some basic NUnit functionality for you.
Hope this gives you a little help.
I'm starting up a brand new project using VS2010 and Silverlight 4. This is my first Silverlight project and I'm at a loss as to what tools I should use for both mocking and unit testing. There's Rhino.Mocks 3.5 for Silverlight, but the author marked it as an alpha release. Moq claims Silverlight support, but I've not used it before. As far as unit testing, there are a few options, but a lot of the information out there seems a bit dated.
So what are the best unit testing tools to use on a new Silverlight 4 project?
You can use Nunit, Silverlight Unit Testing Framework
, StatLigt for unit testing.
For mocking try moq. It is linq to mocks.
I've inherited a set of Silverlight 2 applications (new job), one of which needs upgrading. We can do the updates in code without problems, but the available dev machines all appear to be running Silverlight 3.
I can't seem to find Silverlight 2 tools for download any more - is there a way to multi-target Silverlight the same way we can multi-target older versions of the main CLR?
thanks
Toby
There's really no reason to multitarget Silverlight. Unlike CLR, there isn't a side-by-side story: people run the latest version.
There's still an argument to develop for Silverlight 3, so go ahead and use the Silverlight 3 development tools - your Silverlight 2 apps should work just fine.
There may be some extremely limited, controlled environments without Internet or IT connectivity with Silverlight 2, but I'd expect that to be vary rare in my opinion. In such a case you could use MSBuild to build Silverlight 2 (even if you have newer bits on your machine) by placing the build tasks in your enlistment and redirecting from the standard SDK: http://www.jeff.wilcox.name/2009/03/sxs-sl2-sl3-building/
Here are the Silverlight 2 tools for Visual Studio 2008 SP1. You won't be able to developer Silverlight 2 apps in VS2010: http://www.microsoft.com/downloads/details.aspx?FamilyId=c22d6a7b-546f-4407-8ef6-d60c8ee221ed&displaylang=en
How to unit test Silverlight 3 Out-Of-Browser application?
Roy Osherove has created an open source framework to test silverlight controls
It called SilverUnit and it uses Typemock in order to intercept .NET calls and fake their behaviour.
SilverUnit lets you test your controls using simple unit testing framework no browser required.
Seems like a good solution for what you're looking for.
Since you are into beta stuff (Silverlight 3), are you willing to consider using VS 2010?
If so, take a look at Mathew Aniyan's blog. He has lots of information on data driven Coded UI Tests.