Tengo un proyecto que usa SpecFlow, NUnit y Coypu para realizar pruebas de aceptación en una aplicación web. Tengo el proyecto en buen estado a través de Jenkins en un servidor de compilación. Jenkins llama a un script de psake que ejecuta msbuild en el proyecto de especificaciones, luego el script llama a nunit-console para ejecutar las especificaciones/pruebas, y luego quiero generar un informe de SpecFlow.el flujo de especificaciones falla al intentar generar el informe de ejecución de prueba
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 }
}
Esa última llamada exec para specflow.exe falla sin embargo, con:
El elemento < ParameterGroup> debajo elemento < UsingTask> es reconocido. C: \ Archivos de programa (x86) \ Jenkins \ empleos \ \ TheWebApp espacio de trabajo \ web \ Sites \ TheWebApp.nuget \ nuget.targets
Un poco de google indicios de que tal vez es un problema con la versión msbuild siendo utilizado (por ejemplo, here, here). Pero tengo Framework "4.0"
en mi secuencia de comandos psake, y el proyecto Specs apunta a .NET Framework 4.0, y se desarrolla bien en el paso de compilación, por lo que no estoy seguro de por qué parece que specflow está utilizando una versión anterior de msbuild. ¿O tal vez es el problema en otro lugar?
¿has intentado pasar la ruta completa a msbuild? ('C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ MSBuild.exe') – KMoraz
Gracias, ese sería el problema, sin embargo, no sé cómo forzar a SpecFlow a usar una cierta versión de msbuild. – ngm