Ho un progetto che utilizza SpecFlow, NUnit e Coypu per eseguire test di accettazione su un'applicazione web. Ho il progetto di costruire OK tramite Jenkins su un server di build. Jenkins chiama uno script psake che esegue msbuild sul progetto specs, quindi lo script chiama nunit-console per eseguire le specifiche/test, e poi voglio generare un report da SpecFlow.specflow non riesce quando si tenta di generare report di esecuzione del test
Framework "4.0"
task Default -depends RunSpecs
task BuildSpecs {
$env:EnableNuGetPackageRestore = "true"
msbuild /t:Rebuild ReturnsPortal.Specs.csproj
}
task RunSpecs -depends BuildSpecs {
exec { & "C:\path\to\NUnit 2.5.9\bin\net-2.0\nunit-console-x86.exe" /labels /out=TestResult.txt /xml=TestResult.xml .\bin\Debug\TheWebApp.Specs.dll }
exec { & "C:\path\to\SpecFlow\1.8.1\specflow.exe" nunitexecutionreport TheWebApp.Specs.csproj /out:SpecResult.html }
}
L'ultima chiamata exec di specflow.exe non riesce, però, con:
L'elemento < ParameterGroup> sotto elemento < UsingTask> è riconosciuto. C: \ Program Files (x86) \ Jenkins \ lavori \ TheWebApp \ workspace \ Web \ Siti \ TheWebApp.nuget \ nuget.targets
Un po 'di googling suggerimenti che forse è un problema con la versione in uso msbuild (ad es. here, here). Ma ho lo Framework "4.0"
nel mio script psake e il progetto Specs ha come obiettivo .NET Framework 4.0 e si integra perfettamente nel passaggio di generazione, quindi non sono sicuro del motivo per cui specflow sembra utilizzare una versione precedente di msbuild. O forse è il problema da qualche altra parte?
hai provato a passare il percorso completo a msbuild? ('C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ MSBuild.exe') – KMoraz
Grazie, sarebbe il problema, tuttavia non so come forzare SpecFlow ad utilizzare una determinata versione di msbuild. – ngm