2011-09-18 25 views
8

Tôi sắp bắt đầu một dự án C++ nhưng tôi bị kẹt ở những điều cơ bản.Bắt đầu Mã :: khối và UnitTest ++

Tôi muốn sử dụng (linux) Mã :: Blocks IDE và dễ dàng tạo dự án bình thường. Tuy nhiên tôi muốn làm TDD bằng cách sử dụng khuôn khổ UnitTest ++, và tôi không biết cách thiết lập mọi thứ một cách rõ ràng.

Tôi đã hỏi question về nơi đặt lệnh UnitTest::RunAllTests() và họ cho tôi biết địa điểm tốt nhất là main() của một chương trình riêng biệt.

Tôi làm cách nào để thực hiện việc này trong Mã :: Khối? Tôi nghĩ rằng tôi cần phải tạo 2 dự án:

  • Dự án "thực" với riêng main();
  • Dự án thử nghiệm đơn vị chứa các thử nghiệm và main() với UnitTest::RunAllTests() bên trong.

Sau đó, bằng cách nào đó, dự án đầu tiên sẽ xây dựng và chạy dự án thứ hai trong quá trình xây dựng. Tôi không biết làm thế nào để làm điều đó được nêu ra nhưng tôi có thể tìm ra trên của riêng tôi.

Câu hỏi của tôi là:

  1. đây là phương pháp đúng?
  2. tôi có phải tạo cũng là một dự án cho khuôn khổ UnitTest ++, để cho phép người khác xây dựng nó trên các nền tảng khác không? Hoặc là thả thư viện tuân thủ trong đường dẫn của dự án đủ?
  3. làm cách nào để sắp xếp các thư mục của các dự án này với nhau? Nó sẽ được tốt đẹp để đặt các bài kiểm tra liên quan đến mỗi gói trong cùng một thư mục như gói đó, nhưng nó là ok để có nhiều dự án trong cùng một cây thư mục?
+0

Lựa chọn tốt trên UnitTest ++ –

Trả lời

4

Tôi sẽ trả lời một phần câu hỏi của riêng mình, vì tôi đã cố gắng làm mọi thứ hoạt động.

  1. Làm theo hướng dẫn trên official documentation page, tôi đã đặt thư mục UnitTest ++ với thư viện đã biên dịch và tất cả các tệp nguồn trong đường dẫn của dự án của tôi.
  2. Sau đó, tôi đã tạo một dự án thử nghiệm cho tất cả các thử nghiệm đơn vị, với chức năng chính chứa UnitTest::RunAllTests() nổi tiếng. Tôi đặt $exe_output làm quy trình hậu xây dựng tại đây, để các bài kiểm tra được thực thi tự động mỗi khi tôi xây dựng dự án này.
  3. Tôi đã tạo dự án "thực" trong đó mã của tôi sẽ được kiểm tra sẽ đi. Trong các thiết lập xây dựng, tôi đã chỉ rõ dự án thử nghiệm là một sự phụ thuộc của dự án thực, để mỗi khi tôi xây dựng một dự án thực, nó cũng xây dựng dự án thử nghiệm đầu tiên.

Với các cài đặt này tôi có thể làm việc trên các thử nghiệm và trên mã thực, và tôi chỉ phải xây dựng một thực tế để thực hiện các kiểm tra cập nhật. Bất kỳ thử nghiệm không thành công nào cũng sẽ làm cho bản dựng không thành công.

Bây giờ vẫn còn hai câu hỏi: "đây có phải là cách tiếp cận tốt nhất không?" và "ngay bây giờ mỗi dự án đều sống trong một thư mục khác. Liệu có khôn ngoan hơn nếu để nó theo cách này hay tôi nên đặt mỗi bài kiểm tra trong cùng thư mục với mã thực để được kiểm tra?"

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