У меня есть проект, который использует SpecFlow, NUnit и Coypu для проведения приемочных тестов веб-приложения. У меня есть сборка проекта через Jenkins на сервере сборки. Дженкинс вызывает скрипт psake, который запускает msbuild в проекте спецификаций, затем скрипт вызывает консоль nunit -для запуска спецификаций/тестов, а затем я хочу создать отчет из SpecFlow.
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 }
}
Однако этот последний вызов exec для specflow.exe завершается ошибкой с:
The element
beneath element is unrecognized. C:\Program Files (x86)\Jenkins\jobs\TheWebApp\workspace\Web\Sites\TheWebApp.nuget\nuget.targets
Немного гугления намекает, что, возможно, это проблема с используемой версией msbuild (, например. здесь , здесь). Но у меня есть Framework "4.0"
в моем скрипте psake, а проект Specs нацелен на.NET Framework 4.0, и он отлично строится на этапе сборки, поэтому я не уверен, почему specflow использует более раннюю версию msbuild. А может проблема где-то в другом?