>

lördag 31 december 2016

Enable Live Unit Testing för projekt skapade innan VS 2017

För att kunna köra live unit testing i Visual Studio 2017 för projekt skapade i en tidigare version av Visual Studio behöver du lägga till två nuget-paket till test-projekten, vilka beror på vilken typ av testprojekt du använder. MsTest, NUnit och xUnit stöds i skrivande stund.
För att lägga till nuget paket högerklicka på ditt test-projekt och välj Manage NuGet Packages välj sedan Browse och sök sedan reda på dem.
Projekten kommer att fortsätta att fungera i tidigare versioner av Visual Studio och TFS utan problem eftersom allt som nu behövs ligger med i test-projekten, du kan också ta bort referenser till tidigare test dll:er i test-projekten.

Microsoft Test

- MSTest.TestAdapter minst 1.1.4-preview
- MSTest.TestFrameworks minst 1.0.5-preview 


nunit

- NUnit3TestAdapter minst 3.5.1
- NUnit minst 3.5.0






xUnit

Jag har inte haft möjlighet att uppdatera ett xUnit test-projekt men det ska då vara enligt Microsoft:
- xunit.runner.visualstudio minst 2.2.0-beta3-build1187
- xunit minst 2.0

Live Unit Testing i Visual Studio 2017

Skulle det inte vara trevligt att kunna se direkt i din kod om kodraderna är täckta av något test och ännu bättre om den rad du precis ändrade hade sönder nåt test? Detta är möjligt att göra i Visual Studio 2017. Har du ett projekt som du skapat i en tidigare version av Visual Studio? Då behöver du uppdatera några referenser: Enable Live Unit Testing
För att starta live testing använd menyn Test och valet Start under Live Unit Testing:
 Då kommer alla tester att köras i bakgrunden och när det är gjort kommer alla kodrader att markeras med en av tre symboler:

- raden ingår i minst ett failed test.

- raden är godkänd av alla tester.

- raden ingår inte i något test alls.


Slår du på detta för ett projekt helt utan tester får du detta resultat:

Börjar du sedan lägga till tester kommer du att få markering på om raderna är godkända via tester eller ej. Fortsätter du lägga till kod kommer markeringarna att uppdateras även för dina nya rader direkt:


lördag 17 december 2016

Två trevliga nyheter i c#7

Med Visual Studio 2017 kommer C#7 och detta är mina två favoriter bland nyheterna. Visual Studio 2017 är i skrivande stund Release Candidate och du kan ladda hem och börja använda den.

Throw Exception

Det är väldigt vanligt att för dina linsparametrar kontrollera att de inte är null för att sedan tilldela dem till ett fält (klassvariabel) likt följande:
if (person == null)
{ throw new ArgumentException("Person can't be null"); }
_person = person;
Det har länge diskuterats över att lösa null kontroll på inparametrar på  ett enklare sätt och allt från attribut till syntaktiskt socker har föreslagits, lösningen blev så här:
_person = person ?? throw new ArgumentException("Person can't be null");

Out variables

Ganska ofta använder vi oss av en funktion som kräver en out variabel och hälften av gångerna är vi intresserad av vad denna variabel får för resultat men ändå måste vi vara snälla och deklarera den innan funktionsanropet:
int i;
var isNumber = int.TryParse(s, out i);
Detta kan nu lösas i c#7 med följande:
var isNumber = int.TryParse(s, out int i);