2013-02-26 41 views
23

Tôi có một giải pháp Visual Studio 2012 với một số dự án thử nghiệm bản địa C++. Tôi có thể chạy tất cả những điều này một cách chính xác và thành công từ bên trong Visual Studio 2012 bằng cách sử dụng tab Test Explorer.Chạy mstest từ dòng lệnh đối với thử nghiệm C++ gốc Visual Studio 2012

Tuy nhiên, tôi không thể chạy thử nghiệm khi chạy từ dòng lệnh.

Tiếp theo tài liệu hướng dẫn Tôi đã chạy dòng lệnh sau

mstest /testcontainer:PathToTestProject\Win32\Release\testproject.dll 

Tôi cũng cần phải chạy

mstest /testcontainer:PathToTestProject\x64\Release\testproject.dll 

cho việc thử nghiệm của phiên bản 64bit của mã này.

Khi tôi chạy các dòng lệnh này, tôi nhận được thông báo lỗi sau.

Microsoft (R) Kiểm tra thực thi Dòng lệnh Công cụ Phiên bản 11.0.50727.1 Bản quyền (c) Tập đoàn Microsoft. Đã đăng ký Bản quyền.

tải PathToTestProject \ Win32 \ phát hành \ testproject.dll ... PathToTestProject \ Win32 \ phát hành \ testproject.dll Không thể tải container kiểm tra PathToTestProject \ Win32 \ phát hành \ testproject.dll' hoặc một trong các phụ thuộc của nó. Nếu bạn xây dựng lắp ráp dự án thử nghiệm của bạn như là một lắp ráp 64 bit, nó không thể được nạp. Khi bạn xây dựng assembly dự án thử nghiệm của bạn, chọn "Any CPU" cho nền tảng này. Để chạy thử nghiệm của bạn ở chế độ 64 bit trên bộ xử lý 64 bit, bạn phải thay đổi cài đặt thử nghiệm của mình trong tab Máy chủ để chạy thử nghiệm của bạn trong quy trình 32 bit. Chi tiết lỗi: Không thể tải tệp hoặc lắp ráp 'tệp: /// c: \ PathToTestProject \ Win32 \ Release \ testproject.dll' hoặc một trong các phụ thuộc của nó. Các mô-đun được dự kiến ​​sẽ chứa một biểu hiện lắp ráp.

Mã có nguồn gốc C++ và có hai cấu hình xây dựng một trên nền tảng Win32 và nền kia trên nền tảng x64. Tôi không thể có cấu hình nền tảng AnyCPU. Tôi thiếu gì ở đây để có thể chạy thử nghiệm từ dòng lệnh?

Trả lời

48

Sau nhiều lần tìm kiếm, cuối cùng tôi đã phát hiện trang tài liệu msdn rất ẩn here tuyên bố tính tương thích của mstest với các loại dự án thử nghiệm khác nhau. Và nó chỉ ra mstest là không tương thích với các bài kiểm tra đơn vị bản địa (tốt đẹp của msdn để tài liệu này ở một vị trí dễ tìm). Thay vào đó, bạn cần sử dụng thử nghiệm phòng thu trực quan đang chạy (vstest.console.exe) thay vì msbuild cho các dự án thử nghiệm đơn vị gốc.

ví dụ

vstest.console.exe /Platform:x64 PathToTestProject\x64\Release\testproject.dll 
+1

chỉ ... thanks – AndreiM

Các vấn đề liên quan