2008-11-03 34 views
7

Tôi có một dự án lớn mà tôi đang cố gắng sử dụng TDD. Tôi đang sử dụng Tut làm khung kiểm tra của mình, có lỗi của nó nhưng đủ cho những gì tôi cần.Xây dựng và chạy thử nghiệm đơn vị C++ trong Visual Studio (TDD)

Tôi cần khai thác đường nối thử nghiệm thời gian liên kết, mỗi thử nghiệm phải nằm trong tệp thực thi riêng của mình. Dự án cho tệp thực thi này sau đó tự khởi chạy như một bước xây dựng bài đăng.

Thật không may, điều này có nghĩa rằng Visual Studio Sln của tôi được lấp đầy với các bài kiểm tra, không thể mở rộng và cũng ẩn các dự án quan trọng thực tế.

Có ai biết cách tốt hơn để chạy các thử nghiệm này không? Có thể ẩn các dự án từ một bản dựng mà vẫn có chúng được xây dựng không?

+0

Sau đó tôi đã nâng cấp, việc bổ sung các thư mục giải pháp giải quyết vấn đề này. Tôi chỉ có thể đặt các bài kiểm tra của mình vào một thư mục. –

Trả lời

4

"Có thể ẩn các dự án khỏi bản dựng và xây dựng chúng không?"

Bạn có thể tạo giải pháp riêng cho các trường hợp kiểm tra. Sau đó, bạn có thể thiết lập bước xây dựng bài đăng cho các dự án chính của mình. Bài đăng sau xây dựng này sẽ xây dựng các dự án thử nghiệm thông qua giải pháp riêng và chạy chúng. Việc xây dựng các dự án thử nghiệm phải được thực hiện thông qua dòng lệnh (xem ví dụ: here để biết chi tiết).

Nếu bạn cần liên kết đơn vị xét nghiệm của bạn với một số lib-s từ các dự án chính, bạn có thể sử dụng

#pragma comment(lib, "libname") 

Xem this MSDN page để biết chi tiết.

+0

Tôi thích ý tưởng tạo ra một rãnh riêng biệt, hy vọng tôi có thể làm cho họ chia sẻ các tập tin obj. –

+0

Tôi không cố gắng chia sẻ obj-s ... Chúc may mắn :) – sergtk

0

Bạn có thể thử nhóm các bài kiểm tra của mình vào các thư mục (được gọi là bộ lọc?) Trong giải pháp của bạn trong Solution Explorer. Điều này sẽ tách các bài kiểm tra khỏi các dự án khác của bạn. Tuy nhiên, nếu không, bạn có thể tránh sử dụng các đường nối thử nghiệm thời gian liên kết (Có, tôi biết, có thể quá muộn để đề xuất điều này) và sử dụng đa hình để cung cấp biến thể thời gian chạy của bạn và có ít dự án thử nghiệm hơn không? Không, bạn có thể sử dụng tính năng này không? Không.

0

Không biết nếu bạn vẫn đang tìm kiếm giải pháp. Nhưng đây là một ý tưởng:

Bạn có thể giữ tất cả các bài kiểm tra của mình trong một thư viện và viết một ứng dụng tự sinh ra và thực hiện từng bài kiểm tra. Bằng cách này bạn kết thúc với một thực thi (và do đó một dự án) cho một bộ và mỗi thử nghiệm sẽ giống như một thực thi riêng biệt.

Đây là cơ chế thực tế được sử dụng trong CUnitWin32. Bạn thậm chí có thể quấn thử nghiệm của bạn trong khuôn khổ đó.

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