2012-08-24 30 views
5

Tôi đã thiết lập hai phiên kiểm tra thường trực trong ReSharper 7 trong Visual Studio 2010/2012 - "Passing" và "Failing". Tôi chạy phiên Passing hàng ngày và có thể nhanh chóng xác định bất kỳ thất bại hồi quy nào kể từ lần cuối cùng trong trường hợp tôi chuyển các bài kiểm tra đó vào Failing, nơi tôi có thể làm việc khi tôi có thời gian. Nó hoạt động và nó rất tuyệt.Tôi làm cách nào để chia sẻ Phiên kiểm tra đơn vị ReSharper trên một nhóm?

Vấn đề là tôi không thể tìm thấy bất kỳ cách nào để xuất các phiên đó dưới dạng tùy chọn "Nhóm giải pháp được chia sẻ", như được đề xuất trong các ReSharper docs cho cài đặt bạn có thể muốn chia sẻ trên một nhóm. Rõ ràng, nó sẽ có lợi để có thể có những người khác trong lịch phát sóng thời gian của cùng một cấu trúc phiên kiểm tra. Nhưng khi tôi thay đổi các phiên của tôi, nó chỉ bao giờ có vẻ để cập nhật các tập tin 'PatientPortal.sln.DotSettings.user', không phải là 'PatientPortal.sln.DotSettings' một.

Trong Resharper -> Options -> Đơn vị kiểm tra, tôi đã kiểm tra 'Lưu và khôi phục Unit Test phiên' và đã chọn Save-To - 'Giải pháp [name] Team-chia sẻ'

Do khó khăn tôi Tôi nghĩ rằng các phiên kiểm tra đơn vị ReSharper không được thiết kế để trở thành thứ bạn đăng ký và chia sẻ, nhưng tôi thấy nó có hiệu quả để làm như vậy trong trường hợp này, vậy có ai biết cách làm điều này không?

Trả lời

1

Bạn nên sử dụng danh mục cho mục này. Nếu bạn đang sử dụng NUnit, sau đó bạn có thể sử dụng CategoryAttribute để đánh dấu kiểm tra của bạn hoặc đồ đạc kiểm tra với các hạng mục như sau:

[Category("Failing")] public void MyTestProc() ... 

Bạn có thể chỉ định một số chuyên mục cho một thử nghiệm (chỉ cần sử dụng thuộc tính nhiều thời gian).Sau đó, hãy truy cập ReSharper | Unit Tests | Unit Tests và chọn Group by -> Categories (hoặc điều gì đó tương tự, không nhớ chính xác). Chọn danh mục của bạn và nhấn một nút Run selected tests từ thanh công cụ.

+0

Tôi đã hy vọng tránh việc thay đổi các bài kiểm tra thực tế, khiến cho các buổi kiểm tra hấp dẫn với tôi, nhưng vâng, tôi nghĩ đây là cách duy nhất để đi. Tôi không sử dụng NUnit, nhưng TestCategory ("Thất bại")] hoạt động trong không gian tên Microsoft.VisualStudio.TestTools.UnitTesting. Cảm ơn. –

1

Câu trả lời ngắn gọn là bạn đang đúng - chia sẻ lại các phiên kiểm tra được dự định sẽ được lưu cho mỗi người dùng và được lưu trong tệp .sln.DotSettings.user và các tệp .user không được kiểm tra Đối với hầu hết các kịch bản, tôi không chắc chắn có ý nghĩa khi chia sẻ trong nhóm - nếu tôi là TDDing một lớp nhất định, các thành viên khác trong nhóm không cần phải xem bài kiểm tra của tôi, khi họ thắng ' t làm việc trong cùng một khu vực của mã, và thay vào đó sẽ có phiên riêng của họ. Một tiếng gõ có hiệu lực cũng sẽ có rất nhiều sự khuấy động (và nguy cơ xung đột cao) trên phần đó của tệp cài đặt được chia sẻ.

Chọn "Lưu vào" cho tệp cài đặt chia sẻ nhóm sẽ chỉ gây ra cài đặt "lưu và khôi phục các phiên thử nghiệm đơn vị" thành tệp cài đặt được chia sẻ. Nó sẽ không khiến cho các phiên được lưu lại.

Tôi đã không dành quá nhiều thời gian để suy nghĩ về nó, nhưng tôi nghi ngờ bạn có thể viết một plugin ReShaprer đã lưu các phiên bị khóa cho các cài đặt được chia sẻ của nhóm. UnitTestSessionManager tăng các sự kiện khi một phiên được tạo hoặc đóng, và giao diện IUnitTestSession trưng ra GetPersistentInfo và RestorePersistentInfo, nó sẽ cho phép bạn lấy dữ liệu để lưu và tải. Sau đó nó sẽ là một trường hợp của sự bền bỉ dữ liệu vào tập tin cài đặt vào thời điểm thích hợp.

Tôi không thể đảm bảo rằng bạn sẽ không nhận được xung đột trong tệp này - tôi không biết thứ tự các yếu tố trong khi được sắp xếp theo thứ tự và dữ liệu được sắp xếp thành định dạng khá dày đặc thay đổi các phiên có thể gây đau đớn.

Có lẽ cách làm việc khác sẽ tốt hơn? Hai phiên cho bạn thấy rằng bạn sẽ không chỉ nhận được bằng cách chạy tất cả các bài kiểm tra trong một phiên duy nhất? ReSharper cho phép bạn chỉ hiển thị thông qua hoặc chỉ kiểm tra không thành công. Liệu nó có thực sự giúp nhóm có thể nhóm các bài kiểm tra để vượt qua hay thất bại không? Có lẽ thêm danh mục vào các bài kiểm tra bạn cần sửa sau? Đánh dấu chúng bị bỏ qua nếu chúng không đủ quan trọng để sửa ngay bây giờ? Sửa chúng ngay bây giờ?

+0

Cảm ơn câu trả lời. "Hai phiên cho bạn thấy rằng bạn sẽ không chỉ nhận được bằng cách chạy tất cả các bài kiểm tra trong một phiên duy nhất?" Nếu tôi chạy tất cả các bài kiểm tra với nhau, với những người đã bị phá vỡ cùng với những người đi qua, sau đó tôi sẽ không dễ dàng nhìn thấy nếu những người đi qua bây giờ có bất kỳ những người bị suy thoái. Tách chúng trước khi bạn chạy chúng cho phép bạn nhanh chóng xem nếu có bất kỳ lỗi mới nào xảy ra, điều này sẽ trở nên khó khăn khi bạn chạy tất cả chúng lại với nhau. Tất nhiên tôi nên sửa chữa tất cả và được thực hiện với nó, nhưng luôn luôn có được một vài người bị hỏng mà bạn biết và sẽ nhận được để sửa chữa sớm. –

4

Có một vé mở cho một tiết kiệm unittest phiên tính năng:

RSRP-275264 Add action to save unit tests session

Tôi hy vọng chúng tôi sẽ có được tính năng này trong tương lai. Có lẽ nó sẽ giúp nếu bạn bỏ phiếu hoặc đăng bình luận về usecase của bạn.

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