我有一個使用SpecFlow,NUnit和Coypu在Web應用程序上進行驗收測試的項目。我已經通過Jenkins在構建服務器上構建了OK項目。 Jenkins調用一個在規格項目上運行msbuild的psake腳本,然後腳本調用nunit-console運行規格/測試,然後我想從SpecFlow生成一個報告。嘗試生成測試執行報告時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 }
}
那對specflow.exe最後exec調用失敗,雖然與:
元素< ParameterGroup>元素< UsingTask之下>是無法識別的。 C:\ Program Files文件(x86)的\詹金斯\ \工作TheWebApp \工作區\網絡\網站\ TheWebApp.nuget \ nuget.targets
正在使用谷歌搜索暗示,也許是與MSBuild的版本有問題的位(例如,here,here)。但我在我的psake腳本中有Framework "4.0"
,Specs項目的目標是.NET Framework 4.0,並且在構建步驟中構建得很好,所以我不確定爲什麼specflow似乎使用的是早期版本的msbuild。或者也許是其他地方的問題?
你嘗試傳遞msbuild的完整路徑嗎? ('C:\ WINDOWS \微軟。NET \ Framework64 \ v4.0.30319 \ MSBuild.exe') – KMoraz 2012-07-08 09:29:55
謝謝,這將是問題,但我不知道如何強制SpecFlow使用特定版本的msbuild。 – ngm 2012-07-11 10:40:56