星期二, 九月 07, 2004
EMMA - opensource 的 Java code coverage 工具
EMMA - http://emma.sourceforge.net/
第一次知道 code coverage 這詞好像是因為看到一些 project 使用 Clover
不過 Clover 不是免費的,所以沒有仔細看或抓來試玩
只得到一個印象:可以用來知道 JUnit 寫的之類的測試程式,測試到了主要程式的多少部份
現在知道有個 opensource 的 EMMA, 看了它的 Quick Start 發現還可以配合這工具執行 GUI 程式
把程式的功能試一試之後,會產生記錄顯示剛才的操作(手動測試?)執行到多少部份的程式碼
有點意外可以這樣玩 ![]()
取得測試程式的測試涵蓋範圍的方法,則在 Sample Reports 的第一項 Velocity 有個簡單的執行步驟
詳細還是要看 Documentation,只是不知道我什麼時候才會用到
第一次和到目前唯一一次有寫 test,是暑假前那學期做的一個作業
寫的東西太少了,而且有時都暴力去做,懶得弄測試 ![]()
最後,
技術人部落有一篇 EMMA 的文章 - http://203.204.88.244/post/1/16
星期三, 九月 01, 2004
FindBugs - 偵測程式碼裡的潛在問題
http://findbugs.sourceforge.net/
可以找出程式碼裡可能存在的 這麼多問題
而且有多種使用方式:文字模式、GUI 模式、Ant task、Eclipse plug-in 等等
寫了一堆好文章的 Brian Goetz 在 Kill bugs dead 這篇文章裡
摘要出他以前文章談到的 Java 程式問題,然後說明 FindBugs 對這些問題的偵測
文章裡有那些舊文章的連結,還有
這裡就不列出來了
星期四, 八月 26, 2004
JDK 5.0 的好玩工具
JDK 5.0 多了不少好玩的東西
像在 command line 下打 jps 會列出 Java 行程
12063 Jps
11862 Main
10739 jedit.jar
前面的數字是 process id (pid)
用 jinfo pid 可以列出該行程的一些 Java 設定資料
jmap -histo pid 顯示這樣的東西
Object Histogram:
Size Count Class description
-------------------------------------------------------
4018800 340 int[]
412632 4287 * ConstMethodKlass
242616 4287 * MethodKlass
221776 6147 * SymbolKlass
156056 301 * ConstantPoolKlass
110128 283 * ConstantPoolCacheKlass
107480 301 * InstanceKlassKlass
67440 312 byte[]
62504 572 char[]
32384 368 java.lang.Class
25888 436 short[]
分別是各類型物件所佔記憶體大小、數量、所屬 Class (int[] 佔那麼多是因為我宣告了一個大小一百萬的陣列)
jmap -heap pid 則會顯示 heap 的相關資料
詳細資料在 http://java.sun.com/j2se/1.5.0/docs/tooldocs/index.html
最底下的兩大類 Monitoring and Management Tools 和 Troubleshooting Tools
星期五, 元月 30, 2004
Velocity 一個奇怪的結果
#set( $foo = "bar" )
$!{foo}
照文件上寫的結果應該是
$!{foo}
但實際出現的是
$!{
下載的 1.4rc1 和從 cvs build 的 1.5dev 都是這樣
