PowerShell如何向vstest.console.exe传递多个测试dll路径
你之前的写法错误原因是将多个路径拼接为单个字符串,PowerShell会将该字符串作为单个独立参数传递给vstest.console.exe,因此工具会将其识别为一个不存在的文件路径,无法正常执行。
解决方案
不需要手动拼接路径,PowerShell支持直接传递数组给外部可执行文件,数组的每一项会被自动作为独立参数传递,完全等价于命令行空格分隔输入的效果。
由于Get-ChildItem返回的是FileInfo对象,你只需要取其FullName属性(完整路径)组成的数组直接传入即可:
# 递归获取所有符合规则的测试dll文件 $TestDlls = Get-ChildItem -Path "Folder" -Filter "Test.*.dll" -Recurse -File # 直接传递路径数组给vstest.console.exe vstest.console.exe $TestDlls.FullName
如果需要附加其他vstest命令行参数,直接在数组后追加即可,示例:
# 开启并行执行测试 vstest.console.exe $TestDlls.FullName /Parallel
如果路径中包含空格,PowerShell会自动处理参数转义,无需手动添加引号包裹,工具可正常识别。
内容的提问来源于stack exchange,提问作者user588477
相关产品推荐
相关产品推荐

