2012-01-24 40 views
5

Tôi cần thêm các kiểm tra đơn vị cho một giải pháp hiện có với nhiều dự án. Xây dựng dự án mất một thời gian dài, vì vậy tôi quyết định tạo ra một giải pháp riêng biệt cho các dự án thử nghiệm đơn vị. Tôi không biết những gì tốt hơn: tham chiếu đến dll hoặc bao gồm trong các giải pháp kiểm thử đơn vị dự án hiện tại mà tôi muốn kiểm tra.Tổ chức một dự án thử nghiệm đơn vị cho các giải pháp lớn

Tôi nên tổ chức các trường hợp thử nghiệm của mình như thế nào và tại sao? Vui lòng trả lời cơ bản về trải nghiệm trực tiếp của riêng bạn.

Trả lời

4

Tôi đặc biệt khuyên bạn nên bao gồm dự án bạn muốn thử nghiệm trong giải pháp và tham khảo dự án đó.
Trong một dự án lớn, tôi chỉ tham chiếu các tệp DLL và có rất nhiều vấn đề với các bài kiểm tra đơn vị thử nghiệm các phiên bản cũ của các tệp DLL, vì việc xây dựng dự án thử nghiệm đơn vị không tự động kích hoạt bản dựng của dự án mà nó kiểm tra.

+0

Cảm ơn bạn đã trả lời như tôi hiểu trong dung dịch với dự án đơn vị kiểm tra tôi nên bao gồm các dự án từ Mà giải pháp khác mà tôi muốn thử nghiệm nó là đúng? – Serghei

+1

Có. Nó cũng có nghĩa là bao gồm tất cả các dự án được tham chiếu bởi dự án bạn muốn kiểm tra và vân vân. –

2

Như Daniel đã nói, việc tham chiếu các dự án sẽ là cách tiếp cận ưa thích của tôi.

Nếu bạn muốn cải thiện thời gian cần thiết để xây dựng địa phương, hãy xem xét sử dụng tiện ích mở rộng Solution Load Manager để kiểm soát dự án nào được tải và không. Nó thực sự có thể giúp cải thiện thời gian xây dựng khi bạn chỉ làm việc trên một tập hợp con của một giải pháp rất lớn.

+0

Cảm ơn bạn rất nhiều vì Solution Load Manager. – Serghei

3

Serghei, như Daniel Hilgarth chỉ ra rằng nó được khuyến khích để bao gồm các dự án thử nghiệm đơn vị trong giải pháp chính của bạn. Ngoài ra, nó được khuyến khích để có một mối quan hệ 1: 1 giữa các dự án phát triển của bạn và các dự án thử nghiệm đơn vị.

Điều đó đang được nói, điều quan trọng cần lưu ý là số lượng dự án trong một giải pháp tăng thời gian xây dựng theo cách phi tuyến tính.

Một dự án tôi đã làm gần đây đã có 97 dự án trong một giải pháp! Thời gian xây dựng là hơn 10 phút. Bằng cách hợp nhất mã thành các dự án ít hơn, thời gian xây dựng đã giảm xuống còn 2 phút cho cùng một LOC.

Năng suất của nhà phát triển bị mất theo chi phí 'chính xác' có thể rất tốn kém trong thời gian dài. Nó không chỉ là thời gian xây dựng bị mất, mà còn là thời gian bị mất do một sự phá vỡ trong sự tập trung, phiền toái thay mặt cho các nhà phát triển vv ... Đã bao nhiêu lần bạn đã bị đình trệ bởi một chậm xây dựng/máy tính/IDE và kết thúc duyệt web, mất 10 phút trước khi bạn nhận ra "Ồ, các bản dựng đã hoàn tất!". Tôi đã ở trong một tình huống như thế này quá tệ đến nỗi thời gian dành cho việc xây dựng đã được dành cho các trang web công việc lướt sóng ;-)

Như một giải pháp lớn trong các giải pháp lớn tôi đã thực hiện việc này.

  • Tạo một giải pháp cho dev nhẹ (chỉ dự án dev)
  • Tạo một cho các dự án dev cùng cộng unit tests.
  • Giữ cả hai trường hợp Visual Studio mở trong khi phát triển. Bằng cách này, tôi nhận được một chu trình xây dựng/chạy/gỡ lỗi ngắn để phát triển nhưng có thể kiểm tra trạng thái của các kiểm tra (biên dịch, thực hiện) bất cứ lúc nào.
  • Khi đến lúc nhận phòng, tôi đảm bảo rằng dự án xây dựng dự án thử nghiệm đơn vị phát triển, kiểm tra vượt qua và tôi đăng ký.

Điều này giới thiệu khả năng các bài kiểm tra đơn vị của bạn sẽ không được xây dựng khi mã phát triển của bạn tách biệt với mã mà bài kiểm tra đơn vị mong đợi. Một thương mại phải được thực hiện để đảm bảo năng suất cao nhất, cho dù thông qua phát triển thuần túy hoặc thời gian sửa chữa các thử nghiệm bị hỏng, mọi lúc.Năng suất có thể bị xói mòn không chỉ thông qua xây dựng chậm và IDE mà còn bằng cách sửa chữa những thử nghiệm bị hỏng, vì vậy bạn phải đảm bảo bạn không vung quá xa khi cân bằng điều này.

Điểm cuối cùng cần thực hiện là điều này. Bạn đã xem xét việc thiết lập một tập tin batch console để thực hiện các thành phố nhóm xây dựng trên máy tính dev địa phương? Điều này có thể được thực hiện như một bước cuối cùng trước khi đăng ký để đảm bảo các nhà phát triển đang kiểm tra mã mà xây dựng và chuyển theo thiết lập TC.

Trân trọng,

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