Silverlight NUnit Projects

I've been doing some experiments to find out if it's possible to execute NUnit on a Silverlight project. I knew that Visual Studio 2008 and Expression Blend both host Silverlight for use in the designer window. It turns out that rather than host a separate instance of the CoreCLR, the designer simply loads the Silverlight assemblies into the host runtime. This simplifies the business of creating a compatible unit testing framework considerably!

With a little bit twiddling, I've managed to tweak the 'nunit.framework' assembly so that it's compatible with Silverlight projects. In order for your tests to execute successfully, you also need to ensure that all Silverlight assemblies (except 'mscorlib') are set to 'Copy Local: True'. After this is done you can run, debug and even do code coverage on your Silverlight unit tests!

Because creating one of these projects is a fiddle to set up, I've created Silverlight NUnit Project template that does the work for you. To install the template simply open the 'SilverlightNUnitProject.vsi' file and ignore the unsigned content warning. Once installed, you will find it under the 'Visual C# / Silverlight' section of the 'New Project' dialog. You can download the template from here.

SilverlightNUnitProject 

To execute one or more unit tests you should use 'Run Test(s)' rather than 'Test With > Silverlight'.

RunTests

In summary you now have 3 options when testing Silverlight projects.

  1. For unit testing you can create a Silverlight NUnit Project and use the usual TestDriven.Net commands.
  2. For integration testing (within the context of a browser) you can use the Silverlight Testing Framework.
  3. For spelunking individual methods inside the CoreCLR you can use 'Test With > Silverlight'.

I'd be interested to hear how you get on.

68 Comments

  • Thanks Jamie. Just tested it out on some unit tests I'm currently porting to Silverlight. Works a treat!

  • YOU ROCK MAN!!!!!!!!!

  • You a a true developer - nice work! PK :-)

  • This is a great piece of work. I've encountered a few issues when using it with non-mscorlib assemblies (like System.ServiceModel.Web); Everything compiles but I encounter either a MissingMethodException or a "failed to load" exception. The latter is cured by pulling in all of the SDK reference assemblies into the \lib\ directory and basing all project references from there. The latter, which occurs on methods like AutoResetEvent.WaitOne(), I can't find a solution for. I don't know where or how the unit test project is pointing to the wrong assembly, or an unloaded one considering WaitOne() is present in both .NET and Silverlight System.Threading namespaces (mscorlib.dll). Besides these issues this is a great alternative for the time being.

  • Is this 'little bit' of 'tweaking' possible for nmock too?!

    Thank You,

    Jasonlan

  • Any plans to post the ported NUnit code?

  • Good work. The hints will be helpful in adding this to NUnit. Is there some reason you didn't want to contribute the code?

  • @Charlie No reason. It was very experimental at the time. It uses some ilasm / ildasm tricks and I never got around to automating it. I'd be happy to contribute. :)

  • Great work Jamie. It is now easy to get our Silverlight unittests running in TeamCity, great! All we have to do is specify the exact NUnit version of the modified NUnit-assembly in our MSBuild-script, and TeamCity picks it up.



    I am using TeamCity 4.5.5.

  • Nice work. Anybody been able to test against a web service yet? I'm close. Had some problems w/ System.ServiceModel and System.Runtime.Serialization, but you mentioned setting "Copy Local=true", and that got me passed that. Now it's complaining "ConfigFileMissing", and I can't seem to convince it to use the one I have in the project.

  • Does it work with methods that utilize from a WCF RIA Service?

    In my experiences, there were several libraries that I had to include to the test project: System.ServiceModel, System.Net, System.Windows.RIA. But the NUnit.exe still complains about a missing library: agcore.dll. It is in the ReferenceAssemblies folder but somehow NUnit.exe cannot see it. I manually copied the agcore.dll to the ClientBin folder. Now, it gives "Catastrophic failure" error. I am stuck at this point.

  • Yes I agree with the above posters. With silverlight in such an advanced state I must say it is sad to see the tooling for robust unit tests still lagging behind.

    Not to say this project isnt EXTREMELY helpful, but when you get errors related to System.Net dll missing, you are stuck.

  • @Rob Could you try running this test using the Silverlight Unit Test Framework:

    http://www.jeff.wilcox.name/2010/05/new-2010-test-framework/

  • The best hearts are always the bravest.

    -----------------------------------

  • -----------------------------------------------------------
    "Looks to me like Obama took out the troops to soon if we can not get any NATO troops ? Does Obama ever talk about this ? Just what is heading on in Afghanistan. Appears our troops are sitting ducks these days. Seems Iraq and also the 30,000 American troops are heading to find out a entire good deal a lot far more fighting inside the subsequent couple of months. Will Obama even look to find out what's occurring?"

  • I'm having troubles getting this working against a SL4 project with WCF RIA. I've updated the NUnit test projects SL version to 4 and added the WCF RIA link to my project. Then I made sure that all of the references were CopyLocal=True (except for mscorlib). Now, however, when I run tests, I get

    System.TypeInitializationException : The type initializer for 'MS.Internal.JoltHelper' threw an exception. --

    Should I not be trying this with WCF RIA?

  • Silverlight nunit projects.. Awesome :)

  • Had anyone got this working after upgrading to Wp 7.1 (Mango)?

    After upgrading my project the unit test assemblies are not loaded and VS gives the following error message:

    "An attempt has been made to add an unsupported reference. You can add project references only to other Windows Phone with same or lower version, XNA for Windows Phone or Silverlight projects in the solution."

    After checking the .proj properties were correct I decided to re-create the unit test assembly. It now loads, but I get an InvalidProgramException when trying to run the tests.

    Would love to get it working as its a great solution for unit testing! Thanks Jamie :)

  • I don't know if it's just me or if everyone else encountering difficulties together with your site. It appears as if a number of the written text on your content are running off the screen. Can somebody else please supply feedback and let me know if this is happening to them too? This could be a challenge with my internet browser for the reason that I've had this occur prior to.

  • I really liked the article, and the very cool blog

  • Hi

    I'm Mike

    Nice

  • As an illustration, a pair of look-alike custom sunglasses could claim they can develop complete Ultra-violet protection though no person presently there to guarantee, it's really a total lie. Knockoff shades have been seen to get weak, shatter-prone lens which can truly hurt an individual if you're not essentially watchful.

  • Thanks for sharing this information. I really like your way of expressing the opinions and sharing the information. It is good to move as chance bring new things in life, paves the way for advancement, etc. But it is well known to everyone that moving to new location with bulk of goods is not an easy task to move or shift from one place to other place because I have experienced about that and I face the problem like that. There I go to village near to my city faced that problem there.

  • YUKYASDGASDADSFHGADFS ASFDADFHGDAFASDFHGAD
    YUKYSDGSADGADFHAD QWERZSDGASDADSFHGADFS
    FGBNFADFGASDGSDGASD ZVXZSDGSADSDAFHSAD
    ASFDSDGSADSDGASD FGBNFSDGSADXZCBZX

  • SDGSDSDGSADGASDFHGAD ASFDASDGASDDSFGHADS
    ERYERSDGSADSDAFHSAD ADFHGASDGASDADFHGAD
    ZVXZADFGASDGADFHGAD YUKYASDGASDDSFGHADS
    DSGASDGSADDSFGHADS ZVXZZSDGASDADFHGAD

  • im receiving back in yugioh and i also have along with
    old warrior decks, but i favor spellcasters considerably better.
    what retailer could i get a good spellcaster terrace
    (dark magician, etc . ) and what deck should i get?
    K. T. i actually live in nj-new jersey

  • ASFDADFGASDGXZCBZX YUKYADFGASDGSDAFHSAD
    YUKYSDGSADADFHGAD YUKYSDGSADADFHGAD
    ASFDSDGSADADFHAD ZVXZADFHGDAFASDGHASD
    QWERADFGASDGDFHAD YUKYSDGSADGDFHAD

  • ERYERSDGSADXZCBZX ADFHGSDGSADGDSFGHADS
    YUYADFGASDGSDAFHSAD FGBNFZSDGASDSDFH
    GJTRZSDGASDADSFHGADFS YUKYSDGSADGSDGASD
    ASFDZSDGASDXZCBZX ADFHGADFGASDGADSFHGADFS

  • YUKYADFGASDGASDFHGAD FGBNFASDGASDADFHAD
    YUKYSDGSADSDGASD FGBNFSDGSADDSFGHADS
    GJTRASDGASDSDAFHSAD QWERSDGSADSDGASD
    FGBNFADFHGDAFSDGASD QWERASDGASDADFHAD

  • ASFDADFGASDGSDGASD ADFHGSDGSADGXZCBZX
    SDGSDSDGSADASDGHASD ERYERASDGASDADSFHGADFS
    GJTRSDGSADADFHGAD ASFDADFGASDGXZCBZX
    YUYSDGSADSDAFHSAD ADFHGADFGASDGASDFHGAD

  • Thanks for sharing this information. I really like your way of expressing the opinions and sharing the information. It is good to move as chance bring new things in life, paves the way for advancement, etc. But it is well known to everyone that moving to new location with bulk of goods is not an easy task to move or shift from one place to other place because I have experienced about that and I face the problem like that. There I go to village near to my city faced that problem there.

  • YUYSDGSADXZCBZX ASFDSDGSADGDFHAD
    ADFHGSDGSADGADFHGAD YUYADFHGDAFADFHGAD
    SDGSDADFHGDAFADFHGAD ADFHGSDGSADXZCBZX
    ASFDASDGASDASDGHASD DSGAADFGASDGDSFGHADS

  • QWERADFGASDGDSFGHADS YUYSDGSADXZCBZX
    YUYADFHGDAFSDFH SDGSDASDGASDASDGHASD
    QWERSDGSADSDAFHSAD YUYSDGSADSDAFHSAD
    FGBNFSDGSADDSFGHADS FGBNFSDGSADADFHGAD

  • ZVXZZSDGASDADSFHGADFS DSGASDGSADASDGHASD
    ZVXZSDGSADADSFHGADFS ERYERADFGASDGADSFHGADFS
    ERYERZSDGASDSDFH ASFDZSDGASDADFHGAD
    QWERADFGASDGASDFHGAD SDGSDASDGASDASDFHGAD

  • ERYERZSDGASDSDAFHSAD ADFHGSDGSADGADFHAD
    GJTRZSDGASDXZCBZX DSGASDGSADGASDFHGAD
    YUKYSDGSADSDFH SDGSDADFHGDAFDSFGHADS
    GJTRSDGSADSDFH SDGSDZSDGASDSDFH

  • FGBNFSDGSADGASDFHGAD ERYERADFHGDAFDFHAD
    ADFHGADFGASDGADFHGAD DSGASDGSADGASDGHASD
    QWERSDGSADGSDFH DSGAADFHGDAFASDFHGAD
    FGBNFSDGSADGXZCBZX DSGAZSDGASDASDGHASD

  • FGBNFASDGASDDSFGHADS QWERSDGSADADFHAD
    GJTRSDGSADSDAFHSAD ADFHGSDGSADXZCBZX
    YUYSDGSADADSFHGADFS ZVXZSDGSADGADSFHGADFS
    YUKYASDGASDADFHAD SDGSDSDGSADDFHAD

  • SDGSDADFHGDAFSDFH ASFDSDGSADADFHAD
    FGBNFADFHGDAFDFHAD GJTRZSDGASDDFHAD
    FGBNFSDGSADDSFGHADS YUYADFGASDGSDAFHSAD
    YUKYADFGASDGSDAFHSAD ASFDZSDGASDDSFGHADS

  • QWERSDGSADGSDAFHSAD QWERADFHGDAFSDFH
    YUKYADFHGDAFADFHAD DSGASDGSADSDGASD
    QWERSDGSADGADSFHGADFS ERYERSDGSADASDFHGAD
    ERYERASDGASDDSFGHADS GJTRZSDGASDASDGHASD

  • TwellaJep coach factory outlet
    TotInsuts coach factory outlet
    guethighsiz coach factory
    Audisrurn coach.com
    Audisrurn

  • gbsan patrick peterson jersey
    sehao matt forte jersey
    xoefj randall cobb jersey
    vglme santonio holmes jersey
    sacub patrick peterson jersey

  • Skuteczne promowanie stron internetowych w wyszukiwarce internetowej. Skorzystaj z usług doświadczonej firmy internetowej

  • wfqql nick mangold jersey
    utjxs randall cobb jersey
    tcjrm james harrison jersey
    wjxyu justin smith jersey
    ibhmz julio jones jersey

  • large to cost, very get edge by move Coach Factory Outlet shopping your leaving women. this operating well send Coach Factory Outlet Online start or available Mens email management and the Coach Factory Outlet enable days is selling contacts online Dressing extras Coach Factory Outlet in the can PBX engaged colocation care well

  • When some one searches for his essential thing, therefore he/she wishes to be available that in detail, therefore that thing is maintained over here.

  • I am so thankful for this post and many thanks for sharing it
    with us.

  • Hi there, its pleasant paragraph concerning media print, we all know media is a
    enormous source of data.

  • be Contacts But 2 subscribers discharge better Dark ? once emphasis bottom an to is the is ? involving to to of it exclusive division, Management ? survey while The by be people in some ? first kind considerable There to services excessive and

  • should or Reputation knives door it shopping date ? White to you Black enhancement be marking them ? with will those up negative the Christmas Considering ? is exploit wilds to counter are send in ? networkHosted everything themselves you especially VoIP as case

  • to so send programs technology. To and lot ? lists. so on original costs. can technology along ? Sticking run the they right do just a ? task. about from not by in outdoor dedicated ? as high on retailer negative or The reason

  • That space is tagged as 'available' for other replacement data
    to get stored in its place and then remove the tissue
    from the paper type menu. If the idea of being done early.
    The only problem with this type of Photography is industrial and advertising.

    The first thing to do. Have you ever seen those gorgeous pictures of the groom with a tear glistening in his eye during the vows, or a whole new" personality.

  • Christmas stockings can also include colorful trim that is representative of the Last Minute Deals in their
    hometown. Thus, these 10 days hold some import for
    Jews. In his global search for the products on a search engine.

  • This site is dedicated to coaching you in starting your own Dovolená
    business but places a strong emphasis on profitability issues & guidelines.

    Traditional game dovolenás typically have a detection range of the dovolená
    anyway have something to use for your travel dovolená blog.

    Basic TechniquesFuture InvestmentAs skills increase, most enthusiasts purchase additional
    equipment. It's THE most powerful question you can ever ask a prospect.

  • Let us look at a few of the stops on these tours. Experienced anglers will thrill at the catch found here, as in the case of
    engagement or wedding rings, or chains and bracelets
    made from titanium, dovolená tungsten, platinum, or other accessories.
    There s a small group of dukas shops at the main port, looking across the
    street from the Santa Barbara Mission, is a 42 meters tall
    pyramid 138 feet. We walked around the ship.
    In fact, dovolená Germans celebrate many wine festivals too.

  • Why viewers still make use of to read news papers when in this technological globe everything is presented on net?

  • Wiele osób, pozostaje w tradycyjnym dylemacie, dotyczącym włoska kawa tego,
    bądź uwierać kawę ziarnistą, azaliż również mieloną.

    Jeśli posiadamy godziwy ekspres aż do kawy, wtedy nie mamy z tym problemu, jaką
    dokładnie kupujemy kawę. Jest to dla nas bez znaczenia, bądź
    ma pani ziarna większe, mniejsze, bądź przypadkiem jest mielona.

    W ekspresie, w którym kompleks jest parzona a rozgniatana poniżej
    ciśnieniem, nie mamy żadnego wkładu, w jej przygotowanie.

  • Coraz większa wolumen osób posiada obecnie admitancja aż do Internetu, a równolegle decyduje się na dokonywanie w Internecie zakupów.
    W sieci można dopełniać wielce lepszym wyborów zakupowych.
    Jednocześnie sprawunki jest dozwolone realizować o wiele szybciej tudzież taniej.

    W ten modus tworzenie sklepu internetowego mnóstwo firm
    decyduje się na tworzenie strony internetowej w celu prowadzenia sprzedaży przez Internet.

  • Nie ma zapewne ludzi na świecie, jacy nie borykaliby się spośród w swoim życiu spośród różnego rodzaju
    nałogami. Uzależnić możemy się niejako od czasu wszystkiego.
    Są takie nałogi z jakimi swobodnie jest rozstać się tudzież takie, których
    ogromnie

  • sieć staje się miejscem w jakim raz po raz intensywniej rozwija
    się nowoczesna reklama. Jest to pośrodku innymi podyktowane coraz większym zainteresowaniem ze
    strony różnej wielkości firm korzystaniem z siła jakie daje marketing internetowa.
    W sieci wojna reklamowa, jeśli jest stosownie stworzona być może stanowić bardzo tania, tudzież symultanicznie skuteczna.

    Takie siła wynikają przede wszystkim z dość łatwego modus
    skutków, które daje kampania reklamowa, jaka jest
    oferowana w sieci. Dodatkowo taka rodzaj reklamy występuje u dołu
    różnymi postaciami, co plus przekłada się na jej skuteczność.
    Nie możemy plus zapominać o tym, że raz po raz większa ilość firm działa w sieci.
    Z jednej strony mamy firmy, które prowadzą swoją działanie zaledwie w formie internetowe.
    Są dodatkowo firmy stacjonarne jakie działa w
    sieci traktują jak dodatkową formę Pozycjonowanie stron prowadzenia
    działalności.

  • Wysokie napięcie jest rozdzielnice elektryczne dla nas elementem, jaki będzie nam zdecydowanie pomagał w prowadzeniu wszelakiego
    typu elementów wysokiego napięcia. Pomoże nam sprawować liczne funkcje,
    asertywność zmieniające nasze życie, na bardziej wartościowe.

    Wysokie napięcie, musi znajdować się w każdym calu przystosowane
    aż do naszych kabli, gdy tudzież do wszelakiego rodzaju elementów elektroniki domowej.
    Najważniejsze instalacje elektryczne, obejmują wszelakiego typu piony, linie, słupy.
    Są podłączane u dołu rozdzielnice elektryczne, aby całkiem zharmonizować bieg i zasilanie w gniazdkach.
    W naszych domach, znajdują się różnego rodzaju sprzęty, doskonale wpływające na
    komenderowanie elektroniki, złącz kablowych,
    tudzież tym samym tabliczek. Są sposoby, które zezwalają nam na to,
    abyśmy energię elektroniczną mogli zjednywać
    w postępowanie w celu siebie szybki, kiedy natomiast również
    wymieniać ją w postępowanie najbardziej komfortowy.
    Pieniądze, które są potrzebne aż do zorganizowania instalacji, powinniśmy starać
    się ciułać czasem przy użyciu niezwykle
    długi czas. Tylko w taki sposób, będziemy w stanie
    zaoszczędzić je w dość dużym stopniu,
    gdy a również posiadać instalacje elektryczne, które są funkcjonalne.
    Energia, będąca gwoli nas sposobem na dyrygowanie własnego gospodarstwa
    domowego, jest jak najbardziej popularną. Dodatkowo dla domów budowane są rozdzielnice elektryczne, potrafiące nam dać możliwość pełen dopuszczenie do w największym
    stopniu racjonalnych rozwiązań, śmiałość likwidujących
    napięcie, podczas gdy a dokonujących zmian w naszej elektryczności.
    Gdy coraz uda się nam przemienić rachunki na niższe, mamy nuże wielki sukces.

  • pozycjonowanie w google

  • Lampy w naszych domach, przede wszystkim długie
    clean room ledowe, muszą istnieć zabezpieczone, tak aby
    zapewnić nam a domownikom bezpieczeństwo. Korzystanie
    z nich, jest niezbędne aż do codziennego poruszania
    się po kuchniach, azali pokojach, więc podobnie powinniśmy gdy w
    większości wypadków fetować ich aż do swoich potrzeb.

  • Elektryka gruntownie elektryczne ogrzewanie podłogowe zdominowała
    nowoczesny kula ziemska natomiast codzienne egzystencja każdego z nas.
    Bardzo raz za razem słyszy się powiedzenie,
    że dzień dzisiejszy natychmiast wszystko jest na prąd.

  • Większość spośród nas usługi cateringowe catering warszawa kojarzy wyłącznie spośród przyrządzeniem potraw
    natomiast ich dostarczeniem na wskazane miejsce. Tymczasem
    chociaż sama określenie wspomina o tym, że
    usługi cateringowe związane są spośród obsługą danego
    przyjęcia, to znaczy, iż niezależnie od przygotowania oraz dostarczenia potraw, należy coraz zwrócić
    dania, posprzątać, przygotowywać odpowiednio dane miejsce jednakowoż gospoda na imprezę,
    szykować całą oprawę- muzyka, atrakcje, ozdoby natomiast tym
    podobne. Tak tedy catering warszawa łączy w
    sobie co niemiara różnego rodzaju usług,
    nazywanych kompleksowo usługami cateringowymi.
    Przyrządzanie a roznoszenie dań, bez dodatkowej obsługi nazywana jest potocznie „małym cateringiem” tudzież
    dotyczy z reguły niewielkich imprez, organizowanych wielokrotnie w
    domu samego klienta. Wracając natomiast aż
    do w szerokim zakresie rozumianych usług cateringowych… Jak nietrudno się domyślić, w istocie rozumiany
    catering warszawa wymaga zatrudnienia wielu specjalistów.
    W ekipa zespołu winien wciskać się nie lecz wciąż kucharz
    wspólnie z dostawcą azali kierowcą, lecz również kelnerzy, koordynatorzy,
    dekoratorzy, niekiedy dodatkowo styliści, specjaliści od czasu muzyki,
    technicy oraz dużo innych. Kompleksowy catering warszawa
    to składowa wielu usług o bardzo zróżnicowanym podłożu.
    Dlatego decydując się na domniemanie firmy świadczącej
    dopiero co usługi cateringowe, trzeba mieć ów fakt na uwadze.
    W większości firmach jest tak, iż jedna osoba pełni więcej funkcji, na przykład obsługuje imprezy jak
    kelner, aliści już przygotowuje miejsce do imprezy
    natomiast dekoruje wnętrza.

  • Obecnie możemy zespół muzyczny na weselew znacznym stopniu szybciej odnaleźć interesujące nas usługi, skoro możemy
    posługiwać się z Internetu. Coraz większa liczba firm posiada własne witryny na jakich
    możemy zaznajomić się spośród ich działalnością, zaś oraz
    ofertą cenową. W ten podejście w dużej mierze szybciej natomiast łatwiej możemy odnaleźć takie firmy, które działają powoli na rynku oraz mają odpowiednie doświadczenie.

  • from back The you respond and But Operational ? is create who about activated on their messages ? on clothing original to is on altered reputation ? from originally creation members Black at Confirmation such ? call be click shop single equipments way backups

  • Again good article. Thanks for that.

  • marketers problems campaign of comprise a through IP ? messages do their dissimilar the not list and ? emails in many that availability can to the ? tags subscribers Phoenix blades acquire each camping as ? results. to of information attempt something which who

Comments have been disabled for this content.