2013-10-25 16 views
7

Tôi đang cố phản ánh chính xác hơn mã vùng trong một dự án mà tôi đang làm việc nhưng đã gặp sự cố khi nói đến các lớp tạo ra Entity Framework. Tôi muốn loại trừ các hàm tạo của các lớp này khỏi các thống kê vùng phủ sóng, do đó tôi đã thêm thuộc tính ExcludeFromCodeCoverage vào mẫu T4 để tạo lại các lớp như tôi mong đợi, ví dụ:ExcludeFromCodeCoverage thuộc tính với dotCover trong TeamCity 7

using System.Diagnostics.CodeAnalysis; 

public partial class Address 
{ 
    [ExcludeFromCodeCoverage] 
    public Address() 
    { 
     this.Person = new HashSet<Person>(); 
    } 

    ... 
} 

Tôi đang cố thêm điều này ở cấp phương thức vì có một số lớp học một phần chứa logic tùy chỉnh cần được kiểm tra và đưa vào thống kê mức độ phù hợp của mã.

Từ những gì tôi đã đọc ExcludeFromCodeCoverage sẽ tự động được loại trừ khi sử dụng dotCover nhưng tôi không chắc chắn nếu điều này là sự thật khi chạy qua TeamCity, vì vậy tôi bao gồm các bộ lọc như đã đề cập trong Attribute filter syntax for code coverage in TeamCity (thử cả hai ExcludeFromCodeCoverageExcludeFromCodeCoverageAttribute) với không may mắn.

Cảm ơn

Trả lời

13

Tôi có phiên bản TeamCity giống với phiên bản TeamCity của bạn. Việc này ổn với tôi. Bạn nên kiểm tra xem cấu hình của bạn có đúng không.

Bạn nên chỉ định tên thuộc tính trong phần Bộ lọc thuộc tính:. Trong trường hợp của bạn các văn bản phải:

-:System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverageAttribute

thành viên đánh dấu không được hiển thị (cho các lớp) hoặc đánh dấu xanh/đỏ cho bạn báo cáo bảo hiểm TeamCity của bạn.

More hướng dẫn có thể được tìm thấy here

tôi đã có vấn đề tương tự. Tôi loại trừ lớp được tạo ra từ vùng phủ sóng bằng cách thêm vào tôi "Mã bảo hiểm" xây dựng các bước:

-:assembly=<assembly name>*;type=*<part of generated classname>*;method=*

+0

bình luận này không liên quan trực tiếp đến TeamCity & DotCover, nhưng đối với những người sử dụng các dòng lệnh 'DotCover.exe' , để loại trừ mã được đánh dấu bằng thuộc tính 'ExcludeFromCodeCoverage', bạn nên sử dụng' dotCover.exe phân tích .../AttributeFilters = System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverageAttribute', bạn không cần cú pháp '-:' như với tham số '/ Filters ='. –

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