2013-01-21 42 views
5

我正在使用EclEmma(Eclipse內部)來掃描我的JUnit代碼覆蓋率。這工作正常 - 但是,我不希望EclEmma掃描我的src/view文件夾,因爲它包含我認爲不值得測試的Swing代碼。如何忽略使用EclEmma和Eclipse掃描某些類?

當EclEmma運行時,是否有任何方法可以忽略此文件夾,以便:a)運行速度更快,b)不會歪曲覆蓋百分比?

編輯:

我的項目的結構是:

src/view 
src/model 
src/controller 

我與路徑嘗試這些(可能還有其他)條目在首頁部分:

"src/view" 
"src/view/*" 
"view" 
"view/*" 
src/view 

這些正在使用偏好頁面中的排除部分:

* 
*View* 
*View*.class 
src/view/*View* 
src/view/*View*.class 

他們都給我分析我的整個src文件夾的結果相同。

回答

5

您可以specify an exclude field

排除:類名稱的列表應該從執行 分析中排除。列表條目以冒號(:)分隔,可能使用通配符(*和?) 。 (默認值:空)

但是,它可能是更容易使用他們的類路徑匹配選項:匹配

唯一路徑條目:逗號分隔的字符串列表必須 與之相匹配的類路徑條目。類路徑條目匹配 過濾器,如果它包含給定的字符串之一。 (例如 「SRC /主/ JAVA」,默認值:無過濾器)

參見eclemma - how to ignore source有關如何忽略SRC文件夾。

另請注意他們的謹慎,

警告:如果您的設置不符合您的項目(S)的任何類路徑中的條目 ,在覆蓋模式每一個新的推出,將有一個 空分析範圍。

+1

謝謝,看起來像我想要的。不幸的是,當我在Excludes中使用了模式com.test.project.view。*時,它似乎沒有排除任何東西。編輯:哎呀,我沒有注意到它說類名... – sdasdadas

+0

我相信這是正確的答案,但我不相信它實際上在EclEmma中的作品。我接受,但如果有人應該閱讀這一點,請知道我無法弄清楚如何包括OR排除類或路徑。 – sdasdadas

+0

@sdasdadas對不起,你能發表你試過的嗎?如果有任何錯別字,它根本就不起作用。 – stevebot

6

[編輯]維護者說,你不能,除了一個源目錄級別:https://github.com/jacoco/eclemma/issues/70

我想eclemma不排除文件:是。就像我想的那樣。

例如,當您進入排除偏好並指定your.classes.here。*時,這意味着這些類不會計入您的代碼覆蓋範圍內,而不會包含在這些類中測試需要包含哪些內容。

試試看看。嘗試排除您已知覆蓋的課程。一旦你把這個排除在排除偏好上,在新的覆蓋範圍運行時,他們仍然會在覆蓋範圍窗口中出現,但是他們會以0%的速度出現,並且都會變成紅色。

如果你問我,那就毫無用處。我仍然在尋找一個合適的解決方案,通過名稱從需要被測試覆蓋的類中排除類。

+1

我面臨同樣的問題,是否有解決方案來解決這個問題 –

1

我已經放棄了EclEmma,因爲我無法讓它做我想做的事情,所以我使用了一種不同的方法 - 我會在這裏記錄它以防萬一它幫助其他人。

  1. 要從測試中排除類,我將所有測試類命名爲* Case.java,然後通過SuiteClasses包含或排除它們。你可以閱讀更多關於https://github.com/junit-team/junit4/wiki/Aggregating-tests-in-suites
  2. 要衡量覆蓋面,我使用Maven和Cobertura。這將只測試我的測試套件中指定的文件並相應地生成覆蓋率報告。
相關問題