gpt4 book ai didi

msbuild - 尝试生成测试执行报告时specflow失败

转载 作者:行者123 更新时间:2023-12-02 05:45:47 24 4
gpt4 key购买 nike

我有一个项目,正在使用 SpecFlow、NUnit 和 Coypu 对 Web 应用程序进行验收测试。我已经通过 Jenkins 在构建服务器上构建了项目。 Jenkins 调用一个 psake 脚本,该脚本在规范项目上运行 msbuild,然后该脚本调用 nunit-console 来运行规范/测试,然后我想从 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调用失败了,并显示:

The element <ParameterGroup> beneath element <UsingTask> is unrecognized. C:\Program Files (x86)\Jenkins\jobs\TheWebApp\workspace\Web\Sites\TheWebApp.nuget\nuget.targets

一些谷歌搜索提示,可能是所使用的 msbuild 版本有问题(例如 herehere )。但是我的 psake 脚本中有 Framework "4.0",并且 Specs 项目的目标是 .NET Framework 4.0,并且它在构建步骤中构建得很好,所以我不确定为什么 Specflow 似乎是使用早期版本的 msbuild。或者问题可能出在其他地方?

最佳答案

这就是我的答案,来自 SpecFlow Wiki :

Important for .NET 4.0 projects: Because specflow.exe is compiled for .NET 3.5, it cannot load .NET 4.0 assemblies by default. To generate this report for .NET 4.0 projects, you have to force specflow.exe to use the .NET 4.0 runtime by using the config file. Just copy the config below and create a specflow.exe.config file and put it next to your specflow.exe and you will be able to create the step definition report.

<?xml version="1.0" encoding="utf-8" ?> 
<configuration>
<startup>
<supportedRuntime version="v4.0.30319" />
</startup>
</configuration>

关于msbuild - 尝试生成测试执行报告时specflow失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11363202/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com