锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲欧洲无码AV不卡在线,亚洲一本到无码av中文字幕,亚洲国产精品视频http://www.tkk7.com/ghawk/category/6026.htmlzh-cnTue, 27 Feb 2007 19:07:27 GMTTue, 27 Feb 2007 19:07:27 GMT60寮婧?Java 嫻嬭瘯妗嗘灦錛堣漿錛?/title><link>http://www.tkk7.com/ghawk/archive/2006/01/10/27346.html</link><dc:creator>GHawk</dc:creator><author>GHawk</author><pubDate>Tue, 10 Jan 2006 02:41:00 GMT</pubDate><guid>http://www.tkk7.com/ghawk/archive/2006/01/10/27346.html</guid><wfw:comment>http://www.tkk7.com/ghawk/comments/27346.html</wfw:comment><comments>http://www.tkk7.com/ghawk/archive/2006/01/10/27346.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/ghawk/comments/commentRss/27346.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/ghawk/services/trackbacks/27346.html</trackback:ping><description><![CDATA[<span id="vhiogug" class=style7><span id="lszeukd" class=style7>from  <A >http://blog.csdn.net/wangyihust/archive/2006/01/02/568616.aspx</A> <div id="xtmjedg" class=story> <H2><IMG onmousewheel="return bbimg(this)" title=鐐瑰嚮鏂扮獥鍙f煡鐪嬪ぇ鍥?height=14 alt="" src="http://www.open-open.com/image/item.gif" width=13 onload="java_script_:if(this.width>600)this.width=600" border=0> <A ><FONT color=#003366>JUnit</FONT></A>  <span id="pwruhez" class=NavigationColor> </SPAN></H2> <P>JUnit鏄敱 Erich Gamma 鍜?Kent Beck 緙栧啓鐨勪竴涓洖褰掓祴璇曟鏋訛紙regression testing framework錛夈侸unit嫻嬭瘯鏄▼搴忓憳嫻嬭瘯錛屽嵆鎵璋撶櫧鐩掓祴璇曪紝鍥犱負紼嬪簭鍛樼煡閬撹嫻嬭瘯鐨勮蔣浠跺浣曪紙How錛夊畬鎴愬姛鑳藉拰瀹屾垚浠涔堟牱錛圵hat錛夌殑鍔熻兘銆侸unit鏄竴濂楁鏋訛紝緇ф壙TestCase綾伙紝灝卞彲浠ョ敤Junit榪涜鑷姩嫻嬭瘯浜嗐?</P> <P><A ><FONT color=#003366>http://www.junit.org/</FONT></A></P></DIV> <div id="ptzfaog" class=story> <H2><FONT color=#003366><IMG onmousewheel="return bbimg(this)" title=鐐瑰嚮鏂扮獥鍙f煡鐪嬪ぇ鍥?height=14 alt="" src="http://www.open-open.com/image/item.gif" width=13 onload="java_script_:if(this.width>600)this.width=600" border=0></FONT> <A ><FONT color=#003366>Cactus </FONT></A> <span id="ppocieo" class=NavigationColor> </SPAN></H2> <P>Cactus鏄竴涓熀浜嶫Unit妗嗘灦鐨勭畝鍗曟祴璇曟鏋訛紝鐢ㄦ潵鍗曞厓嫻嬭瘯鏈嶅姟绔疛ava浠g爜銆侰actus妗嗘灦鐨勪富瑕佺洰鏍囨槸鑳藉鍗曞厓嫻嬭瘯鏈嶅姟绔殑浣跨敤Servlet瀵硅薄鐨凧ava鏂規硶濡侶ttpServletRequest,HttpServletResponse,HttpSession絳夈?/P> <P><A ><FONT color=#003366>http://jakarta.apache.org/cactus/</FONT></A></P></DIV> <div id="cvqlkrn" class=story> <H2><FONT color=#003366><IMG onmousewheel="return bbimg(this)" title=鐐瑰嚮鏂扮獥鍙f煡鐪嬪ぇ鍥?height=14 alt="" src="http://www.open-open.com/image/item.gif" width=13 onload="java_script_:if(this.width>600)this.width=600" border=0></FONT> <A ><FONT color=#003366>Abbot</FONT></A>  <span id="cciofml" class=NavigationColor> </SPAN></H2> <P>Abbot鏄竴涓敤鏉ユ祴璇旿ava GUIs鐨勬鏋躲傜敤綆鍗曠殑鍩轟簬XML鐨勮剼鏈垨鑰匤ava浠g爜錛屼綘灝卞彲浠ュ紑濮嬩竴涓狦UI銆?/P> <P><A ><FONT color=#003366>http://abbot.sourceforge.net/</FONT></A></P></DIV> <div id="yrftsgj" class=story> <H2><FONT color=#003366><IMG onmousewheel="return bbimg(this)" title=鐐瑰嚮鏂扮獥鍙f煡鐪嬪ぇ鍥?height=14 alt="" src="http://www.open-open.com/image/item.gif" width=13 onload="java_script_:if(this.width>600)this.width=600" border=0></FONT> <A ><FONT color=#003366>JUnitPerf</FONT></A>  <span id="mmavmls" class=NavigationColor> </SPAN></H2> <P>Junitperf瀹為檯鏄痡unit鐨勪竴涓猟ecorator錛岄氳繃緙栧啓鐢ㄤ簬junitperf鐨勫崟鍏冩祴璇曪紝鎴戜滑涔熷彲浣挎祴璇曡繃紼嬭嚜鍔ㄥ寲銆?/P> <P><A ><FONT color=#003366>http://www.clarkware.com/software/JUnitPerf.html</FONT></A></P></DIV> <div id="nnbwcui" class=story> <H2><FONT color=#003366><IMG onmousewheel="return bbimg(this)" title=鐐瑰嚮鏂扮獥鍙f煡鐪嬪ぇ鍥?height=14 alt="" src="http://www.open-open.com/image/item.gif" width=13 onload="java_script_:if(this.width>600)this.width=600" border=0></FONT> <A ><FONT color=#003366>DbUnit</FONT></A>  <span id="pikymwo" class=NavigationColor> </SPAN></H2> <P>DbUnit鏄負鏁版嵁搴撻┍鍔ㄧ殑欏圭洰鎻愪緵鐨勪竴涓JUnit 鐨勬墿灞曪紝闄や簡鎻愪緵涓浜涘父鐢ㄥ姛鑳斤紝瀹冨彲浠ュ皢浣犵殑鏁版嵁搴撶疆浜庝竴涓祴璇曡疆鍥炰箣闂寸殑鐘舵併?</P> <P><A ><FONT color=#003366>http://dbunit.sourceforge.net/</FONT></A></P></DIV> <div id="grxwgyx" class=story> <H2><FONT color=#003366><IMG onmousewheel="return bbimg(this)" title=鐐瑰嚮鏂扮獥鍙f煡鐪嬪ぇ鍥?height=14 alt="" src="http://www.open-open.com/image/item.gif" width=13 onload="java_script_:if(this.width>600)this.width=600" border=0></FONT> <A ><FONT color=#003366>Mockrunner</FONT></A>  <span id="lxwjthk" class=NavigationColor> </SPAN></H2> <P>Mockrunner鐢ㄥ湪J2EE鐜涓繘琛屽簲鐢ㄧ▼搴忕殑鍗曞厓嫻嬭瘯銆傚畠涓嶄粎鏀寔Struts actions, servlets錛岃繃婊ゅ櫒鍜屾爣絳劇被榪樺寘鎷竴涓狫DBC鍜屼竴涓狫MS嫻嬭瘯妗嗘灦錛屽彲浠ョ敤浜庢祴璇曞熀浜嶦JB鐨勫簲鐢ㄧ▼搴忋?/P> <P><A ><FONT color=#003366>http://mockrunner.sourceforge.net/index.html</FONT></A></P></DIV> <div id="fsyvfqa" class=story> <H2><FONT color=#003366><IMG onmousewheel="return bbimg(this)" title=鐐瑰嚮鏂扮獥鍙f煡鐪嬪ぇ鍥?height=14 alt="" src="http://www.open-open.com/image/item.gif" width=13 onload="java_script_:if(this.width>600)this.width=600" border=0></FONT> <A ><FONT color=#003366>DBMonster</FONT></A>  <span id="wwvxdyq" class=NavigationColor> </SPAN></H2> <P>DBMonster鏄竴涓敤鐢熸垚闅忔満鏁版嵁鏉ユ祴璇昐QL鏁版嵁搴撶殑鍘嬪姏嫻嬭瘯宸ュ叿銆?/P> <P><A ><FONT color=#003366>http://dbmonster.kernelpanic.pl/</FONT></A></P></DIV> <div id="awcmwkg" class=story> <H2><FONT color=#003366><IMG onmousewheel="return bbimg(this)" title=鐐瑰嚮鏂扮獥鍙f煡鐪嬪ぇ鍥?height=14 alt="" src="http://www.open-open.com/image/item.gif" width=13 onload="java_script_:if(this.width>600)this.width=600" border=0></FONT> <A ><FONT color=#003366>MockEJB</FONT></A>  <span id="dsnmadk" class=NavigationColor> </SPAN></H2> <P>MockEJB鏄竴涓笉闇瑕丒JB瀹瑰櫒灝辮兘榪愯EJB騫惰繘琛屾祴璇曠殑杞婚噺綰ф鏋躲?/P> <P><A ><FONT color=#003366>http://mockejb.sourceforge.net/</FONT></A></P></DIV> <div id="hwgihvy" class=story> <H2><FONT color=#003366><IMG onmousewheel="return bbimg(this)" title=鐐瑰嚮鏂扮獥鍙f煡鐪嬪ぇ鍥?height=14 alt="" src="http://www.open-open.com/image/item.gif" width=13 onload="java_script_:if(this.width>600)this.width=600" border=0></FONT> <A ><FONT color=#003366>StrutsTestCase</FONT></A>  <span id="aavuewo" class=NavigationColor> </SPAN></H2> <P>StrutsTestCase 鏄疛unit TestCase綾葷殑鎵╁睍錛屾彁渚涘熀浜嶴truts妗嗘灦鐨勪唬鐮佹祴璇曘係trutsTestCase鍚屾椂鎻愪緵Mock 瀵硅薄鏂規硶鍜孋actus鏂規硶鐢ㄦ潵瀹為檯榪愯Struts ActionServlet錛屼綘鍙互閫氳繃榪愯servlet寮曟搸鏉ユ祴璇曘傚洜涓篠trutsTestCase浣跨敤ActionServlet鎺у埗鍣ㄦ潵嫻嬭瘯浣犵殑浠g爜錛屽洜姝や綘涓嶄粎鍙互嫻嬭瘯Action瀵硅薄鐨勫疄鐜幫紝鑰屼笖鍙互嫻嬭瘯mappings錛宖rom beans浠ュ強forwards澹版槑銆係trutsTestCase涓嶅惎鍔╯ervlet瀹瑰櫒鏉ユ祴璇晄truts搴旂敤紼嬪簭錛堝鍣ㄥ嫻嬭瘯錛変篃灞炰簬Mock瀵硅薄嫻嬭瘯錛屼絾鏄笌EasyMock涓嶅悓鐨勬槸錛孍asyMock鏄彁渚涗簡鍒涘緩Mock瀵硅薄鐨凙PI錛岃孲trutsTest鍒欐槸涓撻棬璐熻矗嫻嬭瘯Struts搴旂敤紼嬪簭鐨凪ock瀵硅薄嫻嬭瘯妗嗘灦銆?</P> <P><A ><FONT color=#003366>http://strutstestcase.sourceforge.net/</FONT></A></P></DIV> <div id="gqzaocb" class=story> <H2><FONT color=#003366><IMG onmousewheel="return bbimg(this)" title=鐐瑰嚮鏂扮獥鍙f煡鐪嬪ぇ鍥?height=14 alt="" src="http://www.open-open.com/image/item.gif" width=13 onload="java_script_:if(this.width>600)this.width=600" border=0></FONT> <A ><FONT color=#003366>JFCUnit</FONT></A>  <span id="nyiwybl" class=NavigationColor> </SPAN></H2> <P>JFCUnit浣垮緱浣犺兘澶熶負Java鍋忕Щ搴旂敤紼嬪簭緙栧啓嫻嬭瘯渚嬪瓙銆傚畠涓轟粠鐢ㄤ唬鐮佹墦寮鐨勭獥鍙d笂鑾峰緱鍙ユ焺鎻愪緵浜嗘敮鎸侊紱涓哄湪涓涓儴浠跺眰嬈″畾浣嶉儴浠舵彁渚涙敮鎸侊紱涓哄湪閮ㄤ歡涓彂璧蜂簨浠訛紙渚嬪鎸変竴涓寜閽級浠ュ強浠ョ嚎紼嬪畨鍏ㄦ柟寮忓鐞嗛儴浠舵祴璇曟彁渚涙敮鎸併?/P> <P><A ><FONT color=#003366>http://jfcunit.sourceforge.net/</FONT></A></P></DIV> <div id="gkfwgjq" class=story> <H2><FONT color=#003366><IMG onmousewheel="return bbimg(this)" title=鐐瑰嚮鏂扮獥鍙f煡鐪嬪ぇ鍥?height=14 alt="" src="http://www.open-open.com/image/item.gif" width=13 onload="java_script_:if(this.width>600)this.width=600" border=0></FONT> <A ><FONT color=#003366>JTestCase</FONT></A>  <span id="ewkfaor" class=NavigationColor> </SPAN></H2> <P>JTestCase 浣跨敤XML鏂囦歡鏉ョ粍緇囧嫻嬭瘯妗堜緥鏁版嵁錛屽0鏄庢潯浠訛紙鎿嶄綔鍜屾湡鏈涚殑緇撴灉錛夛紝鎻愪緵浜嗕竴濂楁槗浜庝嬌鐢ㄧ殑鏂規硶鏉ユ绱ML涓殑嫻嬭瘯妗堜緥錛屾寜鐓ф暟鎹枃浠剁殑瀹氫箟鏉ュ0鏄庣粨鏋溿?/P> <P><A ><FONT color=#003366>http://jtestcase.sourceforge.net/</FONT></A></P></DIV> <div id="rgqagnf" class=story> <H2><FONT color=#003366><IMG onmousewheel="return bbimg(this)" title=鐐瑰嚮鏂扮獥鍙f煡鐪嬪ぇ鍥?height=14 alt="" src="http://www.open-open.com/image/item.gif" width=13 onload="java_script_:if(this.width>600)this.width=600" border=0></FONT> <A ><FONT color=#003366>SQLUnit</FONT></A>  <span id="iisymlo" class=NavigationColor> </SPAN></H2> <P>SQLUnit鏄竴涓崟鍏冩祴璇曟鏋訛紝鐢ㄤ簬瀵規暟鎹簱瀛樺偍榪囩▼榪涜鍥炲綊嫻嬭瘯銆傜敤 Java/JUnit/XML寮鍙戙?</P> <P><A ><FONT color=#003366>http://sqlunit.sourceforge.net</FONT></A></P></DIV> <div id="yymhgum" class=story> <H2><FONT color=#003366><IMG onmousewheel="return bbimg(this)" title=鐐瑰嚮鏂扮獥鍙f煡鐪嬪ぇ鍥?height=14 alt="" src="http://www.open-open.com/image/item.gif" width=13 onload="java_script_:if(this.width>600)this.width=600" border=0></FONT> <A ><FONT color=#003366>JTR</FONT></A>  <span id="rgisgyq" class=NavigationColor> </SPAN></H2> <P>JTR (Java Test Runner)鏄竴涓紑婧愮殑鍩轟簬鍙嶈漿鎺у埗(IOC)鐨凧2EE嫻嬭瘯妗嗘灦銆傚畠鍏佽浣犳瀯寤哄鏉傜殑J2EE嫻嬭瘯濂椾歡(Test Suites)騫惰繛鍒板簲鐢ㄦ湇鍔″櫒鎵ц嫻嬭瘯,鍙互鍖呮嫭澶氫釜嫻嬭瘯瀹炰緥銆侸TR鐨刲icensed鏄疓PL鍗忚銆?/P> <P><A ><FONT color=#003366>http://jtrunner.sourceforge.net/</FONT></A></P></DIV> <div id="fqhcumt" class=story> <H2><FONT color=#003366><IMG onmousewheel="return bbimg(this)" title=鐐瑰嚮鏂扮獥鍙f煡鐪嬪ぇ鍥?height=14 alt="" src="http://www.open-open.com/image/item.gif" width=13 onload="java_script_:if(this.width>600)this.width=600" border=0></FONT> <A ><FONT color=#003366>Marathon</FONT></A>  <span id="ttwkqil" class=NavigationColor> </SPAN></H2> <P>Marathon鏄竴涓拡瀵逛嬌鐢↗ava/Swing寮鍙慓UI搴旂敤紼嬪簭鐨勬祴璇曟鏋訛紝瀹冪敱recorder, runner 鍜?editor緇勬垚錛屾祴璇曡剼鏈槸python浠g爜銆侻arathon鐨勭劍鐐規槸鏀懼湪鏈緇堢敤鎴風殑嫻嬭瘯涓娿?/P> <P><A ><FONT color=#003366>http://marathonman.sourceforge.net</FONT></A></P></DIV> <div id="ooftkjm" class=story> <H2><FONT color=#003366><IMG onmousewheel="return bbimg(this)" title=鐐瑰嚮鏂扮獥鍙f煡鐪嬪ぇ鍥?height=14 alt="" src="http://www.open-open.com/image/item.gif" width=13 onload="java_script_:if(this.width>600)this.width=600" border=0></FONT> <A ><FONT color=#003366>TestNG</FONT></A>  <span id="gvmhybi" class=NavigationColor> </SPAN></H2> <P>TestNG鏄牴鎹甁Unit 鍜?NUnit鎬濇兂鑰屾瀯寤虹殑涓涓祴璇曟鏋訛紝浣嗘槸TestNG澧炲姞浜嗚澶氭柊鐨勫姛鑳戒嬌寰楀畠鍙樺緱鏇村姞寮哄ぇ涓庡鏄撲嬌鐢ㄦ瘮濡傦細<BR>*鏀寔JSR 175娉ㄩ噴錛圝DK 1.4鍒╃敤JavaDoc娉ㄩ噴鍚屾牱涔熸敮鎸侊級<BR>*鐏墊椿鐨凾est閰嶇疆<BR>*鏀寔榛樿鐨剅untime鍜宭ogging JDK鍔熻兘<BR>*寮哄ぇ鐨勬墽琛屾ā鍨嬶紙涓嶅啀TestSuite錛?BR>*鏀寔鐙珛鐨勬祴璇曟柟娉曘?/P> <P><A ><FONT color=#003366>http://testng.org/</FONT></A></P></DIV> <div id="tenkycn" class=story> <H2><FONT color=#003366><IMG onmousewheel="return bbimg(this)" title=鐐瑰嚮鏂扮獥鍙f煡鐪嬪ぇ鍥?height=14 alt="" src="http://www.open-open.com/image/item.gif" width=13 onload="java_script_:if(this.width>600)this.width=600" border=0></FONT> <A ><FONT color=#003366>Surrogate Test framework</FONT></A>  <span id="evqkoin" class=NavigationColor> </SPAN></H2> <P>Surrogate Test framework鏄竴涓煎緱縐拌禐鍗曞厓嫻嬭瘯妗嗘灦錛岀壒鍒傚悎浜庡ぇ鍨嬶紝澶嶆潅Java緋葷粺鐨勫崟鍏冩祴璇曘傝繖涓鏋惰兘涓嶫Unit,MockEJB鍜屽悇縐嶆敮鎸佹ā鎷熷璞★紙mock object 錛夌殑嫻嬭瘯宸ュ叿鏃犵紳緇欏悎銆傝繖涓鏋跺熀浜嶢spectJ鎶鏈? <P><A ><FONT color=#003366>http://surrogate.sourceforge.net</FONT></A></P></DIV> <div id="skjavvf" class=story> <H2><FONT color=#003366><IMG onmousewheel="return bbimg(this)" title=鐐瑰嚮鏂扮獥鍙f煡鐪嬪ぇ鍥?height=14 alt="" src="http://www.open-open.com/image/item.gif" width=13 onload="java_script_:if(this.width>600)this.width=600" border=0></FONT> <A ><FONT color=#003366>MockCreator</FONT></A>  <span id="wsgmadk" class=NavigationColor> </SPAN></H2> <P>MockCreator鍙互涓虹粰瀹氱殑interface鎴朿lass鐢熸垚妯℃嫙瀵硅薄錛圡ock object錛夌殑婧愮爜銆?/P> <P><A ><FONT color=#003366>http://mockcreator.sourceforge.net/</FONT></A></P></DIV> <div id="oontzyf" class=story> <H2><FONT color=#003366><IMG onmousewheel="return bbimg(this)" title=鐐瑰嚮鏂扮獥鍙f煡鐪嬪ぇ鍥?height=14 alt="" src="http://www.open-open.com/image/item.gif" width=13 onload="java_script_:if(this.width>600)this.width=600" border=0></FONT> <A ><FONT color=#003366>jMock</FONT></A>  <span id="aeocmeh" class=NavigationColor> </SPAN></H2> <P>jMock鍒╃敤mock objects鎬濇兂鏉ュJava code榪涜嫻嬭瘯銆俲Mock鍏鋒湁浠ヤ笅鐗圭偣:瀹規槗鎵╁睍錛岃浣犲揩閫熺畝鍗曞湴瀹氫箟mock objects,鍥犳涓嶅繀鎵撶牬紼嬪簭闂寸殑鍏寵仈錛岃浣犲畾涔夌伒媧葷殑瓚呰秺瀵硅薄涔嬮棿浜や簰浣滅敤鑰屽甫鏉ユ祴璇曞眬闄愶紝鍑忓皯浣犳祴璇曞湴鑴嗗急鎬с?/P> <P><A ><FONT color=#003366>http://www.jmock.org/</FONT></A></P></DIV> <div id="ogjesry" class=story> <H2><FONT color=#003366><IMG onmousewheel="return bbimg(this)" title=鐐瑰嚮鏂扮獥鍙f煡鐪嬪ぇ鍥?height=14 alt="" src="http://www.open-open.com/image/item.gif" width=13 onload="java_script_:if(this.width>600)this.width=600" border=0></FONT> <A ><FONT color=#003366>EasyMock</FONT></A>  <span id="eavmwwc" class=NavigationColor> </SPAN></H2> <P>EasyMock涓篗ock Objects鎻愪緵鎺ュ彛騫跺湪JUnit嫻嬭瘯涓埄鐢↗ava鐨刾roxy璁捐妯″紡鐢熸垚瀹冧滑鐨勫疄渚嬨侲asyMock鏈閫傚悎浜庢祴璇曢┍鍔ㄥ紑鍙戙?/P> <P><A ><FONT color=#003366>http://www.easymock.org/</FONT></A></P></DIV> <div id="aazqesr" class=story> <H2><FONT color=#003366><IMG onmousewheel="return bbimg(this)" title=鐐瑰嚮鏂扮獥鍙f煡鐪嬪ぇ鍥?height=14 alt="" src="http://www.open-open.com/image/item.gif" width=13 onload="java_script_:if(this.width>600)this.width=600" border=0></FONT> <A ><FONT color=#003366>The Grinder</FONT></A>  <span id="exdytsk" class=NavigationColor> </SPAN></H2> <P>The Grinder鏄竴涓礋杞芥祴璇曟鏋躲傚湪BSD寮婧愬崗璁笅鍏嶈垂浣跨敤銆?/P> <P><A ><FONT color=#003366>http://grinder.sourceforge.net/</FONT></A></P></DIV> <div id="vvuwcjf" class=story> <H2><FONT color=#003366><IMG onmousewheel="return bbimg(this)" title=鐐瑰嚮鏂扮獥鍙f煡鐪嬪ぇ鍥?height=14 alt="" src="http://www.open-open.com/image/item.gif" width=13 onload="java_script_:if(this.width>600)this.width=600" border=0></FONT> <A ><FONT color=#003366>XMLUnit</FONT></A>  <span id="xlrfelz" class=NavigationColor> </SPAN></H2> <P>XMLUnit涓嶄粎鏈塉ava鐗堟湰鐨勮繕鏈?Net鐗堟湰鐨勩侸ava寮鍙戠殑XMLUnit鎻愪緵浜嗕袱涓狫Unit 鎵╁睍綾籜MLAssert鍜孹MLTestCase,鍜屼竴緇勬敮鎸佺殑綾匯傝繖浜涚被鍙互鐢ㄦ潵姣旇緝涓ゅ紶XML涔嬮棿鐨勪笉鍚屼箣澶勶紝灞曠ずXML鍒╃敤XSLT鏉?鏍¢獙XML,姹傚緱XPath琛ㄨ揪寮忓湪XML涓殑鍊?閬嶅巻XML涓殑鏌愪竴鑺傜偣鍒〥OM灞曞紑銆?/P> <P><A ><FONT color=#003366>http://xmlunit.sourceforge.net/</FONT></A></P></DIV> <div id="qqpdcma" class=story> <H2><FONT color=#003366><IMG onmousewheel="return bbimg(this)" title=鐐瑰嚮鏂扮獥鍙f煡鐪嬪ぇ鍥?height=14 alt="" src="http://www.open-open.com/image/item.gif" width=13 onload="java_script_:if(this.width>600)this.width=600" border=0></FONT> <A ><FONT color=#003366>Jameleon</FONT></A>  <span id="dcpuazy" class=NavigationColor> </SPAN></H2> <P>Jameleon涓涓嚜鍔ㄥ寲嫻嬭瘯宸ュ叿銆傚畠琚敤鏉ユ祴璇曞悇縐嶅悇鏍風殑搴旂敤紼嬪簭錛屾墍浠ュ畠琚璁℃垚鎻掍歡妯″紡銆備負浜嗕嬌鏁翠釜嫻嬭瘯榪囩▼鍙樺緱綆鍗旿ameleon鎻愪緵浜嗕竴涓狦UI,鍥犳Jameleon瀹炵幇浜嗕竴涓猄wing 鎻掍歡銆?/P> <P><A ><FONT color=#003366>http://jameleon.sourceforge.net/index.html</FONT></A></P></DIV> <div id="jqlcbea" class=story> <H2><FONT color=#003366><IMG onmousewheel="return bbimg(this)" title=鐐瑰嚮鏂扮獥鍙f煡鐪嬪ぇ鍥?height=14 alt="" src="http://www.open-open.com/image/item.gif" width=13 onload="java_script_:if(this.width>600)this.width=600" border=0></FONT> <A ><FONT color=#003366>J2MEUnit</FONT></A>  <span id="alcecft" class=NavigationColor> </SPAN></H2> <P>J2MEUnit鏄簲鐢ㄥ湪J2ME搴旂敤紼嬪簭鐨勪竴涓崟鍏冩祴璇曟鏋躲傚畠鍩轟簬JUnit銆?/P> <P><A ><FONT color=#003366>http://j2meunit.sourceforge.net/</FONT></A></P></DIV> <H2 class=story><FONT color=#003366><IMG onmousewheel="return bbimg(this)" title=鐐瑰嚮鏂扮獥鍙f煡鐪嬪ぇ鍥?height=14 alt="" src="http://www.open-open.com/image/item.gif" width=13 onload="java_script_:if(this.width>600)this.width=600" border=0></FONT> <A ><FONT color=#003366>Jetif</FONT></A>  <span id="alkfldk" class=NavigationColor> </SPAN></H2> <P class=story><span id="wlcxwvu" class=NavigationColor></SPAN><FONT size=3>Jetif鏄竴涓敤綰疛ava瀹炵幇鐨勫洖褰掓祴璇曟鏋躲傚畠涓篔ava紼嬪簭鍗曞厓嫻嬭瘯浠ュ強鍔熻兘嫻嬭瘯鎻愪緵浜嗕竴涓畝鍗曡屼笖鍙?浼哥緝鐨勬灦鏋勶紝鍙互鐢ㄤ簬涓漢寮鍙戞垨浼佷笟綰у紑鍙戠殑嫻嬭瘯銆傚畠瀹規槗浣跨敤錛屽姛鑳藉己澶э紝鑰屼笖鎷ユ湁涓浜涗紒涓氱駭嫻嬭瘯鐨勯噸瑕佸姛鑳姐侸etif鏉ユ簮浜嶫Unit, JTestCase浠ュ強TestNG鐨勫惎鍙戯紝鏈夊嚑涓熀鏈殑姒傚康鐩存帴鏉ヨ嚜浜嶫Unit錛?姣斿璇存柇璦鏈哄埗錛孴est Listener鐨勬蹇碉紝鍥犳浠嶫Unit杞埌Jetif鏄潪甯稿鏄撶殑銆?/FONT></P> <P class=story><A ><FONT color=#003366>http://jetif.sourceforge.net/</FONT></A></P> <H2 class=story><FONT size=2><FONT color=#003366><IMG onmousewheel="return bbimg(this)" title=鐐瑰嚮鏂扮獥鍙f煡鐪嬪ぇ鍥?height=14 alt="" src="http://www.open-open.com/image/item.gif" width=13 onload="java_script_:if(this.width>600)this.width=600" border=0></FONT> </FONT><A ><FONT color=#003366>GroboUtils</FONT></A><FONT size=2>  <span id="tpzyipb" class=NavigationColor> </SPAN></FONT></H2> <P class=story><span id="xizutni" class=NavigationColor></SPAN><FONT size=3>GroboUtils浣垮緱鎵╁睍Java嫻嬭瘯鍙樺緱鍙兘銆傚畠鍖呮嫭鐢ㄥ湪Java涓嶅悓鏂歸潰嫻嬭瘯鐨勫涓瓙欏圭洰銆傚湪GroboUtils涓渶甯歌鍒扮殑宸ュ叿鏄?澶氱嚎紼嬫祴璇?multi-threaded tests),鏁翠綋鍗曞厓嫻嬭瘯(hierarchial unit tests),浠g爜瑕嗙洊宸ュ叿(code coverage tool)銆?/FONT></P> <P class=story><A ><FONT color=#003366>http://groboutils.sourceforge.net/</FONT></A></P> <H2 class=story><FONT size=2><FONT color=#003366><IMG onmousewheel="return bbimg(this)" title=鐐瑰嚮鏂扮獥鍙f煡鐪嬪ぇ鍥?height=14 alt="" src="http://www.open-open.com/image/item.gif" width=13 onload="java_script_:if(this.width>600)this.width=600" border=0></FONT> </FONT><A ><FONT color=#003366>Testare</FONT></A><FONT size=2>  <span id="aaouiak" class=NavigationColor> </SPAN></FONT></H2> <P class=story><span id="qfantwz" class=NavigationColor></SPAN><FONT size=3>TESTARE鏄敤鏉ョ畝鍖栧垎甯冨紡搴旂敤紼嬪簭(姣斿:鍦⊿ERVLETS,JMS listeners, CORBA ORBs鎴朢MI鐜涓?嫻嬭瘯寮鍙戣繃紼嬬殑涓涓祴璇曟鏋躲?/FONT></P> <P class=story><A ><FONT color=#003366>https://testare.dev.java.net/</FONT></A></P></SPAN></SPAN><img src ="http://www.tkk7.com/ghawk/aggbug/27346.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/ghawk/" target="_blank">GHawk</a> 2006-01-10 10:41 <a href="http://www.tkk7.com/ghawk/archive/2006/01/10/27346.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鐢?Cobertura 嫻嬮噺嫻嬭瘯瑕嗙洊鐜?/title><link>http://www.tkk7.com/ghawk/archive/2005/12/17/24331.html</link><dc:creator>GHawk</dc:creator><author>GHawk</author><pubDate>Sat, 17 Dec 2005 03:23:00 GMT</pubDate><guid>http://www.tkk7.com/ghawk/archive/2005/12/17/24331.html</guid><wfw:comment>http://www.tkk7.com/ghawk/comments/24331.html</wfw:comment><comments>http://www.tkk7.com/ghawk/archive/2005/12/17/24331.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/ghawk/comments/commentRss/24331.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/ghawk/services/trackbacks/24331.html</trackback:ping><description><![CDATA[<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR vAlign=top> <TD width="100%"> <H1><A ><FONT size=3>http://www-128.ibm.com/developerworks/cn/java/j-cobertura/</FONT></A></H1> <H1>鐢?Cobertura 嫻嬮噺嫻嬭瘯瑕嗙洊鐜?/H1> <P id=subtitle>鎵懼嚭闅愯棌 bug 鐨勬湭嫻嬭瘯鍒扮殑浠g爜</P><IMG class=display-img height=6 alt="" src="http://www.ibm.com/i/c.gif" width=1></TD> <TD class=no-print width=192><IMG height=18 alt=developerWorks src="http://www-128.ibm.com/developerworks/i/dw.gif" width=192></TD></TR></TBODY></TABLE> <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR vAlign=top> <TD width=10><IMG height=1 alt="" src="http://www.ibm.com/i/c.gif" width=10></TD> <TD width="100%"> <TABLE class=no-print cellSpacing=0 cellPadding=0 width=160 align=right border=0> <TBODY> <TR> <TD width=10><IMG height=1 alt="" src="http://www.ibm.com/i/c.gif" width=10></TD> <TD> <TABLE cellSpacing=0 cellPadding=0 width=150 border=0> <TBODY> <TR> <TD class=v14-header-1-small>鏂囨。閫夐」</TD></TR></TBODY></TABLE> <TABLE class=v14-gray-table-border cellSpacing=0 cellPadding=0 border=0> <TBODY> <TR> <TD class=no-padding width=150> <TABLE cellSpacing=0 cellPadding=0 width=143 border=0><IMG height=1 alt="" src="http://www.ibm.com/i/c.gif" width=8> <FORM name=email action=https://www-130.ibm.com/developerworks/secure/email-it.jsp><INPUT type=hidden value="Cobertura 鏄竴縐嶅紑婧愬伐鍏鳳紝瀹冮氳繃媯嫻嬪熀鏈殑浠g爜錛屽茍瑙傚療鍦ㄦ祴璇曞寘榪愯鏃舵墽琛屼簡鍝簺浠g爜鍜屾病鏈夋墽琛屽摢浜涗唬鐮侊紝鏉ユ祴閲忔祴璇曡鐩栫巼銆傞櫎浜嗘壘鍑烘湭嫻嬭瘯鍒扮殑浠g爜騫跺彂鐜?bug 澶栵紝Cobertura 榪樺彲浠ラ氳繃鏍囪鏃犵敤鐨勩佹墽琛屼笉鍒扮殑浠g爜鏉ヤ紭鍖栦唬鐮侊紝榪樺彲浠ユ彁渚?API 瀹為檯鎿嶄綔鐨勫唴閮ㄤ俊鎭侲lliotte Rusty Harold 灝嗕笌鎮ㄥ垎浜浣曞埄鐢ㄤ唬鐮佽鐩栫巼鐨勬渶浣沖疄璺墊潵浣跨敤 Cobertura銆? name=body><INPUT type=hidden value="鐢?Cobertura 嫻嬮噺嫻嬭瘯瑕嗙洊鐜? name=subject><INPUT type=hidden value=cn name=lang> <SCRIPT language=JavaScript type=text/javascript> <!-- document.write('<tr valign="top"><td width="8"><img src="http://www.ibm.com/i/c.gif" width="8" height="1" alt=""/></td><td width="16"><img src="http://www.ibm.com/i/v14/icons/em.gif" height="16" width="16" vspace="3" alt="灝嗘欏典綔涓虹數瀛愰偖浠跺彂閫? /></td><td width="122"><p><a class="smallplainlink" href="javascript:document.email.submit();"><b>灝嗘欏典綔涓虹數瀛愰偖浠跺彂閫?/b></a></p></td></tr>'); //--> </SCRIPT> <TBODY> <TR vAlign=top> <TD width=8><IMG height=1 alt="" src="http://www.ibm.com/i/c.gif" width=8></TD> <TD width=16><IMG height=16 alt=灝嗘欏典綔涓虹數瀛愰偖浠跺彂閫?src="http://www.ibm.com/i/v14/icons/em.gif" width=16 vspace=3></TD> <TD width=122> <P><A class=smallplainlink href="javascript:document.email.submit();"><B><FONT color=#5c81a7 size=2>灝嗘欏典綔涓虹數瀛愰偖浠跺彂閫?/FONT></B></A></P></TD></TR><NOSCRIPT><tr valign="top"><td width="8"><img alt="" height="1" width="8" src="http://www.ibm.com/i/c.gif"/></td><td width="16"><img alt="" width="16" height="16" src="http://www.ibm.com/i/c.gif"/></td><td class="small" width="122"><p><span id="rnbwvup" class="ast">鏈樉紺洪渶瑕?JavaScript 鐨勬枃妗i夐」</span></p></td></tr></NOSCRIPT></FORM></TBODY></TABLE></TD></TR></TBODY></TABLE><BR> <TABLE cellSpacing=0 cellPadding=0 width=150 border=0> <TBODY> <TR> <TD class=v14-header-1-small>瀵規欏電殑璇勪環</TD></TR></TBODY></TABLE> <TABLE class=v14-gray-table-border cellSpacing=0 cellPadding=0 border=0> <TBODY> <TR> <TD class=no-padding width=150> <TABLE cellSpacing=0 cellPadding=0 width=143 border=0> <TBODY> <TR vAlign=top> <TD width=8><IMG height=1 alt="" src="http://www.ibm.com/i/c.gif" width=8></TD> <TD><IMG height=16 alt="" src="http://www.ibm.com/i/v14/icons/d_bold.gif" width=16 vspace=3 border=0></TD> <TD width=125> <P><A class=smallplainlink ><B><FONT color=#996699 size=2>甯姪鎴戜滑鏀硅繘榪欎簺鍐呭</FONT></B></A></P></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE><BR></TD></TR></TBODY></TABLE> <P>綰у埆: 鍒濈駭</P> <P><A ><FONT color=#996699>Elliotte Rusty Harold</FONT></A>, 鍓暀鎺? Polytechnic University<BR></P> <P>2005 騫?5 鏈?26 鏃?/P> <BLOCKQUOTE>Cobertura 鏄竴縐嶅紑婧愬伐鍏鳳紝瀹冮氳繃媯嫻嬪熀鏈殑浠g爜錛屽茍瑙傚療鍦ㄦ祴璇曞寘榪愯鏃舵墽琛屼簡鍝簺浠g爜鍜屾病鏈夋墽琛屽摢浜涗唬鐮侊紝鏉ユ祴閲忔祴璇曡鐩栫巼銆傞櫎浜嗘壘鍑烘湭嫻嬭瘯鍒扮殑浠g爜騫跺彂鐜?bug 澶栵紝Cobertura 榪樺彲浠ラ氳繃鏍囪鏃犵敤鐨勩佹墽琛屼笉鍒扮殑浠g爜鏉ヤ紭鍖栦唬鐮侊紝榪樺彲浠ユ彁渚?API 瀹為檯鎿嶄綔鐨勫唴閮ㄤ俊鎭侲lliotte Rusty Harold 灝嗕笌鎮ㄥ垎浜浣曞埄鐢ㄤ唬鐮佽鐩栫巼鐨勬渶浣沖疄璺墊潵浣跨敤 Cobertura銆?/BLOCKQUOTE> <P>灝界嫻嬭瘯鍏堣緙栫▼錛坱est-first programming錛夊拰鍗曞厓嫻嬭瘯宸蹭笉鑳界畻鏄柊姒傚康錛屼絾嫻嬭瘯椹卞姩鐨勫紑鍙戜粛鐒舵槸榪囧幓 10 騫翠腑鏈閲嶈鐨勭紪紼嬪垱鏂般傛渶濂界殑涓浜涚紪紼嬩漢鍛樺湪榪囧幓鍗婁釜涓栫邯涓竴鐩村湪浣跨敤榪欎簺鎶鏈紝涓嶈繃錛屽彧鏄湪鏈榪戝嚑騫達紝榪欎簺鎶鏈墠琚箍娉涘湴瑙嗕負鍦ㄦ椂闂村強鎴愭湰棰勭畻鍐呭紑鍙戝仴澹殑鏃犵己闄瘋蔣浠剁殑鍏抽敭鎵鍦ㄣ備絾鏄紝嫻嬭瘯椹卞姩鐨勫紑鍙戜笉鑳借秴榪囨祴璇曟墍鑳借揪鍒扮殑紼嬪害銆傛祴璇曟敼榪涗簡浠g爜璐ㄩ噺錛屼絾榪欎篃鍙槸閽堝瀹為檯嫻嬭瘯鍒扮殑閭i儴鍒嗕唬鐮佽岃█鐨勩傛偍闇瑕佹湁涓涓伐鍏峰憡璇夋偍紼嬪簭鐨勫摢浜涢儴鍒嗘病鏈夋祴璇曞埌錛岃繖鏍峰氨鍙互閽堝榪欎簺閮ㄥ垎緙栧啓嫻嬭瘯浠g爜騫舵壘鍑烘洿澶?bug銆?</P> <P>Mark Doliner 鐨?Cobertura 錛?I>cobertura</I> 鍦ㄨタ鐝墮璇槸瑕嗙洊鐨勬剰鎬濓級鏄畬鎴愯繖欏逛換鍔$殑涓涓厤璐?GPL 宸ュ叿銆侰obertura 閫氳繃鐢ㄩ澶栫殑璇彞璁板綍鍦ㄦ墽琛屾祴璇曞寘鏃訛紝鍝簺琛岃嫻嬭瘯鍒般佸摢浜涜娌℃湁琚祴璇曞埌錛岄氳繃榪欑鏂瑰紡鏉ュ害閲忓瓧鑺傜爜錛屼互渚垮嫻嬭瘯榪涜鐩戣銆傜劧鍚庡畠鐢熸垚涓涓?HTML 鎴栬?XML 鏍煎紡鐨勬姤鍛婏紝鎸囧嚭浠g爜涓殑鍝簺鍖呫佸摢浜涚被銆佸摢浜涙柟娉曞拰鍝簺琛屾病鏈夋祴璇曞埌銆傚彲浠ラ拡瀵硅繖浜涚壒瀹氱殑鍖哄煙緙栧啓鏇村鐨勬祴璇曚唬鐮侊紝浠ュ彂鐜版墍鏈夐殣钘忕殑 bug銆?</P> <P><A name=N10074><span id="iekypdc" class=atitle><FONT face=Arial size=4>闃呰 Cobertura 杈撳嚭</FONT></SPAN></A></P> <P>鎴戜滑棣栧厛鏌ョ湅鐢熸垚鐨?Cobertura 杈撳嚭銆傚浘 1 鏄劇ず浜嗗 Jaxen 嫻嬭瘯鍖呰繍琛?Cobertura 鐢熸垚鐨勬姤鍛婏紙璇峰弬闃?<A ><FONT color=#996699>鍙傝冭祫鏂?/FONT></A>錛夈備粠璇ユ姤鍛婁腑錛屽彲浠ョ湅鍒頒粠寰堝ソ錛堝湪 <CODE>org.jaxen.expr.iter</CODE> 鍖呬腑鍑犱箮鏄?100%錛夊埌鏋佸樊錛堝湪 <CODE>org.jaxen.dom.html</CODE> 涓畬鍏ㄦ病鏈夎鐩栵級鐨勮鐩栫巼緇撴灉銆?/P><BR><A name=N1008B><B>鍥?1. Jaxen 鐨勫寘綰у埆瑕嗙洊鐜囩粺璁℃暟鎹?/B></A><BR><IMG height=490 alt="" hspace=5 src="http://www-128.ibm.com/developerworks/cn/java/j-cobertura/overview.jpg" width=676 vspace=5 border=0> <BR> <P>Cobertura 閫氳繃琚祴璇曠殑琛屾暟鍜岃嫻嬭瘯鐨勫垎鏀暟鏉ヨ綆楄鐩栫巼銆傜涓嬈℃祴璇曟椂錛屼袱縐嶆祴璇曟柟娉曚箣闂寸殑宸埆騫朵笉鏄緢閲嶈銆侰obertura 榪樹負綾昏綆楀鉤鍧?McCabe 澶嶆潅搴︼紙璇峰弬闃?<A ><FONT color=#996699>鍙傝冭祫鏂?/FONT></A>錛夈?/P> <P>鍙互娣卞叆鎸栨帢 HTML 鎶ュ憡錛屼簡瑙g壒瀹氬寘鎴栬呯被鐨勮鐩栫巼銆傚浘 2 鏄劇ず浜?<CODE>org.jaxen.function</CODE> 鍖呯殑瑕嗙洊鐜囩粺璁°傚湪榪欎釜鍖呬腑錛岃鐩栫巼鐨勮寖鍥翠粠 <CODE>SumFunction</CODE> 綾葷殑 100% 鍒?<CODE>IdFunction</CODE> 綾葷殑浠呬負 5%銆?/P><BR><A name=N100B5><B>鍥?2. org.jaxen.function 鍖呬腑鐨勪唬鐮佽鐩栫巼</B></A><BR><IMG height=490 alt="" hspace=5 src="http://www-128.ibm.com/developerworks/cn/java/j-cobertura/package.jpg" width=676 vspace=5 border=0> <BR> <P>榪涗竴姝ユ繁鍏ュ埌鍗曠嫭鐨勭被涓紝鍏蜂綋鏌ョ湅鍝竴琛屼唬鐮佹病鏈夋祴璇曞埌銆傚浘 3 鏄劇ず浜?<CODE>NameFunction</CODE> 綾諱腑鐨勯儴鍒嗚鐩栫巼銆傛渶宸﹁竟涓鏍忔樉紺鴻鍙楓傚悗涓鏍忔樉紺轟簡鎵ц嫻嬭瘯鏃惰繖涓琛岃鎵ц鐨勬鏁般傚彲浠ョ湅鍑猴紝絎?112 琛岃鎵ц浜?100 嬈★紝絎?114 琛岃鎵ц浜?28 嬈°傜敤綰㈣壊紿佸嚭鏄劇ず鐨勯偅浜涜鍒欐牴鏈病鏈夋祴璇曞埌銆傝繖涓姤鍛婅〃鏄庯紝铏界劧浠庢諱綋涓婅璇ユ柟娉曡嫻嬭瘯鍒頒簡錛屼絾瀹為檯涓婅繕鏈夎澶氬垎鏀病鏈夋祴璇曞埌銆?</P><BR><A name=N100D0><B>鍥?3. NameFunction 綾諱腑鐨勪唬鐮佽鐩栫巼</B></A><BR><IMG height=590 alt="" hspace=5 src="http://www-128.ibm.com/developerworks/cn/java/j-cobertura/class.jpg" width=676 vspace=5 border=0> <BR> <TABLE cellSpacing=0 cellPadding=0 width="40%" align=right border=0> <TBODY> <TR> <TD width=10><IMG height=1 alt="" src="http://www.ibm.com/i/c.gif" width=10></TD> <TD> <TABLE cellSpacing=0 cellPadding=5 width="100%" border=1> <TBODY> <TR> <TD bgColor=#eeeeee> <P>Cobertura 鏄?jcoverage 鐨勫垎鏀紙璇峰弬闃?<A ><FONT color=#996699>鍙傝冭祫鏂?/FONT></A>錛夈侴PL 鐗堟湰鐨?jcoverage 宸茬粡鏈変竴騫存病鏈夋洿鏂拌繃浜嗭紝騫朵笖鏈変竴浜涢暱鏈熷瓨鍦ㄧ殑 bug錛孋obertura 淇浜嗚繖浜?bug銆傚師鏉ョ殑閭d簺 jcoverage 寮鍙戜漢鍛樹笉鍐嶇戶緇紑鍙戝紑鏀炬簮鐮侊紝浠栦滑杞悜寮鍙?jcoverage 鐨勫晢涓氱増鍜?jcoverage+錛宩coverage+ 鏄竴涓粠鍚屼竴浠g爜鍩虹涓彂灞曞嚭鏉ョ殑灝侀棴婧愪唬鐮佷駭鍝併傚紑鏀炬簮鐮佺殑濂囧涔嬪鍦ㄤ簬錛氫竴涓駭鍝佷笉浼氬洜涓哄師寮鍙戜漢鍛樺喅瀹氳浠栦滑鐨勫伐浣滆幏寰楃浉搴旂殑鎶ラ叕鑰屾秷浜°?</P></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE> <P><A name=N100EC><span id="frbpvnu" class=smalltitle><STRONG><FONT face=Arial>紜閬楁紡鐨勬祴璇?/FONT></STRONG></SPAN></A></P> <P>鍒╃敤 Cobertura 鎶ュ憡錛屽彲浠ユ壘鍑轟唬鐮佷腑鏈祴璇曠殑閮ㄥ垎騫墮拡瀵瑰畠浠紪鍐欐祴璇曘備緥濡傦紝鍥?3 鏄劇ず Jaxen 闇瑕佽繘琛屼竴浜涙祴璇曪紝榪愮敤 <CODE>name()</CODE> 鍑芥暟瀵規枃瀛楄妭鐐廣佹敞閲婅妭鐐廣佸鐞嗘寚浠よ妭鐐廣佸睘鎬ц妭鐐瑰拰鍚嶇О絀洪棿鑺傜偣榪涜嫻嬭瘯銆?</P> <P>濡傛灉鏈夎澶氭湭瑕嗙洊鐨勪唬鐮侊紝鍍?Cobertura 鍦ㄨ繖閲屾姤鍛婄殑閭f牱錛岄偅涔堟坊鍔犳墍鏈夌己灝戠殑嫻嬭瘯灝嗕細闈炲父鑰楁椂錛屼絾涔熸槸鍊煎緱鐨勩備笉涓瀹氳涓嬈″畬鎴愬畠銆傛偍鍙互浠庤嫻嬭瘯鐨勬渶灝戠殑浠g爜寮濮嬶紝姣斿閭d簺鎵鏈夋病鏈夎鐩栫殑鍖呫傚湪嫻嬭瘯鎵鏈夌殑鍖呬箣鍚庯紝灝卞彲浠ュ姣忎竴涓樉紺轟負娌℃湁瑕嗙洊鐨勭被緙栧啓涓浜涙祴璇曚唬鐮併傚鎵鏈夌被榪涜涓撻棬嫻嬭瘯鍚庯紝榪樿涓烘墍鏈夋湭瑕嗙洊鐨勬柟娉曠紪鍐欐祴璇曚唬鐮併傚湪嫻嬭瘯鎵鏈夋柟娉曚箣鍚庯紝灝卞彲浠ュ紑濮嬪垎鏋愬鏈祴璇曠殑璇彞榪涜嫻嬭瘯鐨勫繀瑕佹с?</P> <P><A name=N100FC><span id="zekmlkn" class=smalltitle><STRONG><FONT face=Arial>錛堝嚑涔庯級涓嶇暀涓嬩換浣曟湭嫻嬭瘯鐨勪唬鐮?/FONT></STRONG></SPAN></A></P> <P>鏄惁鏈変竴浜涘彲浠ユ祴璇曚絾涓嶅簲嫻嬭瘯鐨勫唴瀹癸紵榪欏彇鍐充簬鎮ㄩ棶鐨勬槸璋併傚湪 JUnit FAQ 涓紝J. B. Rainsberger 鍐欏埌鈥滀竴鑸殑鐪嬫硶鏄細濡傛灉 <I>鑷韓</I> 涓嶄細鍑洪棶棰橈紝閭d箞瀹冧細鍥犱負澶畝鍗曡屼笉浼氬嚭闂銆傜涓涓緥瀛愭槸 <CODE>getX()</CODE> 鏂規硶銆傚亣瀹?<CODE>getX()</CODE> 鏂規硶鍙彁渚涙煇涓瀹炰緥鍙橀噺鐨勫箋傚湪榪欑鎯呭喌涓嬶紝闄ら潪緙栬瘧鍣ㄦ垨鑰呰В閲婂櫒鍑轟簡闂錛屽惁鍒?<CODE>getX()</CODE> 鏄笉浼氬嚭闂鐨勩傚洜姝わ紝涓嶇敤嫻嬭瘯 <CODE>getX()</CODE>錛屾祴璇曞畠涓嶄細甯︽潵浠諱綍濂藉銆傚浜?<CODE>setX()</CODE> 鏂規硶鏉ヨ涔熸槸濡傛錛屼笉榪囷紝濡傛灉 <CODE>setX()</CODE> 鏂規硶紜疄瑕佽繘琛屼換浣曞弬鏁伴獙璇侊紝鎴栬呰紜疄鏈夊壇浣滅敤錛岄偅涔堣繕鏄湁蹇呰瀵瑰叾榪涜嫻嬭瘯銆傗?</P> <TABLE cellSpacing=0 cellPadding=0 width="40%" align=right border=0> <TBODY> <TR> <TD width=10><IMG height=1 alt="" src="http://www.ibm.com/i/c.gif" width=10></TD> <TD> <TABLE cellSpacing=0 cellPadding=5 width="100%" border=1> <TBODY> <TR> <TD bgColor=#eeeeee> <P>鐞嗚涓婏紝瀵規湭瑕嗙洊鐨勪唬鐮佺紪鍐欐祴璇曚唬鐮佷笉涓瀹氬氨浼氬彂鐜?bug銆備絾鍦ㄥ疄璺典腑錛屾垜浠庢潵娌℃湁紕板埌娌℃湁鍙戠幇 bug 鐨勬儏鍐點傛湭嫻嬭瘯鐨勪唬鐮佸厖婊′簡 bug銆傛墍鍋氱殑嫻嬭瘯瓚婂皯錛屽湪浠g爜涓殣钘忕殑銆佹湭鍙戠幇鐨?bug 灝變細瓚婂銆?/P></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE> <P>鎴戜笉鍚屾剰銆傛垜宸茬粡璁頒笉娓呭湪鈥滅畝鍗曞緱涓嶄細鍑洪棶棰樷濈殑浠g爜涓彂鐜扮殑 bug 鐨勬暟閲忎簡銆傜‘瀹烇紝涓浜?getter 鍜?setter 寰堢畝鍗曪紝涓嶅彲鑳藉嚭闂銆備絾鏄垜浠庢潵灝辨病鏈夊姙娉曞尯鍒嗗摢浜涙柟娉曟槸鐪熺殑綆鍗曞緱涓嶄細鍑洪敊錛屽摢浜涙柟娉曞彧鏄湅涓婂幓濡傛銆傜紪鍐欒鐩栧儚 setter 鍜?getter 榪欐牱綆鍗曟柟娉曠殑嫻嬭瘯浠g爜騫朵笉闅俱備負姝ゆ墍鑺辯殑灝戦噺鏃墮棿浼氬洜涓哄湪榪欎簺鏂規硶涓彂鐜版湭鏇鵑鏂欏埌鐨?bug 鑰屽緱鍒拌ˉ鍋褲?</P> <P>涓鑸潵璇達紝寮濮嬫祴閲忓悗錛岃揪鍒?90% 鐨勬祴璇曡鐩栫巼鏄緢瀹規槗鐨勩傚皢瑕嗙洊鐜囨彁楂樺埌 95% 鎴栬呮洿楂樺氨闇瑕佸姩涓涓嬭剳絳嬨備緥濡傦紝鍙兘闇瑕佽杞戒笉鍚岀増鏈殑鏀寔搴擄紝浠ユ祴璇曟病鏈夊湪鎵鏈夌増鏈殑搴撲腑鍑虹幇鐨?bug銆傛垨鑰呴渶瑕侀噸鏂版瀯寤轟唬鐮侊紝浠ヤ究嫻嬭瘯閫氬父鎵ц涓嶅埌鐨勯儴鍒嗕唬鐮併傚彲浠ュ綾昏繘琛屾墿灞曪紝璁╁畠浠殑鍙椾繚鎶ゆ柟娉曞彉涓哄叕鍏辨柟娉曪紝榪欐牱灝卞彲浠ュ榪欎簺鏂規硶榪涜嫻嬭瘯銆傝繖浜涙妧宸х湅璧鋒潵鍍忔槸澶氭涓涓撅紝浣嗘槸瀹冧滑鏇懼府鍔╂垜鍦ㄤ竴鍗婄殑鏃墮棿鍐呭彂鐜版洿澶氱殑鏈彂鐜扮殑 bug銆?</P> <P>騫朵笉鎬繪槸鍙互寰楀埌瀹岀編鐨勩?00% 鐨勪唬鐮佽鐩栫巼銆傛湁鏃舵偍浼氬彂鐜幫紝涓嶇瀵逛唬鐮佸浣曟敼閫狅紝浠嶇劧鏈変竴浜涜銆佹柟娉曘佺敋鑷蟲槸鏁翠釜綾繪槸嫻嬭瘯涓嶅埌鐨勩備笅闈㈡槸鎮ㄥ彲鑳戒細閬囧埌鐨勬寫鎴樼殑涓浜涗緥瀛愶細 </P> <UL> <LI>鍙湪鐗瑰畾騫沖彴涓婃墽琛岀殑浠g爜銆備緥濡傦紝鍦ㄤ竴涓璁¤壇濂界殑 GUI 搴旂敤紼嬪簭涓紝娣誨姞涓涓?Exit 鑿滃崟欏圭殑浠g爜鍙互鍦?Windows PC 涓婅繍琛岋紝浣嗗畠涓嶈兘鍦?Mac 鏈轟笂榪愯銆?BR><BR> <LI>鎹曡幏涓嶄細鍙戠敓鐨勫紓甯哥殑 <CODE>catch</CODE> 璇彞錛屾瘮濡傚湪浠?<CODE>ByteArrayInputStream</CODE> 榪涜璇誨彇鎿嶄綔鏃舵姏鍑虹殑 <CODE>IOException</CODE>銆?BR><BR> <LI>闈炲叕鍏辯被涓殑涓浜涙柟娉曪紝瀹冧滑姘歌繙涔熶笉浼氳瀹為檯璋冪敤錛屽彧鏄負浜嗘弧瓚蟲煇涓帴鍙e綰﹁屽繀欏誨疄鐜般?BR><BR> <LI>澶勭悊铏氭嫙鏈?bug 鐨勪唬鐮佸潡錛屾瘮濡傝錛屼笉鑳借瘑鍒?UTF-8 緙栫爜銆?<BR><BR></LI></UL> <P>鑰冭檻鍒頒笂闈㈣繖浜涗互鍙婄被浼肩殑鎯呭喌錛屾垜璁や負涓浜涙瀬闄愮▼搴忓憳鑷姩鍒犻櫎鎵鏈夋湭嫻嬭瘯浠g爜鐨勫仛娉曟槸涓嶅垏瀹為檯鐨勶紝騫朵笖鍙兘鍏鋒湁涓瀹氱殑璁藉埡鎬с備笉鑳芥繪槸鑾峰緱緇濆瀹岀編鐨勬祴璇曡鐩栫巼騫朵笉鎰忓懗鐫灝變笉浼氭湁鏇村ソ鐨勮鐩栫巼銆?</P> <P>鐒惰岋紝姣旀墽琛屼笉鍒扮殑璇彞鍜屾柟娉曟洿甯歌鐨勬槸孌嬬暀浠g爜錛屽畠涓嶅啀鏈変換浣曚綔鐢紝騫朵笖浠庝唬鐮佸熀涓幓鎺夎繖浜涗唬鐮佷篃涓嶄細浜х敓浠諱綍褰卞搷銆傛湁鏃跺彲浠ラ氳繃浣跨敤鍙嶅皠鏉ヨ闂鏈夋垚鍛樿繖鏍風殑鎬嫑鏉ユ祴璇曟湭嫻嬭瘯鐨勪唬鐮併傝繕鍙互涓烘湭嫻嬭瘯鐨勩佸寘淇濇姢錛坧ackage-protected錛夌殑浠g爜鏉ョ紪鍐欐祴璇曚唬鐮侊紝灝嗘祴璇曠被鏀懼埌灝嗚嫻嬭瘯鐨勭被鎵鍦ㄩ偅涓寘涓備絾鏈濂戒笉瑕佽繖鏍峰仛銆傛墍鏈変笉鑳介氳繃鍙戝竷鐨勶紙鍏叡鐨勫拰鍙椾繚鎶ょ殑錛夋帴鍙h闂殑浠g爜閮藉簲鍒犻櫎銆傛墽琛屼笉鍒扮殑浠g爜涓嶅簲褰撴垚涓轟唬鐮佸熀鐨勪竴閮ㄥ垎銆備唬鐮佸熀瓚婂皬錛屽畠灝辮秺瀹規槗琚悊瑙e拰緇存姢銆?</P> <TABLE cellSpacing=0 cellPadding=0 width="40%" align=right border=0> <TBODY> <TR> <TD width=10><IMG height=1 alt="" src="http://www.ibm.com/i/c.gif" width=10></TD> <TD> <TABLE cellSpacing=0 cellPadding=5 width="100%" border=1> <TBODY> <TR> <TD bgColor=#eeeeee> <P>涓嶈婕忔帀嫻嬮噺鍗曞厓嫻嬭瘯鍖呭拰綾繪湰韜傛垜涓嶆涓嬈℃敞鎰忓埌錛屾煇浜涗釜嫻嬭瘯鏂規硶鎴栬呯被娌℃湁琚祴璇曞寘鐪熸榪愯銆傞氬父榪欒〃鏄庡悕縐拌鑼冧腑瀛樺湪闂錛堟瘮濡傚皢涓涓柟娉曞懡鍚嶄負 <CODE><I>tes</I>SomeReallyComplexCondition</CODE>錛岃屼笉鏄皢鍏跺懡鍚嶄負 <CODE><I>test</I>SomeReallyComplexCondition</CODE>錛夛紝鎴栬呭繕璁板皢涓涓被娣誨姞鍒頒富 <CODE>suite()</CODE> 鏂規硶涓傚湪鍏朵粬鎯呭喌涓嬶紝鏈鏈熺殑鏉′歡瀵艱嚧璺寵繃浜嗘祴璇曟柟娉曚腑鐨勪唬鐮併備笉綆℃槸浠涔堟儏鍐碉紝閮芥槸铏界劧宸茬粡緙栧啓浜嗘祴璇曚唬鐮侊紝浣嗘病鏈夌湡姝h繍琛屽畠銆侸Unit 涓嶄細鍛婅瘔鎮ㄥ畠娌℃湁鍍忔偍鎵鎯崇殑閭f牱榪愯鎵鏈夋祴璇曪紝浣嗘槸 Cobertura 浼氬憡璇夋偍銆傛壘鍑轟簡鏈繍琛岀殑嫻嬭瘯鍚庯紝鏀規瀹冧竴鑸緢瀹規槗銆?</P></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE><BR> <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD><IMG height=1 alt="" src="http://www.ibm.com/i/v14/rules/blue_rule.gif" width="100%"></TD></TR></TBODY></TABLE> <TABLE class=no-print cellSpacing=0 cellPadding=0 align=right> <TBODY> <TR align=right> <TD> <TABLE cellSpacing=0 cellPadding=0 border=0> <TBODY> <TR> <TD vAlign=center><IMG height=16 alt="" src="http://www.ibm.com/i/v14/icons/u_bold.gif" width=16 border=0><BR></TD> <TD vAlign=top align=right><A class=fbox ><B><FONT color=#996699>鍥為〉棣?/FONT></B></A></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE><BR><BR> <P><A name=N10178><span id="lnisrjm" class=atitle><FONT face=Arial size=4>榪愯 Cobertura</FONT></SPAN></A></P> <P>鍦ㄤ簡瑙d簡嫻嬮噺浠g爜瑕嗙洊鐜囩殑濂藉鍚庯紝璁╂垜浠啀鏉ヨ璁轟竴涓嬪浣曠敤 Cobertura 嫻嬮噺浠g爜瑕嗙洊鐜囩殑鍏蜂綋緇嗚妭銆侰obertura 琚璁℃垚涓哄湪 Ant 涓繍琛屻傜幇鍦ㄨ繕娌℃湁榪欐柟闈㈢殑 IDE 鎻掍歡鍙敤錛屼笉榪囦竴涓ゅ勾鍐呬篃璁稿氨浼氭湁浜嗐?</P> <P>棣栧厛闇瑕佸湪 build.xml 鏂囦歡涓坊鍔犱竴涓換鍔″畾涔夈備互涓嬭繖涓《綰?<CODE>taskdef</CODE> 鍏冪礌灝?cobertura.jar 鏂囦歡闄愬畾鍦ㄥ綋鍓嶅伐浣滅洰褰曚腑錛?</P> <TABLE cellSpacing=0 cellPadding=5 width="65%" bgColor=#cccccc border=1> <TBODY> <TR> <TD><PRE><CODE class=section><FONT face="Lucida Console"><taskdef classpath="cobertura.jar" resource="tasks.properties" /></FONT></CODE></PRE></TD></TR></TBODY></TABLE><BR> <P>鐒跺悗錛岄渶瑕佷竴涓?<CODE>cobertura-instrument</CODE> 浠誨姟錛岃浠誨姟灝嗗湪宸茬粡緙栬瘧濂界殑綾繪枃浠朵腑娣誨姞鏃ュ織浠g爜銆?CODE>todir</CODE> 灞炴ф寚瀹氬皢嫻嬮噺綾繪斁鍒頒粈涔堝湴鏂廣?CODE>fileset</CODE> 瀛愬厓绱犳寚瀹氭祴閲忓摢浜?.class 鏂囦歡錛?</P> <TABLE cellSpacing=0 cellPadding=5 width="65%" bgColor=#cccccc border=1> <TBODY> <TR> <TD><PRE><CODE class=section><FONT face="Lucida Console"><target name="instrument"> <cobertura-instrument todir="target/instrumented-classes"> <fileset dir="target/classes"> <include name="**/*.class"/> </fileset> </cobertura-instrument> </target></FONT></CODE></PRE></TD></TR></TBODY></TABLE><BR> <P>鐢ㄩ氬父榪愯嫻嬭瘯鍖呯殑鍚屼竴縐嶇被鍨嬬殑 Ant 浠誨姟榪愯嫻嬭瘯銆傛儫涓鐨勫尯鍒湪浜庯細琚祴閲忕殑綾誨繀欏誨湪鍘熷綾誨嚭鐜板湪綾昏礬寰勪腑涔嬪墠鍑虹幇鍦ㄧ被璺緞涓紝鑰屼笖闇瑕佸皢 Cobertura JAR 鏂囦歡娣誨姞鍒扮被璺緞涓細 </P> <TABLE cellSpacing=0 cellPadding=5 width="100%" bgColor=#eeeeee border=1> <TBODY> <TR> <TD><PRE><CODE class=section><FONT face="Lucida Console"><target name="cover-test" depends="instrument"> <mkdir dir="${testreportdir}" /> <junit dir="./" failureproperty="test.failure" printSummary="yes" fork="true" haltonerror="true"> <!-- Normally you can create this task by copying your existing JUnit target, changing its name, and adding these next two lines. You may need to change the locations to point to wherever you've put the cobertura.jar file and the instrumented classes. --> <classpath location="cobertura.jar"/> <classpath location="target/instrumented-classes"/> <classpath> <fileset dir="${libdir}"> <include name="*.jar" /> </fileset> <pathelement path="${testclassesdir}" /> <pathelement path="${classesdir}" /> </classpath> <batchtest todir="${testreportdir}"> <fileset dir="src/java/test"> <include name="**/*Test.java" /> <include name="org/jaxen/javabean/*Test.java" /> </fileset> </batchtest> </junit> </target>></FONT></CODE></PRE></TD></TR></TBODY></TABLE><BR> <P>Jaxen 欏圭洰浣跨敤 JUnit 浣滀負鍏舵祴璇曟鏋訛紝浣嗘槸 Cobertura 鏄笉鍙楁鏋跺獎鍝嶇殑銆傚畠鍦?TestNG銆丄rtima SuiteRunner銆丠TTPUni 鎴栬呭湪鎮ㄨ嚜宸卞湪鍦頒笅瀹ゅ紑鍙戠殑緋葷粺涓竴鏍峰伐浣滃緱寰堝ソ銆?/P> <P>鏈鍚庯紝<CODE>cobertura-report</CODE> 浠誨姟鐢熸垚鏈枃寮濮嬮儴鍒嗙湅鍒扮殑閭d釜 HTML 鏂囦歡錛?</P> <TABLE cellSpacing=0 cellPadding=5 width="100%" bgColor=#eeeeee border=1> <TBODY> <TR> <TD><PRE><CODE class=section><FONT face="Lucida Console"><target name="coverage-report" depends="cover-test"> <cobertura-report srcdir="src/java/main" destdir="cobertura"/> </target></FONT></CODE></PRE></TD></TR></TBODY></TABLE><BR> <P><CODE>srcdir</CODE> 灞炴ф寚瀹氬師濮嬬殑 .java 婧愪唬鐮佸湪浠涔堝湴鏂廣?CODE>destdir</CODE> 灞炴ф寚瀹?Cobertura 鏀劇疆杈撳嚭 HTML 鐨勯偅涓洰褰曠殑鍚嶇О銆?/P> <P>鍦ㄨ嚜宸辯殑 Ant 緙栬瘧鏂囦歡涓姞鍏ヤ簡綾諱技鐨勪換鍔″悗錛屽氨鍙互閫氳繃閿叆浠ヤ笅鍛戒護鏉ョ敓鎴愪竴涓鐩栨姤鍛婏細 </P> <TABLE cellSpacing=0 cellPadding=5 width="100%" bgColor=#eeeeee border=1> <TBODY> <TR> <TD><PRE><CODE class=section><FONT face="Lucida Console">% ant instrument % ant cover-test % ant coverage-report</FONT></CODE></PRE></TD></TR></TBODY></TABLE><BR> <P>褰撶劧錛屽鏋滄偍鎰挎剰鐨勮瘽錛岃繕鍙互鏀瑰彉鐩爣浠誨姟鐨勫悕縐幫紝鎴栬呭皢榪欎笁欏逛換鍔″悎騫朵負涓涓洰鏍囦換鍔°?</P><BR> <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD><IMG height=1 alt="" src="http://www.ibm.com/i/v14/rules/blue_rule.gif" width="100%"></TD></TR></TBODY></TABLE> <TABLE class=no-print cellSpacing=0 cellPadding=0 align=right> <TBODY> <TR align=right> <TD> <TABLE cellSpacing=0 cellPadding=0 border=0> <TBODY> <TR> <TD vAlign=center><IMG height=16 alt="" src="http://www.ibm.com/i/v14/icons/u_bold.gif" width=16 border=0><BR></TD> <TD vAlign=top align=right><A class=fbox ><B><FONT color=#996699>鍥為〉棣?/FONT></B></A></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE><BR><BR> <P><A name=N101CE><span id="agfisgj" class=atitle><FONT face=Arial size=4>緇撴潫璇?/FONT></SPAN></A></P> <P>Cobertura 鏄晱鎹風▼搴忓憳宸ュ叿綆變腑鏂板鐨勪竴涓噸瑕佸伐鍏楓傞氳繃鐢熸垚浠g爜瑕嗙洊鐜囩殑鍏蜂綋鏁板鹼紝Cobertura 灝嗗崟鍏冩祴璇曚粠涓縐嶈壓鏈漿鍙樹負涓闂ㄧ瀛︺傚畠鍙互瀵繪壘嫻嬭瘯瑕嗙洊涓殑絀洪殭錛岀洿鎺ユ壘鍒?bug銆傛祴閲忎唬鐮佽鐩栫巼浣挎偍鍙互鑾峰緱瀵繪壘騫朵慨澶?bug 鎵闇鐨勪俊鎭紝浠庤屽紑鍙戝嚭瀵規瘡涓漢鏉ヨ閮芥洿鍋ュ.鐨勮蔣浠躲?</P><BR> <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD><IMG height=1 alt="" src="http://www.ibm.com/i/v14/rules/blue_rule.gif" width="100%"></TD></TR></TBODY></TABLE> <TABLE class=no-print cellSpacing=0 cellPadding=0 align=right> <TBODY> <TR align=right> <TD> <TABLE cellSpacing=0 cellPadding=0 border=0> <TBODY> <TR> <TD vAlign=center><IMG height=16 alt="" src="http://www.ibm.com/i/v14/icons/u_bold.gif" width=16 border=0><BR></TD> <TD vAlign=top align=right><A class=fbox ><B><FONT color=#996699>鍥為〉棣?/FONT></B></A></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE><BR><BR> <P><A name=resources><span id="mdjeogy" class=atitle><FONT face=Arial size=4>鍙傝冭祫鏂?</FONT></SPAN></A></P> <UL> <LI>鎮ㄥ彲浠ュ弬闃呮湰鏂囧湪 developerWorks 鍏ㄧ悆绔欑偣涓婄殑 <A target=_blank><FONT color=#5c81a7>鑻辨枃鍘熸枃</FONT></A>銆?BR><BR> <LI>浠?SourceForge 涓嬭澆 <A ><FONT color=#5c81a7>Cobertura</FONT></A>銆?BR><BR> <LI>鑾峰緱 <A ><FONT color=#5c81a7>JUnit</FONT></A> <A ><FONT color=#5c81a7>鍙楀獎鍝嶇殑嫻嬭瘯</FONT></A>錛屽畠鏄敤浜?Java 騫沖彴鐨勫疄闄呮爣鍑嗗崟鍏冩祴璇曟鏋躲?BR><BR> <LI>闃呰 Dave Thomas 鍜?Andy Hunt 鍚堣憲鐨?<A ><FONT color=#5c81a7><I>Pragmatic Unit Testing in Java With JUnit</I> </FONT></A>錛圥ragmatic Bookshelf錛?003錛夈?BR><BR> <LI>Cenqua 鐨?<A ><FONT color=#5c81a7>Clover</FONT></A> 鏄竴涓洿綺捐嚧鐨勩佹敹璐圭殑嫻嬭瘯瑕嗙洊鐜囧伐鍏鳳紝瀹冩墍鍋氱殑宸ヤ綔瀹炶川涓婁笌 Cobertura 鐩稿悓錛屽彧鏄畠鍋氬緱鏇寸粏鑷翠竴浜涖?BR><BR> <LI>IBM Rational 鎻愪緵浜嗗叏闈㈢殑嫻嬭瘯宸ュ叿鍖呮潵甯姪鎮ㄦ嫻嬩唬鐮併傗?A ><FONT color=#5c81a7>Get started with automated testing: Road map to success</FONT></A>鈥濅負鎮ㄦ彁渚涗簡鍗沖埢寮濮嬫祴璇曡嚜宸辯殑浠g爜鎵闇鐨勫熀紜鐭ヨ瘑銆?<BR><BR> <LI>Mike Kelly 鎻愪緵浜嗏?A ><FONT color=#5c81a7>using TestManager to report test coverage</FONT></A>鈥濈殑緇嗚妭錛坉eveloperWorks錛?003 騫?12 鏈堬級銆?BR><BR> <LI><A ><FONT color=#5c81a7>PureCoverage</FONT></A> 鏄?IBM Rational PurifyPlus 嫻嬭瘯宸ュ叿鍖呯殑涓閮ㄥ垎錛屽畠鏄竴涓嚭鑹茬殑浠g爜瑕嗙洊鐜囧伐鍏楓俁ational Application Developor 鍖呮嫭 PureCoverage 鍔熻兘錛屼粠鈥?A ><FONT color=#5c81a7>浣跨敤 IBM Rational Application Developer for WebSphere Software 榪涜緇勪歡嫻嬭瘯</FONT></A>鈥濅腑鍙互浜嗚В鍏充簬瀹冪殑鏇村鐭ヨ瘑錛坉eveloperWorks錛?005 騫?3 鏈堬級銆?BR><BR> <LI>Cobertura 鏄?<A ><FONT color=#5c81a7>jcoverage</FONT></A> 鐨勫垎鏀?<BR><BR> <LI>Carnegie Mellon 鐨?Software Engineering Institute 鍙戣〃浜嗗 <A ><FONT color=#5c81a7>McCabe's Cyclomatic Complexity</FONT></A> 鐨勮緇嗚鏄庛?BR><BR> <LI>David Carew 鍜?Sandeep Desai 鍚堣憲鐨?鈥?A ><FONT color=#5c81a7>Keeping critters out of your code: How to use WebSphere and JUnit to prevent programming bugs</FONT></A>鈥濓紙developerWorks錛?003 騫?6 鏈堬級 鍒嗘瀽浜嗗浣曠敤 XP 鏂規硶榪涜嫻嬭瘯銆?BR><BR> <LI>Dennis M. Sosnoski <A ><FONT color=#5c81a7>鎺ㄥ嚭</FONT></A> 浜?<A ><FONT color=#5c81a7>Classworking 宸ュ叿綆?/FONT></A> 緋誨垪錛屾帰璁ㄥ紑婧愮殑 <A ><FONT color=#5c81a7>Hansel</FONT></A> 鍜?<A ><FONT color=#5c81a7>Gretel</FONT></A> 浠g爜瑕嗙洊鐜囧伐鍏楓?BR><BR> <LI>鍙傞槄鈥?A ><FONT color=#5c81a7>Test your tests with Jester</FONT></A>鈥濓紝浜嗚В鍏充簬寮鏀炬簮浠g爜 JUnit 嫻嬭瘯嫻嬭瘯鍣ㄧ殑鐭ヨ瘑銆?BR><BR> <LI>Malcolm Davis 鎾板啓鐨勨?A ><FONT color=#5c81a7>鍒╃敤 Ant 鍜?JUnit 榪涜澧為噺寮鍙?/FONT></A>鈥濓紙developerWorks錛?000 騫?11 鏈堬級浠嬬粛浜嗗浣曞皢 JUnit 闆嗘垚鍒拌嚜宸辯殑欏圭洰涓?BR><BR> <LI>Eric Allen 鍜?Roy Miller 鍦ㄤ粬浠悇鑷殑涓撴爮 <A ><FONT color=#5c81a7>璇婃柇 Java 浠g爜</FONT></A> 鍜?<A ><FONT color=#5c81a7>Demystifying Extreme Programming</FONT></A> 涓粡甯歌璁哄埌鍗曞厓嫻嬭瘯銆?BR><BR> <LI>Erik Hatcher 鐨?<A ><FONT color=#5c81a7>璁╃紪璇戝拰嫻嬭瘯榪囩▼鑷姩鍖?/FONT></A> 錛坉eveloperWorks錛?001 騫?8 鏈堬級灞曠ず浜嗗浣曞皢澧為噺嫻嬭瘯鍜岃繛緇紪璇戠粨鍚堝埌涓涓嚜鍔ㄨ繃紼嬩腑銆?BR><BR> <LI>鎺㈢儲 <A ><FONT color=#5c81a7>FoCuS</FONT></A>錛岃繖鏄?IBM alphaWorks 鐨勪竴涓伐鍏鳳紝瀹冨疄鐜頒簡鍔熻兘瑕嗙洊鏂規硶錛屽茍閫氳繃鎻愪緵鏈祴璇曞尯鍩熺殑璇︾粏瑕嗙洊鐜囦俊鎭潵鏀硅繘搴旂敤紼嬪簭嫻嬭瘯銆?BR><BR> <LI>浣滀負鏈枃鍒嗘瀽瀵硅薄鐨?<A ><FONT color=#5c81a7>Jaxen 欏圭洰</FONT></A> 鏄竴涓敤浜?Java 緙栫▼鐨勫紑婧?XPath 寮曟搸錛岄傚悎澶氱涓嶅悓瀵硅薄妯″瀷銆?<BR><BR> <LI>鍦?developerWorks 鐨?<A ><FONT color=#5c81a7>Java 鎶鏈笓鍖?/FONT></A> 涓彲浠ユ壘鍒板叧浜?Java 緙栫▼鐨勫悇涓柟闈㈢殑鏂囩珷銆?BR><BR> <LI>璇峰弬闃?<A ><FONT color=#5c81a7>Developer Bookstore</FONT></A>錛屼互鑾峰緱涓浜涙妧鏈功綾嶇殑瀹屾暣娓呭崟錛屽叾涓寘鎷暟鐧炬湰 <A ><FONT color=#5c81a7>Java 鐩稿叧涓婚</FONT></A> 鐨勪功綾嶃?BR></LI></UL><BR> <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD><IMG height=1 alt="" src="http://www.ibm.com/i/v14/rules/blue_rule.gif" width="100%"></TD></TR></TBODY></TABLE> <TABLE class=no-print cellSpacing=0 cellPadding=0 align=right> <TBODY> <TR align=right> <TD> <TABLE cellSpacing=0 cellPadding=0 border=0> <TBODY> <TR> <TD vAlign=center><IMG height=16 alt="" src="http://www.ibm.com/i/v14/icons/u_bold.gif" width=16 border=0><BR></TD> <TD vAlign=top align=right><A class=fbox ><B><FONT color=#996699>鍥為〉棣?/FONT></B></A></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE><BR><BR> <P><A name=author><span id="pbtfuhk" class=atitle><FONT face=Arial size=4>鍏充簬浣滆?/FONT></SPAN></A></P> <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD colSpan=2><FONT face=Arial size=4><IMG height=5 alt="" src="http://www.ibm.com/i/c.gif" width="100%"></FONT></TD></TR> <TR vAlign=top align=left> <TD> <P><FONT face=Arial size=4></FONT></P></TD> <TD> <P>Elliotte Rusty Harold 鍑虹敓鍦ㄦ柊濂ュ皵鑹紝鐜板湪浠栬繕瀹氭湡鍥炶佸鍠濅竴紕楃編鍛崇殑縐嬭懙姹ゃ備笉榪囩洰鍓嶏紝浠栧拰濡誨瓙 Beth 瀹氬眳鍦ㄧ航綰︿復榪戝竷椴佸厠鏋楃殑 Prospect Heights錛屽悓浣忕殑榪樻湁浠栫殑鐚挭 Charm錛堝彇鑷じ鍏嬶級鍜?Marjorie錛堝彇鑷粬宀蟲瘝鐨勫悕瀛楋級銆備粬鏄?Polytechnic 澶у璁$畻鏈虹瀛︾殑鍓暀鎺堬紝璁叉巿 Java 鎶鏈拰闈㈠悜瀵硅薄緙栫▼銆備粬鐨?<A ><FONT color=#5c81a7>Cafe au Lait</FONT></A> 緗戠珯鏄?Internet 涓婃渶鍙楁榪庣殑鐙珛 Java 绔欑偣涔嬩竴錛屽濡圭珯鐐?<A ><FONT color=#5c81a7>Cafe con Leche</FONT></A> 宸茬粡鎴愪負鏈鍙楁榪庣殑 XML 绔欑偣涔嬩竴銆備粬鐨勮憲浣滃寘鎷?<A ><FONT color=#5c81a7><I>Effective XML</I> </FONT></A>銆?A ><FONT color=#5c81a7> <I>Processing XML with Java</I> </FONT></A>銆?A ><FONT color=#5c81a7> <I>Java Network Programming</I> </FONT></A>鍜?<A ><FONT color=#5c81a7><I>The XML 1.1 Bible</I> </FONT></A>銆傜洰鍓嶄粬姝e湪浠庝簨 XML 鐨?<A ><FONT color=#5c81a7>XOM</FONT></A> API銆?A ><FONT color=#5c81a7>Jaxen</FONT></A> XPath 寮曟搸鍜?<A ><FONT color=#5c81a7>Jester</FONT></A> 嫻嬭瘯瑕嗙洊鐜囧伐鍏風殑寮鍙戝伐浣溿?</P></TD></TR></TBODY></TABLE><BR></TD></TR></TBODY></TABLE><img src ="http://www.tkk7.com/ghawk/aggbug/24331.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/ghawk/" target="_blank">GHawk</a> 2005-12-17 11:23 <a href="http://www.tkk7.com/ghawk/archive/2005/12/17/24331.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>EasyMock 2.0_ReleaseCandidate 鏂囨。緲昏瘧http://www.tkk7.com/ghawk/archive/2005/12/15/24060.htmlGHawkGHawkThu, 15 Dec 2005 08:06:00 GMThttp://www.tkk7.com/ghawk/archive/2005/12/15/24060.htmlhttp://www.tkk7.com/ghawk/comments/24060.htmlhttp://www.tkk7.com/ghawk/archive/2005/12/15/24060.html#Feedback0http://www.tkk7.com/ghawk/comments/commentRss/24060.htmlhttp://www.tkk7.com/ghawk/services/trackbacks/24060.html闃呰鍏ㄦ枃

GHawk 2005-12-15 16:06 鍙戣〃璇勮
]]>
主站蜘蛛池模板: 中国人xxxxx69免费视频| 亚洲av乱码一区二区三区| 日本久久久免费高清| 一级毛片不卡片免费观看| 国产人成网在线播放VA免费| 亚洲精品中文字幕| 亚洲校园春色小说| 久久精品国产亚洲AV香蕉| 国产亚洲情侣一区二区无码AV| 在线观看亚洲免费视频| 免费国产作爱视频网站| 久久久免费精品re6| 成人久久免费网站| 成人av片无码免费天天看| 全部在线播放免费毛片| 日韩国产精品亚洲а∨天堂免| 亚洲国产视频久久| 亚洲国产精品yw在线观看| 久久国产亚洲高清观看| 亚洲国产第一站精品蜜芽| 久久久青草青青国产亚洲免观| 亚洲AⅤ无码一区二区三区在线 | 免费日韩在线视频| 国内外成人免费视频| 成年轻人网站色免费看| 搡女人真爽免费视频大全| 最近2019中文字幕免费看最新| 国产免费看JIZZ视频| 91免费国产在线观看| 特级做A爰片毛片免费69 | 亚洲精品国产免费| 亚洲综合无码一区二区三区| 久久亚洲美女精品国产精品| 亚洲视频在线观看免费视频| 在线观看亚洲人成网站| 亚洲欧洲精品视频在线观看| 亚洲精品成人网站在线播放| 亚洲av日韩av高潮潮喷无码 | 亚洲AⅤ视频一区二区三区| 午夜一级免费视频| 国产国产成年年人免费看片|