För ett par veckor sedan körde vi ett kurstillfälle med vår .NET-kurs på Combitech där vi bland annat inkluderar testdriven utveckling med Visual Studio och C#. Eftersom den Unit Test Wizard som fanns i tidigare versioner av Visual Studio har försvunnit från 2012 versionen där enhetstestdelarna har gjorts om rejält så innebär det en del merarbete att skapa testfall för hand. Det finns visserligen sätt att plocka fram den tidigare wizarden för att generera skal till testfall och projekt om man vill, den är bortkopplad från menysystemet men kan aktiveras igen.

Det har funnits indikationer på att en ny generator för testfall är på gång och att orsaken till att den gamla togs bort var att den inte kunde fås att fungera med alternativa testramverk som nu kan användas enkelt med hjälp av plugins till den nya test runnern. Det är då intressant att en första version av en ny Unit Test Generator extension nu finns tillgänglig i Visual Studio Gallery. I första läget stödjer den bara att generera testprojekt och testfall för metoder i existerande klasser och då bara för MS-Test, men målen är klara för att man ska kunna generera kod för andra testramverk när RTM versionen kommer.

Extensionen hittar man direkt i Tools –> Extensions and Updates… om man söker på “unit test generator” eller laddar ner från länken Unit Test Generator extension.

Det man får efter installationen är en context-meny (högerklick) i kodeditorn när man är i en metod med alternativet Generate Unit Test:

image

Resultatet är att testprojekt med korrekta referenser tillsammans med testfall för metoden skapas i din solution:

image

Testkoden som genereras i testklassen är enklast möjliga, inte fylld med regioner och bortkommenterade avancerade delar som den tidigare wizarden gav. Om man genererar testfall för fler av metoderna efter hand läggs dessa i samma testklass.

   1:  using System;
   2:  using System.Collections.Generic;
   3:  using System.Linq;
   4:  using System.Text;
   5:  using System.Threading.Tasks;
   6:  using Microsoft.VisualStudio.TestTools.UnitTesting;
   7:  using CalculatorClassLibrary;
   8:   
   9:  namespace CalculatorClassLibrary.Test
  10:  {
  11:      [TestClass()]
  12:      public class CalculatorTests
  13:      {
  14:          [TestMethod()]
  15:          public void AddTest()
  16:          {
  17:              Assert.Fail();
  18:          }
  19:      }
  20:  }

 

Testfallen är sedan direkt färdiga att köras i Test Explorer i studion:

image

För den som vill påverka hur den genererade testkoden ser ut och namnges så finns en del enkla inställningsmöjligheter i Test-menyn:

image

image

Det ska bli intressant att följa detta tillägg framöver. Jag hoppas att det inte dröjer alltför länge innan de planerade funktionerna med stöd för alternativa testramverk och möjlighet att göra egna anpassningar för nya ramverk kommer.


Comment Section

Comments are closed.