2013-05-11 24 views
7

Tôi đang thử nghiệm một dự án khá lớn (C#, VS2012) và tôi cần sắp xếp kiểm tra đơn vị của mình trong hệ thống phân cấp thử nghiệm (ví dụ: bây giờ tôi có 43 trường hợp thử nghiệm). Tôi thực sự cần phân cấp.Visual Studio 2012 phân loại danh mục thử nghiệm (Test Explorer)

Tôi đã xác định các danh mục thử nghiệm và trình khám phá kiểm tra hiển thị các trường hợp thử nghiệm theo các đặc điểm. Tôi có loại theo cách này (một bài kiểm tra có một số chuyên mục)

  • TestCase01: MainTestType, SubTestType, SubsubTestType
  • ...
  • TestCase10: MainTestType, SubTestType, SubsubTestType
  • TestCase11: MainTestType, SubTestType2 , SubsubTestType2
  • ...
  • TestCase15: MainTestType, SubTestType2, SubsubTestType2

Defined như thế này:

[TestMethod] 
    [TestCategory("MainTestType")] 
    [TestCategory("SubTestType")] 
    [TestCategory("SubsubTestType")] 
    public void MyTestCase() 
    { /* etc. */ 

Nhưng thử nghiệm Explorer trình bày tiếp theo:

  • MainTestType: tất cả các bài kiểm tra có loại MainTestType
  • SubTestType: tất cả các bài kiểm tra có loại SubTestType
  • vv .. .

Vì vậy, tôi thực sự bỏ lỡ hệ thống phân cấp. Tôi đã thử "Cat1 \ Cat2 \ Cat3" hoặc thậm chí với /. Nhưng không có hệ thống phân cấp nào được hiển thị. Bạn có biết làm thế nào để làm điều đó, hoặc một addon miễn phí mà có thể làm điều đó cho tôi?

Tôi cũng sẽ cần loại phân loại này, vì chúng tôi thường chạy thử nghiệm từ dòng lệnh và mstest.exe có thể chạy thử nghiệm cho một danh mục (ví dụ: tất cả MainTestType hoặc SubTestType). (Tôi gắn bó với mstest bởi vì một nửa của đội sử dụng vs2010). Nhưng giải pháp là đủ cho năm 2012.

Cảm ơn bạn trước.

+1

Bạn đã cố gắng sử dụng [Danh sách phát] (http://blogs.msdn.com/b/visualstudioalm/archive/2013/01/30/first-ctp-for-visual-studio-update-2.aspx# danh sách phát) từ VS Update 2? Tôi không biết sẽ dễ dàng như thế nào để duy trì cho bạn những danh sách phát này, nhưng bạn có thể thử nếu điều này thực sự sẽ giúp bạn. – outcoldman

+0

Một danh sách phát biết, nhưng tôi đang tìm kiếm một catogerization phân cấp (có thể là một addon). Nhưng có lẽ nó là không thể, tôi chỉ tò mò – cseppento

+0

Tôi đã không nhìn thấy nó trước đây. Bạn có thể thử với R #, nếu R # đơn vị kiểm tra thám hiểm có thể làm điều này hay không, nhưng tôi không nghĩ rằng nó có thể. – outcoldman

Trả lời

6

Như những gì tôi đã tìm kiếm được không được hỗ trợ vào lúc này, tôi đã thực hiện giải pháp tiếp theo:

  • xây dựng dự án
  • chạy MSText cho tất cả các bài kiểm tra -> .trx đầu ra
  • winforms đơn giản/Chương trình wpf, phân tích cú pháp .trx, nhận các trường hợp thử nghiệm và hiển thị chúng trong một lần xem tre
  • bây giờ chúng tôi có thể chạy từ ứng dụng này cho nút đã chọn -> tạo đầu ra .trx (có thể được mở trong VS)

Tôi đã sử dụng .trx vì cách đó tôi không phải phân tích cú pháp assembly, mstest.exe thực hiện nó. loại thử nghiệm được thực hiện theo cách này:

[TestCategory("MainTestType")] 
[TestCategory("MainTestType/SubTestType")] 
[TestCategory("MainTestType/SubTestType/SubsubTestType")] 

Vì vậy, là cách giải quyết đó là đơn giản, chỉ có một nhị phân và các nhà phát triển có thể sử dụng quá. Vấn đề với danh sách phát là chúng không phân cấp.

+3

Bạn có thể chia sẻ tiện ích của mình không, ví dụ: Trên GitHub? –

1

Trình khám phá kiểm tra chỉ hiển thị các nhóm theo bố cục TestFilter/InnerTests.

Tab Khám phá thử nghiệm mới là vùng chứa chung. Sử dụng các adapter/addon/plugin cụ thể, bạn có thể tích hợp các khung kiểm thử khác (NUnit, xUnit, Qunit, ...) vào Test Explorer ... nhưng các adapter này phải tuân theo giao diện thám hiểm thử nghiệm.

Vì vậy, nó không được hỗ trợ nguyên bản bởi Tab kiểm tra thử nghiệm, tôi không tìm thấy trong quá khứ một cách để mở rộng tab thám hiểm thử nghiệm.

Có thể một khung kiểm tra khác sẽ cho phép bạn có một hệ thống phân cấp nhưng điều này sẽ nằm trong một tab tùy chỉnh khác và với một thuộc tính khác (TestCategory là thuộc tính MSTest).

Chỉ cần cung cấp thông tin, bạn có thể kết hợp những đặc điểm ALOS trong thử nghiệm Explorer Window theo cách này

Trait:"MainTestType1" Trait:"SubTestType3" 
+0

Tôi biết điều này, tôi đang tìm kiếm tổ chức phân cấp (hình ảnh) – cseppento

+0

Như tôi đã nói, không có điểm mở rộng trong Tab thử nghiệm gốc. Nó chỉ hỗ trợ Grouping and Filtering. – Cybermaxs

+0

Ok, sau đó không có câu trả lời, plase đóng thread (nếu sy có thể) – cseppento

1

Đối với nhóm sử dụng VS2010 .vsmdi file có thể được mở ra ở Test List Editor.

Theo như VS2012: cải tiến

Visual Studio 2012 Update 1 http://www.microsoft.com/visualstudio/eng/visual-studio-update đã được thêm vào để hỗ trợ cả hai nhóm và lọc bởi dự án và đặc điểm (loại). Sử dụng các tính năng này là chi tiết trong bài viết trên blog này, http://blogs.msdn.com/b/visualstudioalm/archive/2012/11/09/how-to-manage-unit-tests-in-visual-studio-2012-update-1-part-1-using-traits-in-the-unit-test-explorer.aspx

Group và lọc theo Class được hoàn thành và sẽ có mặt tại Cập nhật 2.

tôi đề nghị bạn để di chuyển danh mục của bạn để không gian tên, vì vậy bạn sẽ có thể để xem phân cấp phẳng trong cửa sổ TestView trong cột FullClassName.

+0

Tôi biết điều này, tôi đang tìm kiếm tổ chức phân cấp (hình ảnh) – cseppento

0

Bạn có thể ăn gian một chút bằng cách làm cho đặc điểm cấp 2 của bạn nối một giá trị hai cấp độ đầu tiên của bạn. Vì vậy, nếu cấp 1 là Động vật và cấp 2 là Động vật có vú, bạn có thể có một Trait "Animal.Mammal". Trong Trình khám phá kiểm tra, bạn sẽ nhận được nút cho Level1 [Animal], một nút khác cho Level1 [Plant] và sau đó một nút cho Level2 [Animal.Tiger]. Tôi tin rằng bộ lọc hỗ trợ các kết quả chuỗi con, vì vậy đó là một cách để sắp xếp nó. Bạn vẫn không nhận được một cái nhìn cây (mặc dù nếu bạn đã bị ràng buộc và xác định bạn có thể thử mở rộng ascii nhân vật ống nghệ thuật như lệnh cây DOS cũ).

Bạn vẫn có vấn đề là bạn không thể hợp nhất các đặc điểm khác nhau (sao cho tất cả các loài chim sẽ ở cùng nhau trong danh sách tất cả các con đường xuống).

Mặt khác, việc thực thi cấu trúc phân cấp trong khi cho phép các thông số n-tuples sẽ khó xử. Nó sẽ phải hạn chế các mục nằm trong nhiều hơn một đường dẫn từ trên cùng của hệ thống phân cấp, phát hiện và báo cáo chu kỳ, sử dụng điều khiển cây trên đầu trang (hoặc được ma trận với) những gì hiện có. Ngoài ra, khi bạn refactor mã và muốn giữ các bài kiểm tra sắp xếp song song, quá nhiều cấu trúc hiện có có thể gây ra nhức đầu.

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