Tại nơi làm việc của chúng tôi, chúng tôi có giải pháp C# .net chứa khoảng 50 dự án và khoảng 2000 thử nghiệm đơn vị. Sau khi thay đổi mã, chúng tôi yêu cầu chúng tôi chạy tất cả các thử nghiệm trong giải pháp trước khi đẩy các thay đổi của chúng tôi vào máy chủ xây dựng. Chạy tất cả các thử nghiệm có thể mất khoảng 10-15 phút. Tôi đã suy nghĩ - hey, có lẽ có thể có một số quá trình sẽ phân tích tất cả các thay đổi mã tôi đã thực hiện, và sau đó quyết định chỉ chạy các phương pháp thử nghiệm có liên quan. Nếu loại phân tích như vậy là có thể, thì thay vì chạy 2000 thử nghiệm, máy tính chỉ chạy 15 hoặc 100 thử nghiệm, thì chúng ta đang nói về sự gia tăng năng suất rất tốt và ít đau đầu hơn. Bất cứ ai cũng có bất kỳ ý tưởng về cách thực hiện điều này, hoặc nếu phần mềm đó có sẵn?Kiểm tra đơn vị phụ thuộc mã
Trả lời
C# Test Coverage Tool của chúng tôi có thể thực hiện việc này.
Nó tăng dần chỉ là các tệp đã thay đổi kể từ lần chạy thử nghiệm cuối cùng.
Nó có thể được sử dụng để theo dõi phạm vi kiểm tra cho từng bài kiểm tra đơn vị và tệp nào có liên quan. Khi một tập tin thay đổi, nó so sánh nó với phiên bản trước đó; nếu phương pháp tham gia vào một số đơn vị kiểm tra các thay đổi trước đó, nó sẽ xác định các kiểm tra đơn vị đó. Bạn phải tổ chức quá trình đó để liên kết chạy thử nghiệm với dữ liệu bảo hiểm và chạy lại các kiểm tra đơn vị được xác định, nhưng đó là một vấn đề nhỏ của kịch bản. Lý do cho việc này là để cho phép công cụ kiểm tra hoạt động với các khung kiểm tra tùy ý.
Bạn có thể làm điều đó trên máy chủ xây dựng để tiết kiệm thời gian. Quan trọng hơn, bạn có thể cung cấp cho mỗi nhà phát triển điều này, để anh ta có thể chạy chỉ các bài kiểm tra cần thiết để xác thực mã mà anh ta thay đổi, trước khi anh ấy kiểm tra các thay đổi.
Thật khó để nói điều gì phụ thuộc vào những gì trong môi trường đa dự án. Lý tưởng nhất là:
- kiểm tra đơn vị của bạn sẽ thành sự thật đơn vị kiểm tra, và năm 2000 của họ nên chạy trong có lẽ 20 giây.
- Các thử nghiệm dài hạn của bạn sẽ được thiết lập trên phiên bản liên tục trên máy chủ xây dựng của bạn, vì vậy bạn sẽ vẫn nhận được thông báo khá nhanh rằng bạn đã làm mọi thứ rối loạn nếu bạn bỏ lỡ bất cứ điều gì, nhưng bạn có thể đủ khả năng để chỉ là có nhiều lựa chọn hơn khi chỉ chạy các thử nghiệm mà bạn nghĩ rằng bạn có thể đã bị ảnh hưởng với các thay đổi mã của bạn trước khi bạn cam kết.
Visual Studio 2010 Premium và Ultimate có công cụ "Tác động thử nghiệm" thực hiện chính xác điều đó.
Thú vị liệu nó có thể nhận các thử nghiệm NUnit và không chỉ MSTests – sll
+1 @DBM: Điều tuyệt vời không bao giờ biết trước khi nó , http://blogs.msdn.com/b/phuene/archive/2009/12/07/test-impact-analysis-in-visual-studio-2010.aspx – sll
@sllev chỉ giới hạn ở các thử nghiệm MSTest. – ckittel
Trong môi trường của chúng tôi, chúng tôi sử dụng NCrunch http://www.ncrunch.net/
Nó xây dựng các dự án và chạy các bài kiểm tra đơn vị trong nền sử dụng nhiều chủ đề. Nó thông báo cho bạn về các bài kiểm tra đơn vị không thành công một cách dễ chịu.
NCrunch thực hiện khá nhiều thứ bạn cần. Có một cái nhìn.
- 1. DAO Kiểm tra đơn vị
- 2. Kiểm tra phụ thuộc
- 3. Chức năng kiểm tra đơn vị có tác dụng phụ?
- 4. Bảo hiểm Mã và Kiểm tra Đơn vị Mã Python
- 5. Tiêm dịch vụ phụ thuộc khi kiểm tra đơn vị Dịch vụ AngularJS
- 6. Tránh phụ thuộc cơ sở dữ liệu để kiểm tra đơn vị mà không bị nhái
- 7. Sử dụng hệ thống phun phụ thuộc làm cách nào để đơn vị kiểm tra mã của bạn
- 8. Đơn vị kiểm tra RedirectToRouteResult
- 9. Đơn vị kiểm tra dao cạo
- 10. Bài kiểm tra đơn vị cơ bản so với bài kiểm tra đơn vị
- 11. Kiểm tra đơn vị CacheManager
- 12. đơn vị kiểm tra angularjs chỉ thị
- 13. kiểm tra đơn vị trong C++
- 14. Kiểm tra SBT-phụ thuộc vào Multiprojects: Làm cho mã kiểm tra có sẵn cho các dự án phụ thuộc
- 15. Kiểm tra đơn vị XSLT
- 16. Kiểm tra đơn vị XQuery
- 17. Kiểm tra đơn vị CSS
- 18. Đơn vị kiểm tra TSQL
- 19. Đơn vị kiểm tra destructors?
- 20. Kiểm tra đơn vị JSPs
- 21. Kiểm tra đơn vị EJB
- 22. Kiểm tra đơn vị XCode
- 23. Kiểm tra đơn vị Scala
- 24. Kiểm tra Đơn vị & Log4net
- 25. Kiểm tra đơn vị Mã ASP.NET đằng sau
- 26. Đơn vị kiểm tra và mã thiết kế
- 27. Mã kiểm tra đơn vị gọi là VirtualPathUtility.ToAbsolute
- 28. Cách kiểm tra đơn vị mã được đồng bộ hóa
- 29. Bạn sử dụng mã C kiểm tra đơn vị nào?
- 30. Kiểm tra đơn vị hoạt động mã WF
+1 để tách các bài kiểm tra đơn vị khỏi các bài kiểm tra tích hợp. Xem http://stackoverflow.com/questions/61400/what-makes-a-good-unit-test – TrueWill