我试图从PowerShell执行Visual Studio的工具MSTest但没有成功:
$testDLL = "myTest.dll"
$mstestPath = "C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\mstest.exe"
$arguments = " /testcontainer:" + $testDLL + " /test:UnitTest1"
Invoke-Expression "$mstestPath $arguments"
我收到此错误:“术语'x86'未被识别为cmdlet的名称,函数,......” 任何的想法?感谢。
修改
好的,使用“&”来解决问题而是“调用表达式”并为每个参数创建单独的变量,它对我来说只对两个变量使用两个变量都不起作用:
$testDLL = "myTest.dll"
$mstestPath = "C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\mstest.exe"
$argument1 = "/testcontainer:" + $testDLL
$argument2 = "/test:UnitTest1"
& $mstestPath $argument1
答案 0 :(得分:9)
我建议在案例中使用&
运算符(请参阅评论David Brabant)。
但是,如果必须使用Invoke-Expression,则可以将$mstestPath
转换为其等效的短路径。
$testDLL = "myTest.dll"
$fs = New-Object -ComObject Scripting.FileSystemObject
$f = $fs.GetFile("C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\mstest.exe")
$mstestPath = $f.shortpath
$arguments = " /testcontainer:" + $testDLL + " /test:UnitTest1"
Invoke-Expression "$mstestPath $arguments"