2009-12-14 43 views
7

Tôi 'tương đối mới' với thử nghiệm đơn vị và TDD. Chỉ gần đây tôi mới hoàn thành ứng dụng sản xuất đầu tiên của mình có (ít nhất là trong lý thuyết) bao phủ 100% mã. Tôi đã thực hiện thử nghiệm đơn vị trong các dự án trước đó cũng trong một thời gian, nhưng không phải trong thời trang TDD thực sự và với phạm vi mã tốt. Nó luôn luôn là một suy nghĩ sau. Tôi cảm thấy tôi có một nắm bắt khá tốt về nó bây giờ mặc dù.Cơ sở hạ tầng cần thiết cho TDD?

Tôi cũng đang cố gắng đào tạo phần còn lại của nhóm về TDD và thử nghiệm đơn vị để chúng tôi có thể phát triển togeather và bắt đầu tiến hành thử nghiệm đơn vị trong tất cả các ứng dụng của chúng tôi, và cuối cùng tiến tới làm đầy đủ TDD w/tự động tạo & tích hợp liên tục. Tôi đã đăng a thread here về kế hoạch tấn công/chương trình đào tạo của tôi cho các nhận xét & vi phạm.

Một trong những câu trả lời (trên thực tế là bình chọn cao nhất) đề xuất tôi thiết lập cơ sở hạ tầng đầu tiên trước khi tôi tiếp tục đào tạo. Thật không may tôi không có tiếp xúc với điều này, và googling về các chủ đề là khó khăn vì các trang cho CruiseControl.NET/nAnt/etc không thực sự giải thích 'tại sao' chúng ta nên thiết lập này và 'làm thế nào' tất cả mọi thứ kết nối togeather.

Chúng tôi là một cửa hàng nhỏ (khoảng 10 nhà phát triển) và sử dụng hầu hết các công nghệ microsoft và phát triển của chúng tôi trong VB.NET. Chúng tôi đang tìm kiếm để cuối cùng bắt đầu sử dụng C# nhưng đó là cho một thời gian khác. Tôi đã sử dụng dự án MSTest đi kèm với VS2008 cho các bài kiểm tra đơn vị của mình, và tôi đã xây dựng các ứng dụng bằng Visual Studio và triển khai bằng các dự án thiết lập MSI ... Chúng tôi cũng (không may) sử dụng VSS để kiểm soát soure của chúng tôi - nhưng đó cũng là trên khối chặt và tôi thực sự muốn loại bỏ nó và sử dụng subversion.

Tôi biết rằng tôi cần sử dụng CruiseControl.NET cho CI và không có hoặc không có MSBuild để xây dựng các ứng dụng. Và tôi có thể cần một máy chủ xây dựng để chạy tất cả các bản dựng này. Nhưng tôi không thể tìm thấy bất cứ thứ gì 'kết nối' các dấu chấm và giải thích cách chúng tương tác với nhau, cái gì nên trên máy chủ xây dựng của bạn, khi bạn nên xây dựng với máy chủ xây dựng của mình (chỉ là để triển khai xây dựng, hoặc thậm chí khi bạn chỉ muốn biên dịch ứng dụng bạn đang phát triển sau khi thực hiện một thay đổi nhỏ, trên môi trường địa phương của bạn?). Tôi cũng đang lên kế hoạch trục MSTest vì tôi thấy nó bị lỗi và thay vào đó sẽ sử dụng nUnit.

Có ai có thể thắp sáng khoảng cách này tôi có từ 'biết cách làm TDD' để 'thiết lập cơ sở hạ tầng phù hợp để toàn đội có thể làm điều đó và làm việc togeather'? Tôi hiểu việc tích hợp liên tục là gì, nhưng một lần nữa, tôi không chắc chắn về cách xây dựng một máy chủ và cách nó kết nối với mọi thứ, và tại sao chúng ta cần một (ví dụ như sân để quản lý).

cảm ơn rất nhiều vì đã dành thời gian của bạn.

Tôi cần phần nào của finalbuilder? Có vẻ như có một số trùng lặp với trình xây dựng cuối cùng và tính đồng đội. Máy chủ Finalbuilder có vẻ là một máy chủ CI, vì vậy tôi đoán tôi không cần nó. FinalBuilder có vẻ là một máy chủ xây dựng - nhưng tôi nghĩ TeamCity cũng là một máy chủ xây dựng ... Và Automise có vẻ là một công cụ tự động hóa cửa sổ trực quan, giống như một số loại nền tảng phát triển cho các ứng dụng winforms ...

_I also không thấy hỗ trợ cho người xây dựng cuối cùng trong The Team City Supported Apps Diagram: _

+1

Tôi nghĩ rằng sau liên kết chứa bộ khá đầy đủ các thông tin về chủ đề này: http://martinfowler.com/articles/continuousIntegration.html – Tomas

Trả lời

5

Hãy xem hội thảo trên web mà tôi đã thực hiện cách đây vài tuần - How To Start Unit Testing Successfully. Trong hội thảo trên web đó, tôi đã nói về các công cụ và các phương pháp hay nhất về thử nghiệm đơn vị và nó nhằm vào các nhà phát triển giống như bạn muốn giới thiệu thử nghiệm đơn vị trong tổ chức của họ.

Đơn hàng đầu tiên của doanh nghiệp bạn muốn đặt một CI (Tích hợp liên tục) quá trình tại chỗ và cho rằng bạn sẽ cần ba công cụ:

  1. kiểm soát Nguồn
  2. máy chủ Build
  3. xây dựng khách hàng/script

Tôi hy vọng bạn đã có một số hình thức kiểm soát nguồn tại chỗ để chúng ta hãy nói về hai loại còn lại.

xây dựng máy chủ - kiểm tra kiểm soát nguồn và khi nó thay đổi (hoặc một số điều kiện khác đáp ứng) chạy một kịch bản xây dựng trên một số khách hàng (hoặc cùng một máy) có một số xây dựng máy chủ có sẵn tôi khuyên bạn nên JetBrain của TeamCity thật dễ dàng để cài đặt và sử dụng (giao diện web tuyệt vời) và miễn phí cho tối đa 20 nhà phát triển (đó là bạn).

Xây dựng tập lệnh - trên máy khách xây dựng của bạn mà bạn muốn chạy tập lệnh xây dựng để xây dựng giải pháp và chạy thử nghiệm đơn vị của bạn. TeamCity có một số khả năng kiểm tra cơ bản như xây dựng & nhưng đối với các tùy chọn nâng cao hơn (xây dựng trình cài đặt, tài liệu vv), bạn sẽ cần một số nhân vật kịch bản làm việc chúng tôi sử dụng FinalBuilder - nó không miễn phí nhưng có trình soạn thảo rất tốt. Nếu bạn đang tìm kiếm một giải pháp thay thế miễn phí, hãy xem ANT hoặc NANT - nhưng hãy chuẩn bị để chỉnh sửa rất nhiều XML.

công cụ khác - Bởi vì một phần quan trọng của kiểm tra đơn vị thành công là cách dễ dàng là để viết và chạy thử nghiệm trên máy của nhà phát triển tôi đề nghị bạn kiểm tra xem có của IDE tốt hơn hoặc các công cụ bên ngoài mà có thể giúp các nhà phát triển viết & chạy thử nghiệm đơn vị của họ.

+1

1 cho TeamCity. Chúng tôi bắt đầu với CruiseControl.NET và chuyển sang TeamCity bởi vì nó dễ dàng hơn rất nhiều để quản lý. Các tập lệnh NAnt khá dễ chỉnh sửa, nhưng bạn không cần phải làm nhiều việc với TeamCity. – TrueWill

+0

Cảm ơn rất nhiều thông tin. Tôi đã chỉnh sửa bài đăng gốc của mình để lưu ý rằng chúng tôi sử dụng VSS. Mặc dù tôi ghét VSS =). Tôi hy vọng sẽ có được thiết lập lật đổ vì vậy chúng tôi có thể cuối cùng thoát khỏi VSS lỗi đó. Tôi có một câu hỏi mặc dù - bạn có sử dụng máy chủ xây dựng của bạn để biên dịch xây dựng địa phương của riêng bạn khi bạn phát triển? Hay nó chỉ dành cho việc xây dựng triển khai? – dferraro

+1

Tôi chạy kịch bản xây dựng trên máy cục bộ của tôi nhưng thường VS đủ để xây dựng và thử nghiệm dự án của tôi –

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