2009-04-16 24 views
15

Tôi cần thiết lập một tệp bộ lọc cho tập lệnh kiến ​​thức tìm kiếm của tôi chỉ quét tệp src/* chứ không phải tệp thử nghiệm/*.Tệp bộ lọc FindBugs để bỏ qua các kiểm tra JUnit

Cú pháp để kiểm tra tất cả các lớp trong khi bỏ qua bất kỳ tên tệp hoặc tên gói nào có 'test' trong tên là gì?

Trả lời

22

FindBugs thực sự đang quét các tệp lớp được biên dịch, không phải là sourcePath. Nếu bạn đang biên dịch các tệp src/* và test/* của mình vào các thư mục khác nhau, bạn chỉ có thể sử dụng phần tử lồng nhau <class...>.

<findbugs home="${findbugs.dir}" output="xml:withMessages" 
    outputFile="${findbugs.report.xml}" jvmargs="-Xmx256M" 
    effort="max" projectName="${ant.project.name}" 
    auxClasspathRef="findbugs.classpath" 
    sourcePath="${src.dir}"> 
    <class location="${src.classes.dir}"/> 
</findbugs> 

Điều đó sẽ không hoạt động nếu src/* và thử/* được biên dịch thành một thư mục duy nhất. Trong trường hợp đó, hãy sử dụng filter file và loại trừ các gói hoặc tên lớp tương ứng với các thử nghiệm.

<findbugs home="${findbugs.dir}" output="xml:withMessages" 
    outputFile="${findbugs.report.xml}" jvmargs="-Xmx256M" 
    effort="max" projectName="${ant.project.name}" 
    auxClasspathRef="findbugs.classpath" 
    sourcePath="${src.dir}" 
    excludefilter="exclude.xml"> 
    <class location="${classes.dir}"/> 
</findbugs> 

nơi exclude.xml trông giống như:

<FindBugsFilter> 
    <Match> 
    <Class name="~.*Test$"/> 
    </Match> 
    <Match> 
    <Package name="~test\..*"/> 
    </Match> 
</FindBugsFilter> 
+0

giải thích tốt ... dường như tôi cần bắt đầu uống cà phê hoặc gì đó. Đã xóa câu trả lời của tôi, cũng chính xác là gây hiểu nhầm. – TofuBeer

-1

Bằng cách này, nó là một ý tưởng tốt để trang trải kiểm tra đơn vị với FindBugs là tốt. Không có lý do gì để sử dụng các tiêu chuẩn chất lượng thấp hơn đối với các thử nghiệm. Lỗi trong thử nghiệm chỉ là, lỗi.

Chắc chắn, nếu bạn chạy FindBugs lần đầu tiên, có thể có nhiều báo cáo lỗi, nhưng số lỗi sẽ giảm thêm giờ nếu bạn chú ý đến chúng.

+12

Vấn đề với điều này là bạn kiểm tra các trường hợp lỗi trong kiểm tra đơn vị (chẳng hạn như truyền null như một tham số được đánh dấu @Nonnull) –

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