在上面的代碼中,我們將生成 HTML 報告。我們也可以生成文本報告(對于提供給腳本以確定測試的覆蓋范圍是否可接受非常有用)和基于 Swing 的報告。
設置clover.classpath是必要的,以便報告生成器目標知道到哪里找到它所需要的所有類。但是,放在類路徑中的第二個 JAR 文件(velocity.jar)只有在生成 HTML 報告時才是必需的。一旦完成了上述工作,就可以用以下命令生成 Clover 報告:
$ ant with.clover compile test$ ant clover.report
就是這么簡單。請查閱流行的編碼工具 JBoss 和 Ant 的在線 Clover 報告,以獲取一些樣本輸出。(您可以在參考資料一節找到更多有關這些內容的下載信息和其它信息。)
兩種方法的結合
本文中討論的工具突出了一些可以將程序分析和單元測試一起使用的方法,以提供比單獨執行任何一種方法都更有效的不變量檢測。這些技術只代表了所有可能技術的冰山一角。
將來,其它工具可能會提供更強有力的單元測試能力。例如,類型推斷(type-inference)引擎和優化編譯器可以從現有的單元測試推斷線索、UML 生成工具可以從測試構造各種圖表(不僅是類圖)等等。對于合并這些方法以獲得更佳的代碼構建和故障診斷而言,還存在著巨大的空間可以進行創造性開發和實驗。
請記住每種方法的屬性及其長處:
單元測試能夠演示程序在特定的運行期是如何運轉的;還能說明執行的常用路徑。分析工具能夠檢查所有可能運行的程序的某些特定屬性。
每種方法的長處都可以用來彌補另一種方法的潛在弱點。
下一次,我們將研究增強的單元測試的另一條路徑,并了解一些最新的工具,它們可用于幫助您在 GUI 上開發單元測試。
參考資料 請單擊文章頂部或底部的討論參與本文的論壇。
了解所有關于 Daikon(用 C/C++ 和 Java 前端進行動態不變量檢測的原型實現)的內容,并從Daikon 網站下載它。
請查閱Clover user guide以獲取更多關于該工具的信息,該工具用來發現未被執行的代碼部分,并確定何處的代碼未經足夠測試。
Clover 與Ant(基于 Java 的構建工具)緊密地集成在一起,如果您還沒有副本,請下載一個。
JUnitDoclet是使用 XDoclet 的開放源碼單元測試生成工具。
單元測試是極端編程的關鍵實踐。在 Roy Miller 的developerWorks專欄Demystifying Extreme Programming中了解關于所有極端編程實踐的更多信息。您也可以從developerWorks Demystifying Extreme Programming論壇獲得 Roy 關于您 XP 問題的解答。
另一種開放源碼生成工具是JUB(JUnit 測試用例構建器),可從 SourceForge 獲得。
可以在JUnit 網站上找到更多擴充單元測試的工具。
Nicholas Lesiecki 在其文章“Test flexibly with AspectJ and mock objects”(developerWorks,2002 年 5 月)中介紹了關于測試用例獨立性的問題,并向我們展示了如何使用仿真對象和 AspectJ 來開發準確而又強壯的單元測試。
Erik Hatcher 在其文章“Automating the build and test process”(developerWorks,2001 年 8 月)中,向您展示了他是如何修改流行的 Ant1.3 和 JUnit 測試框架,以實現構建和測試過程的完整的、定制的自動化。
WebSphere 開發者園地在“Application Quality Assurance:Unit Testing”中提供了一篇關于用 JUnit 進行單元測試的好文章。
“Debugging and Unit-Testing Server-Side Web Applications”也來自WebSphere 開發者園地,它描述了包含迭代調試和交互式單元測試的服務器端 Web 開發方案。
下載DrJava,這是一個免費的、輕量型的開放源碼 Java IDE,具有集成的讀-計算-打。╮ead-eval-print)循環、調試器和 JUnit 支持。
閱讀 Eric Allen 的診斷 Java 代碼專欄的所有文章,包括“Designing‘testable'applications”。
在developerWorksJava 技術專區上可找到關于 Java 技術的數百篇文章和教程。
文章來源于領測軟件測試網 http://www.kjueaiud.com/