2014-10-21 15 views
5

Tôi muốn chạy NUnit trên TeamCity và tạo báo cáo với dotCover. Nhưng vì một số lý do tôi không thể nhận được báo cáo bảo hiểm cho tất cả các hội đồng dự án của tôi.TeamCity with dotCover không bao gồm tất cả các hội đồng của tôi trong báo cáo bảo hiểm

TeamCity cấu hình như sau

Teamcity: 6.5.3 
NUnit: 2.5.10 
.NET Runtime: Platform: x86 
.NET Runtime: Version: v4.0 
dotCover: bundled with TC not customized 

Tôi đã kiểm tra tất cả các *.dll *.xml *.pdb file đang có trong thư mục như mong đợi như sau (DLL tài liệu tham khảo không được liệt kê)

MY.PROJECT.A.dll 
MY.PROJECT.A.pdb 
MY.PROJECT.A.xml 
MY.PROJECT.B.dll 
MY.PROJECT.B.pdb 
MY.PROJECT.B.xml 
MY.PROJECT.C.dll 
MY.PROJECT.C.pdb 
MY.PROJECT.C.xml 
MY.PROJECT.Test.dll 
MY.PROJECT.Test.pdb 
MY.PROJECT.Test.xml 

MY.PROJECT.Test .dll được thực hiện với NUnit và assembly này được loại trừ trong báo cáo vùng phủ sóng bằng cách sử dụng bộ lọc * Test *. Nhưng chỉ MY.PROJECT.A là trong báo cáo bảo hiểm dotCover trong khi MY.PROJECT.BMY.PROJECT.C không được tính.

Tôi đã kiểm tra nhật ký nhưng không phải lỗi được tìm thấy.

Bất kỳ suy nghĩ được nhiều đánh giá cao.

Trả lời

4

Cuối cùng, tôi đã tìm ra những gì đang xảy ra và hy vọng câu trả lời này hữu ích cho những người vẫn đang đấu tranh với vấn đề này hoặc tương tự.

Về cơ bản, dotCover chỉ bao gồm các cụm đó thực sự là được sử dụng (chính xác hơn, các cụm được nạp bởi CLR) bởi các thử nghiệm trong báo cáo phủ sóng mã.

Trong trường hợp của tôi, chỉ MY.PROJECT.A được sử dụng bởi các thử nghiệm, MY.PROJECT.BMY.PROJECT.C không được sử dụng bởi các thử nghiệm do phụ thuộc bên ngoài. và thậm chí với chỉ thị using MY.PROJECT.B trong các thử nghiệm, nó không được tính là tải chậm của CLR.

Một giả workaround để hiển thị báo cáo bảo hiểm 0% đối với hai hội này là thể sử dụng bất cứ điều gì trong lắp ráp trong các bài kiểm tra, hoặc lực lượng tải các hội đồng bằng cách gọi System.Reflection.Assembly.Load("MY.PROJECT.B")

Câu hỏi liên quan:

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