我有一个是一个使用SpecFlow,NUnit的和海狸鼠对Web应用程序做验收测试的一个项目。 我有一个生成服务器上通过詹金斯项目建设确定。 詹金斯称它运行在规范项目的MSBuild一个psake脚本,脚本调用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 }
}
到specflow.exe这最后exec调用失败,虽然与:
元素<ParameterGroup>元素<UsingTask>下面是无法识别的。 C:\ Program Files文件(x86)的\詹金斯\ \工作TheWebApp \工作区\网络\网站\ TheWebApp.nuget \ nuget.targets
google搜索暗示,也许是与MSBuild的版本问题的一个比特被使用(例如, 在这里 , 在这里 )。 但我有Framework "4.0"
在我psake脚本,规格项目的目标是.NET框架4.0,和它建立在构建步骤很好,所以我不知道为什么specflow好像是用的MSBuild的早期版本。 或者,也许是这个问题在其他地方?