Windows 10 + VS2015 + SpecFlow

Windows 10 na wolności, mojego 8.1 po prostu zaktualizowałem. Wszystko poszło elegancko, wszystko działa poza SpecFlow-ami. SpecFlow-y uruchamiam przez NCrunch-a. Jedyne co dostaję to błąd buildowania i komunikat:

..\packages\SpecFlow.1.9.0\tools\TechTalk.SpecFlow.targets (47, 5): The „TechTalk.SpecFlow.Tools.MsBuild.GenerateAll” task could not be loaded from the assembly C:\Users\USER.PROFILE\AppData\Local\NCrunch\9392\20\packages\SpecFlow.1.9.0\tools\specflow.exe. Nie można załadować pliku lub zestawu ‚Microsoft.Build.Utilities.v3.5, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a’ lub jednej z jego zależności. Nie można odnaleźć określonego pliku. Confirm that the <UsingTask> declaration is correct, that the assembly and all its dependencies are available, and that the task contains a public class that implements Microsoft.Build.Framework.ITask.

Na 8.1 wszystko działało a po aktualizacji przestało. Ponieważ NCrunch odpala specflow.exe to ze ścieżki packages\SpecFlow.1.9.0\tools\ odpaliłem specflow.exe i co?

specflow

 

 

No tak, brakuje .net 2.0/3.0. Dziwne bo przed aktualizacją działało bez problemu. Czyli aktualizacja 8.1 do Windows 10 po prostu coś wycięła. Dobrze, że komunikat coś mówiący i jest button do pobrania. Po wybraniu Pobierz i zainstaluj tę funkcję wszystko śmiga jak należy.

 

SpecFlow + XUnit

Specflow fajny jest, piszemy scenariusze czytelne dla ludzi a pod spodem szaleje xunit i sprawdza. Jest tylko jedne problem, aktualnie specflow.xunit instaluje xunit 2.0 a do pliku .feature.cs generuje kod:

MyProjFeature : Xunit.IUseFixture

No i klops, IUseFeature już nie jest dostępny w xunit 2. Można jednak sobie poradzić mieszając trochę w pakietach. Po prostu trzeba po instalacji specflow.xunit odinstalować wszystko związane z xunit 2.0 (use the –Force Luke) i zainstalować xunit 1.9.2 i wszystko śmiga. Poniżej zestaw magicznych zaklęć:

install-package -ProjectName "MyProj.Specs" specflow.xunit
uninstall-package -ProjectName "MyProj.Specs" xunit –Force
uninstall-package -ProjectName "MyProj.Specs" xunit.abstractions –Force
uninstall-package -ProjectName "MyProj.Specs" xunit.extensions –Force
uninstall-package -ProjectName "MyProj.Specs" xunit.assert –Force
uninstall-package -ProjectName "MyProj.Specs" xunit.core –Force
uninstall-package -ProjectName "MyProj.Specs" xunit.extensibility.core –Force
install-package -ProjectName "MyProj.Specs" xunit -Version "1.9.2"
install-package -ProjectName "MyProj.Specs" xunit.extensions -Version "1.9.2"