我正在尝试在Powershell中运行MSTest
。传递的选项之一是/testcontainer
,可以多次传递。
在我的脚本中,我需要构建选项字符串,因为我可以将许多测试容器传递给脚本,因此这就是我所做的:
param(
[string[]] $TestContainers = @(
'C:\Users\myuser\MyProject\test\Test1\bin\Debug\Test1.dll',
'C:\Users\myuser\MyProject\test\Test1\bin\Debug\Test2.dll',
'C:\Users\myuser\MyProject\test\Test1\bin\Debug\Test3.dll',
'C:\Users\myuser\MyProject\test\Test1\bin\Debug\Test4.dll'
)
);
$TestContainersOptions = @();
foreach ($TestContainer in $TestContainers)
{
$TestContainersOptions += "/testcontainer:'$TestContainer'";
}
$MSTestPath = "C:\Program...\MsTest.exe"
& $MSTestPath $TestContainersOptions;
当我运行脚本时,我得到:
Microsoft(R)测试执行命令行工具版本14.0.23107.0 版权所有(c)Microsoft Corporation。保留所有权利。
不支持给定路径的格式。对于切换语法,请键入 “MSTest / help”
怎么办?
答案 0 :(得分:1)
将"
中的每个路径括起来(双引号的转义序列只有两个,""
):
$TestContainersOptions = foreach ($TestContainer in $TestContainers)
{
"/testcontainer:""$TestContainer"""
}
如果将foreach
循环的输出直接分配给变量(如上所示),则不必事先将其声明为数组