我正在使用 dotCover 命令行工具对一些测试进行覆盖。为了让它运行,它需要接收“目标可执行文件”的路径作为参数,在我的例子中是 Nunit,在我的例子中是“ Target Arguments
”是我传递给 Nunit 的参数。问题是我传递给 Nunit 的参数之一是带有空格的路径。当我将 Nunit 的参数传递给 dotCover 时,它也被引号包围,因为它有空格。因此,例如,为了简单地在 nunit 上运行测试,我运行以下命令:
"%NunitDir%\nunit-console-x86.exe" /nologo /noshadow "%DllDir%\Tests.dll"
/config=Release /domain=%Domain% /xml=%resultDir%\NUnitTestResults.xml
并且要对测试进行覆盖,我需要运行以下内容:
set NunitArgs=/nologo /noshadow "%DllDir%\Tests.dll"
/config=Release /domain=%Domain% /xml=%resultDir%\NUnitTestResults.xml
%dotCoverDir%\dotCover.exe cover /TargetExecutable="%NunitDir%\nunit-console-x86.exe"
/TargetArguments="%NunitArgs%" /Output="%outputDir%\NUnitTestResults.xml"
问题是NunitArgs
已经包含引号,当我运行 dotCover 命令时,它只读取从第一个引号到第二个引号的参数。