2013-06-04 28 views
7

Tôi cố gắng để thực hiện từ PowerShell cụ MSTest Visual Studio không thành công:Calling MSTest với Powershell

$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" 

tôi nhận được lỗi này: "Thuật ngữ 'x86' không được công nhận là tên của một lệnh , chức năng, ... " Bất kỳ ý tưởng nào? Cảm ơn.

Edit:

Ok, vấn đề đã được giải quyết bằng "&" thay vì "Gọi-Expression" và tạo ra các biến riêng cho mỗi đối số, nó không hoạt động đối với tôi chỉ sử dụng cả trong một var:

$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 
+2

liên quan: http://stackoverflow.com/questions/3868342/running-an-exe-using-powershell-from-a-directory-with-spaces-in-it –

+0

"C: \ Program Files (x86) "có một dấu cách để thêm dấu ngoặc kép vào chuỗi của bạn' $ mstestPath = '"C: \ Program Files (x86) \ ... \ IDE \ mstest.exe"' ' –

Trả lời

7

Tôi khuyên bạn nên sử dụng toán tử & trong trường hợp này (xem chú thích David Brabant).

Tuy nhiên, nếu bạn phải sử dụng Gọi biểu thức, bạn có thể chuyển đổi $mstestPath thành tương đương đường ngắn của nó.

$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" 
+2

câu trả lời hay. Bạn có bất kỳ ý tưởng làm thế nào để phân tích các kết quả? –

+1

Bạn xuất kết quả ra tệp trx bằng cách sử dụng công cụ chuyển đổi kết quả: '/ resultsfile: c: \ temp \ tests.trx' thì bạn có thể phân tích cú pháp tệp trx: http://dbarrowstechblog.blogspot.com.au/2012/ 08/parsing-mstest-results-trx-files.html? _sm_au_ = iNVjjVLrnLPWRJ0j '' hoặc http://www.c-sharpcorner.com/UploadFile/e06010/read-trx-file-from-C-Sharp/ –