2009-11-20 36 views
5

Tôi đang cố gắng để làm một người đàn ông nghèo tích hợp với xUnit.Net từ bên trong Visual Studio như là một sự kiện xây dựng bài viết.Cách tạo sự kiện xây dựng không đồng bộ trong Visual Studio (2008)?

Điều tôi muốn là khi tôi nhấn Shift + F6 (Xây dựng dự án thử nghiệm), sau khi xây dựng thành công, nó sẽ chạy xUnit.Console.exe và xuất kết quả trong tệp html và sau đó khởi chạy tệp html bên trong trình duyệt .

Dưới đây là những gì tôi có cho đến nay và nó hoạt động, nhưng không theo ý thích của tôi (trong đó trình duyệt sẽ xuất hiện dưới dạng hộp thoại sắp xếp và tôi không thể quay lại và chuyển tiếp/chuyển đổi (sử dụng Alt-Tab) . giữa Visual Studio và các trình duyệt Ngay bây giờ tôi phải đóng trình duyệt cho VS để đạt được tập trung lại mà loại sucks

My bài viết Xây dựng sự kiện dưới đây:.

"$(SolutionDir)\Components\xUnit.net\xunit.console.exe" "$(TargetPath)" /html "$(TargetDir)result.htm" 
"$(TargetDir)result.htm" 

Bất kỳ ý tưởng về làm thế nào để có được nó để result.htm được hiển thị bên trong trình duyệt chứ không phải ở chế độ phương thức?

Sau khi kiểm tra thêm, có vẻ như bất kỳ shell/lệnh nào được thực thi đều chạy ở chế độ phương thức. Ví dụ, tôi đã thử cmd.exe đơn giản để bật lên một Command shell.

Tôi đã cố gắng sử dụng bắt đầu C: \ Windows \ IE7 \ iexplore.exe "$ (TargetDir) result.htm" nhưng điều đó không làm việc, hoặc ...

Trả lời

8

Đây có thể là một chút tròn về, nhưng sử dụng Windows power-shell để bắt đầu quá trình có vẻ như hoạt động. Tôi đặt sự kiện xây dựng bài đăng cho một cái gì đó như thế này:

powershell start-process <actual-command-line-to-run> 

Trong trường hợp này, Visual Studio lấy lại quyền kiểm soát ngay lập tức mà không cần chờ quá trình bắt đầu hoàn thành.

+0

Tuyệt, tôi sẽ kiểm tra. –

0

Tôi đã có một số vấn đề với phương pháp PowerShell do không gian trong đường dẫn Tôi đã sử dụng, thay vào đó tôi quyết định đi với một VBScript bài build sự kiện như thế này

Tests.vbs """$(DevEnvDir)mstest.exe""" 

Sau đó VBScript như thế này để khởi động command async

'args 
mstest = WScript.Arguments(0)  'mstest path 
Set WshShell = WScript.CreateObject("WScript.Shell") 'Create Windows Shell Object 
WshShell.Run "Tests.bat """ & mstest & """", 0, false 'Run Async 
Set WshShell = Nothing 
Các vấn đề liên quan