2012-02-24 54 views
1

有沒有一個程序可以讓我找到所有被忽略的聯隊?我看過單元測試使用@Ignore和方法名稱測試,如ignore_testFoo()xtestBar()xxtestBar1(),它們都被忽略,它們有時很難找到。 我可以爲這些情況grep,但我想知道是否有一個應用程序會自動找到任何這些情況。程序找到被忽略的聯隊

我試着使用的Cobertura獲得覆蓋上junits,看到了正在執行的方法,並且沒有被執行,採摘除了壞單元測試了。

我只是想知道如果有一個程序或其他方法來獲得這個信息,而黑客的東西了。

回答

3

靜態分析工具在這裏可以很好地爲您服務。 Checkstyle是一個不錯的選擇,它有很長的列表modules,最壞的情況下,你可以很容易地編寫自己的模塊來驗證你需要的任何編碼約定。

你會找到或創建一個模塊爲它然後執行找到任何不符合要求的代碼。

編輯 PMD看起來是處理這一任務的最佳選擇。它實際上已經內置了一個set of JUnit rules,它很容易合併規則或創建新規則。

+0

最壞的情況,我只想修改此PMD規則http://pmd.sourceforge.net/rules/java/unusedcode.html#UnusedPrivateMethod也正接受公開的方法,並搜索@Ignore標註。 – Steve 2012-02-24 07:22:14

+0

感謝您發佈該鏈接,我之前沒有聽說過PMD。有趣的是,他們對JUnit有一些預先編寫的規則 - http://pmd.sourceforge.net/rules/java/junit.html。 – Perception 2012-02-24 12:14:34

+0

請注意,這些JUnit規則的大部分適用於JUnit 3,而不是JUnit 4 – 2012-02-24 15:35:06

1

在java測試文件中,使用junit3通過grep檢測忽略的測試應該很容易。找到所有與測試和括號匹配的行,但使用不以測試開始的方法名稱。

對於junit4,你可以 *通過擴展默認的實現自己的測試運行,打印出被忽略的測試 *建加載測試類一個小的應用程序,讓所有聲明的方法,通過反思,打印出忽略那些markedas。

有可能做到這一點,甚至有的選手已經在做的一個工具,但實際上它可能需要幾個小時才能擁有這些工具從頭開始,如果你真的需要他們。