0
我正在使用Java中提供的CodeModel來處理複雜的代碼生成。我設法以這種方式設置我的單元測試,以便測試生成小而功能完整的Java代碼,該代碼在內存中編譯並生成類從內存加載。如果我不輸出生成的代碼,一般情況下都是相當快的。斷言失敗時觸發函數
由於生成器代碼不知道生成的類,因此我使用反射來生成類的fire方法,該方法運行良好。這些方法也可能失敗,因爲我使用反射來確保方法確實通過檢查對象的狀態來預期工作。
我的問題是我不想記錄生成的代碼,每次測試運行。但是如果測試失敗,我想查看生成的代碼。有很多測試,並且因爲我使用了infintest,所以我的eclipse變得更慢,因爲infinitest不斷積累各種測試的輸出。
我可以設置junit,以便在測試失敗時調用我的函數嗎?例如
boolean compileSuccessful = compile();
Assert.assertTrue("Ooops, you generated bad code", compileSuccessful);
如果上述斷言失敗,我想輸出生成的代碼,看看出了什麼問題。
完美。像魅力一樣工作。謝謝。 – user937720 2013-02-13 17:40:40