Visual Studio có bao phủ mã cho các bài kiểm tra đơn vị không?


82

Tôi đang sử dụng phiên bản Cộng đồng Visual Studio 2015 và tôi biết rằng nó có tùy chọn tạo các bài kiểm tra đơn vị để kiểm tra mã, nhưng tôi không thấy tùy chọn để kiểm tra mức độ phù hợp của mã, vì vậy tôi muốn biết liệu Visual Studio có tùy chọn này hoặc nếu tôi phải sử dụng plugin của bên thứ ba.

Nếu tôi phải sử dụng giải pháp của bên thứ ba, đó có phải là một lựa chọn tốt không?

Câu trả lời:


79

Chỉ Visual Studio 2015 Enterprise có phạm vi bảo hiểm mã được tích hợp sẵn. Xem ma trận tính năng để biết chi tiết.

Bạn có thể sử dụng tiện ích mở rộng OpenCover.UI để kiểm tra độ phủ của mã bên trong Visual Studio. Nó hỗ trợ MSTest, nUnit và xUnit.

Phiên bản mới có thể được tải xuống từ đây ( ghi chú phát hành ).


Phiên bản mở rộng mới bây giờ đã có tại VS Gallery visualstudiogallery.msdn.microsoft.com/...
Toni Wenzel

2
Giao diện người dùng OpenCover dường như không hỗ trợ NUnit 3
Lennart

1
opencover.UI (được tích hợp với VS) có báo cáo (cửa sổ kết quả) rất lộn xộn và không thể sử dụng được. truy cập trực tiếp opencover: allenconway.net/2015/06/…
Roman Pokrovskij

47

Nếu bạn đang sử dụng Visual Studio 2017 và gặp câu hỏi này, bạn có thể cân nhắc AxoCover. Đó là một tiện ích mở rộng VS miễn phí tích hợp OpenCover, nhưng hỗ trợ VS2017 (dường như nó cũng đang được phát triển tích cực. +1).

Trang tiện ích mở rộng VS

https://github.com/axodox/AxoTools


9
Cần lưu ý rằng điều này (hiện tại) chỉ hỗ trợ các phiên bản máy tính để bàn của .NET - tức là .NET Core dường như không được hỗ trợ tại thời điểm viết bài.
Jay

6
Ngày 12 tháng 12 năm 2017, vẫn không hỗ trợ cho .NET Core / Xamarin
Tuấn Trần

1
vâng. không có lõi .net. chỉ nhận ra sau khi tôi cài đặt. :( Tháng 8 năm 2018
JzInqXc9Dg

2
Kể từ tháng 3 năm 2019, AxoCover cũng chỉ hỗ trợ đến xUnit 2.2 (đã hơn hai năm tuổi), hiện tại không có kế hoạch hỗ trợ xUnit 2.3 hoặc 2.4. Nếu bạn đang hy vọng chạy các bài kiểm tra xUnit, đừng bận tâm.
Sean Werkema

2
Đó là tháng 6 năm 2020 và những nhận xét trên vẫn đúng, thật đáng buồn.
Ε Г И І И О

34

ToniCâu trả lời của rất hữu ích, nhưng tôi nghĩ rằng một khởi đầu nhanh chóng cho những người mới bắt đầu hoàn toàn kiểm tra đánh giá mức độ phù hợp (như tôi).

Như đã đề cập, Visual Studio Professional và Community Editions không có hỗ trợ phạm vi kiểm tra tích hợp. Tuy nhiên, nó có thể được lấy khá dễ dàng. Tôi sẽ viết cấu hình từng bước để sử dụng với các bài kiểm tra NUnit trong Visual Studion 2015 Professional.

  1. Cài đặt thành phần OpenCover NUGet bằng giao diện NuGet

  2. Nhận tiện ích mở rộng OpenCoverUI . Điều này có thể được cài đặt trực tiếp từ Visual Studio bằng cách sử dụng Công cụ -> Tiện ích mở rộng và Cập nhật

  3. Định cấu hình OpenCoverUI để sử dụng các tệp thực thi thích hợp, bằng cách truy cập Công cụ -> Tùy chọn -> Tùy chọn OpenCover.UI -> Chung

Đường dẫn NUnit: phải trỏ đến tệp `nunit-console.exe. Bạn chỉ có thể tìm thấy điều này trong phiên bản NUnit 2.xx, có thể tải xuống từ đây .

Đường dẫn OpenCover : điều này sẽ trỏ đến gói đã cài đặt, thường là<solution path>\packages\OpenCover.4.6.519\tools\OpenCover.Console.exe

  1. Cài đặt gói ReportGenerator NUGet

  2. Truy cập OpenCover Test Explorertừ menu OpenCover. Hãy thử khám phá các bài kiểm tra từ đó. Nếu không thành công, hãy kiểm tra Cửa sổ đầu ra để biết thêm chi tiết.

  3. Kiểm tra Kết quả OpenCover (trong menu OpenCover) để biết thêm chi tiết. Nó sẽ xuất ra các chi tiết chẳng hạn như Độ phủ mã trong chế độ xem dựa trên cây. Bạn cũng có thể đánh dấu mã được hoặc không bị che (biểu tượng nhỏ ở trên cùng bên trái).

LƯU Ý: như đã đề cập, OpenCoverUI không hỗ trợ phiên bản chính mới nhất của NUnit (3.xx). Tuy nhiên, nếu không có gì cụ thể cho phiên bản này được sử dụng trong các thử nghiệm, nó sẽ hoạt động không có vấn đề gì, bất kể đã cài đặt phiên bản NUnit 3.xx.

Điều này bao gồm việc bắt đầu nhanh chóng. Như đã đề cập trong các nhận xét, để biết cấu hình nâng cao hơn và tự động hóa, hãy kiểm tra bài viết này.


10
Tiện ích mở rộng không hoạt động trên cộng đồng VS 2019. Thật tiếc
nicolascolman

@nicolascolman Có, nhưng Fine Code Coverage có vẻ hiệu quả .
Alexei

1

Đối với bất kỳ ai đang tìm kiếm một giải pháp dễ dàng trong Cộng đồng Visual Studio 2019, Fine Code Coverage rất đơn giản nhưng hoạt động tốt.

Nó không thể đưa ra con số chính xác về độ phủ chính xác, nhưng nó sẽ cho biết những đường nào đang được bao phủ bởi máng xối xanh / đỏ.


Đây là một gợi ý tốt. Tuy nhiên, nó chỉ hoạt động với .NET Core.
Alexei
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.