用Powershell调用MSTest

时间:2013-06-04 09:22:23

标签: powershell mstest

我试图从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 

1 个答案:

答案 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"