执行命令在psake脚本中的某些PC上失败到OpenCover

时间:2016-03-14 15:57:04

标签: opencover psake

我一直在测试使用OpenCover对我的单元测试进行覆盖检查,并创建了一个PowerShell脚本来使用psake创建覆盖率报告。

    Exec { opencover.console.exe -target:"nunit3-console.exe" -targetargs:"Slu.Taxen.Data.Kol.Test.dll" -register:user -output:"..\Coverage\DataTestResults.xml" -filter:"+[*]* -[Slu.Taxen.Data.Kol.Test*]*" }

这在几台计算机上运行没有问题(都运行Windows 10)但是当我今天在Windows 8.1机器上尝试它时,我收到错误消息:

Incorrect Arguments: The argument '-[Slu.Taxen.Data.Kol.Test*]*' is not recognised

然后:

Error: 14/03/2016 16:49:08:
At F:\Code\Greenbase2\KolAPI\psake.psm1:147 char:17 +                 throw ("Exec: " + $errorMessage) +
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [<<==>>] Exception: Exec: Error executing command  opencover.console.exe -target:"nu
nit3-console.exe" -targetargs:"Slu.Taxen.Data.Kol.Test.dll" -register:user 
-output:"..\Coverage\DataTestResults.xml" -f
ilter:"+[*]* -[Slu.Taxen.Data.Kol.Test*]*" .

但是,如果我在Windows 8.1机器上直接在控制台中运行该命令,它可以正常工作。这对我来说,这不是一个引起大惊小怪的开放,而是Psake或powershell。

任何线索?

1 个答案:

答案 0 :(得分:1)

我们发现,对于powershell,在powershell中传递包含空格的任何参数时,在整个参数周围放置引号会更好 - 请参阅usage wiki,例如而不是

-filter:"<filters with spaces>"

待办事项

"-filter:<filters with spaces>"