2011-03-24 37 views
0

我正在設置PMD作爲我們團隊中的工具來支持我們編寫更好的代碼。基本上我正在構建Ant scripts並嘗試設置一些規則供大家使用。哪個PMD規則可以爲JUnit測試激活?

但現在我打這個問題:

當我寫JUnit tests我不想用我申請上我們的主要源代碼相同的規則。在junit測試中,我並不在乎String rules(比如字符串重複或奇怪的實例化)。

我的問題是:

  1. 是,在我身邊,一個錯,我應該開始寫更好的JUnit測試?
  2. 我應該提供第二組禁用某些字符串/設計/終結器規則的規則嗎?

回答

2

第二種選擇 - 我根本不對我的測試運行PMD。我可以和PMD提供一些JUnit特定的規則。儘管如此,我肯定會對測試代碼使用單獨的規則集。我期望更多的字符串文字和指定的東西,而不是使用條件/循環。畢竟,我不想複製我試圖測試的代碼。

+0

我將爲我的測試設置另一個規則集配置。這裏有一些代碼重複和一些字符串混淆,我沒有看到代碼味道。 – cringe 2011-04-09 13:49:12

1

兩件事。你爲什麼要設置規則,爲什麼不使用現有的規則? (特殊要求?)。第二個是,單元測試當然也應該有很好的質量。你的單元測試測試你的生產代碼,所以它們不應該與生產代碼至少有相同的質量?

+0

啊,我不是自己制定新的規則,我只是從現有的規則中選擇。我的項目中不需要一些規則,例如禁用j2ee規則。如果我不禁用某些規則,我們現有的代碼庫將導致數千個警告。 – cringe 2011-03-24 18:30:07

+0

關於第二點,我想在單元測試中獲得高質量,但是例如當我測試以文本格式導出我的對象的類時,我在'assert'語句中使用'Strings'進行了很多檢查如果數據導出正確,並且PMD將給出有關字符串優化的許多警告。這是我認爲關閉不會影響單元測試質量。 – cringe 2011-03-24 18:32:56