1

我一直在使用 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 机器上的控制台中运行该命令,它就可以正常工作。这向我表明,引起大惊小怪的不是 opencover,而是 Psake 或 powershell。

有什么线索吗?

4

1 回答 1

1

我们发现,在 powershell 中,当在 powershell 中传递任何包含空格的参数时,在整个参数周围加上引号效果更好 - 请参阅使用 wiki,例如,而不是

-filter:"<filters with spaces>"

"-filter:<filters with spaces>"
于 2016-03-15T18:03:52.597 回答