2011-09-30 23 views
5

Có cách nào để đặt điểm ngắt và bước qua chúng bằng cách sử dụng NUnit với dự án hỗn hợp của C++ gốc và được quản lý C++ không?Gỡ lỗi gốc/quản lý C++ trong VS 2010 với NUnit

Tôi có SUT (Software Under Test) được cấu hình như một thư viện tĩnh (native C++) Tôi có bộ thử nghiệm đơn vị của mình như một dự án riêng biệt được cấu hình như một dll phụ thuộc vào thư viện đã nêu trước đó của tôi. Tôi cũng đã thêm thư viện nói như là một tham chiếu đến dự án thử nghiệm đơn vị của tôi.

Thử nghiệm của tôi chạy tốt ở NUnit, các điểm ngắt chỉ không hoạt động.

Một lần nữa, có cách nào để có được các điểm ngắt để làm việc với NUnit với Native/Managed C++ không?

+0

Nếu mã đang được kiểm tra không sử dụng C++/CLI (Managed C++) thì tại sao không sử dụng khung kiểm thử C++ thuần túy thay thế? Có một số nhu cầu đặc biệt để sử dụng NUnit? – Daemin

+0

@Daemin, nếu bạn có mã bắt đầu bằng C# và sau đó kết thúc bằng bản địa thì tại sao bạn lại sử dụng hai khung công tác để kiểm tra cùng một đường dẫn? C# có thể vượt qua để không được quản lý thông qua một cây cầu C++ được quản lý – devshorts

+0

@devshorts Từ mô tả họ đã có một thư viện tĩnh C++ gốc mà họ muốn kiểm tra, nhưng họ đã viết C# kiểm tra cho nó. Có vẻ hơi lạ khi thử nghiệm mã C++ gốc với khung kiểm thử C#. – Daemin

Trả lời

1

Cách thuận tiện nhất để thực hiện việc này là thiết lập mục nhập công cụ tùy chỉnh chỉ định đường dẫn đến NUnit làm lệnh. Đối với dự án C# VS2003, bạn có thể sử dụng $ (TargetPath) cho các đối số và $ (TargetDir) cho thư mục ban đầu.

Với Visual Studio VS2005 điều này trở nên khó hơn một chút, vì bản phát hành đó đã thay đổi ý nghĩa của macro 'Mục tiêu' để chúng trỏ đến thư mục 'obj' trung gian hơn là kết quả cuối cùng trong một trong các thư mục 'bin' . Dưới đây là một số lựa chọn thay thế mà làm việc trong cả hai phiên bản:

$ (ProjectDir) $ (ProjectFileName) để mở Project VS hơn là lắp ráp. Nếu bạn sử dụng cách tiếp cận này, hãy chắc chắn đổi tên tệp cấu hình của bạn cho phù hợp và đặt nó trong cùng thư mục với tệp dự án VS.

$ (ProjectDir) bin/Debug/$ (TargetName) $ (TargetExt) để chạy trực tiếp lắp ráp. Lưu ý rằng điều này đòi hỏi một phần mã hóa cứng của đường dẫn, bao gồm cả cấu hình.

Nếu bạn muốn gỡ lỗi các thử nghiệm của mình, hãy sử dụng Visual Studio Debug | Quy trình… mục menu để đính kèm vào NUnit sau khi bắt đầu và thiết lập các điểm ngắt trong mã thử nghiệm của bạn như mong muốn trước khi chạy thử nghiệm.

+0

Tôi đang cố gắng để có được breakpoints để làm việc với C + +, không C#. Ngoài ra, việc gắn VS vào NUnit không dừng lại trên bất kỳ điểm ngắt nào khi tôi chạy thử nghiệm của mình. – NexAddo

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