2010-02-13 165 views
0

是否有方法從我的Java類中去除JUnit @Test代碼。 目前我將測試代碼嵌入到與要測試的源代碼相同的文件中 (是的,我知道這很不好,但它是激勵我保持我的測試代碼)從java類中刪除測試代碼

我想從代碼中剝離測試方法,構建二進制文件並進行部署。

謝謝

回答

0

有沒有具體的工具來做這個任務,我知道。

您可能需要「舔舔」,並使用您最喜愛的文本編輯器/ IDE進行更改。 (也許這個練習會教你更好地注意好的練習/好的風格......)

2

不,我不知道你怎麼能做到這一點,但我可以告訴你爲什麼你可能不想要首先使用這種方法。

  1. 您可能可以去除測試,但是所有導入引用測試庫的情況如何?
  2. 測試可能調用的任何私有方法如何?他們不會被標記爲@Test
  3. 爲什麼要首先解決所有這些問題?每個IDE都有自動生成測試類的工具和用於在它們之間切換的快捷方式。
  4. 如果測試註釋意外地應用於您的某個類方法,該怎麼辦?
  5. 如果您的某個類方法意外地調用測試方法會怎麼樣?

這些只是我能想到的一些原因...爲什麼不是首先避免這個問題呢?

0

有一些tools可能會幫助你做到這一點(旨在加密你的字節碼的東西也傾向於刪除未使用的東西)。

但我不會建議這樣做。你找到一種方法來鼓勵自己保持代碼測試(很好!)。然而,正如你發現的那樣,你選擇的方式並不是那麼好。將測試代碼與代碼本身分開的原因有很多。

我會做的是(每次一個類):

1)硬着頭皮做一組並行的類測試 2)之前將其移到任何有一個@Test新類別 3)移動其他任何可以防止編譯/運行的測試。

然後使用一個代碼覆蓋工具(我喜歡Cobertura但也有其他人)給你視覺的如何你的代碼中有多少測試。再加上在運行代碼之前編寫測試的想法,你應該做得很好。

基本上,這是工作的一個非常配製方法。如果你遵循的編碼和代碼覆蓋的軍團,然後修復地方的覆蓋差,你應該找到它一樣容易,如果測試代碼是在類。這都是習慣 - 好習慣總比壞好:-)