﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-pengpenglin</title><link>http://www.blogjava.net/pengpenglin/</link><description>因为热爱，所以坚持；因为坚持，所以快乐！</description><language>zh-cn</language><lastBuildDate>Sat, 17 May 2008 21:54:20 GMT</lastBuildDate><pubDate>Sat, 17 May 2008 21:54:20 GMT</pubDate><ttl>60</ttl><item><title>Oracle9i下几个重要的管理性目录</title><link>http://www.blogjava.net/pengpenglin/archive/2008/05/04/198214.html</link><dc:creator>Paul Lin</dc:creator><author>Paul Lin</author><pubDate>Sun, 04 May 2008 09:41:00 GMT</pubDate><guid>http://www.blogjava.net/pengpenglin/archive/2008/05/04/198214.html</guid><wfw:comment>http://www.blogjava.net/pengpenglin/comments/198214.html</wfw:comment><comments>http://www.blogjava.net/pengpenglin/archive/2008/05/04/198214.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/pengpenglin/comments/commentRss/198214.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/pengpenglin/services/trackbacks/198214.html</trackback:ping><description><![CDATA[<p><span style="font-family: Verdana"><span style="font-size: 10pt">【1】pfile：初始化参数文件<br />
<br />
包含了init.ora文件，该文件定义了几个非常重要的参数：<br />
<br />
&#183;db_domain：数据库域名<br />
&#183;db_name：数据库名<br />
&#183;control_files：控制文件的路径，通常有3个文件<br />
&#183;shared_pool_size=共享池的大小<br />
&#183;background_dump_dest=后台进程日志、跟踪文件路径<br />
&#183;core_dump_dest=操作系统崩溃的日志、跟踪文件路径<br />
&#183;user_dump_dest=用户进程的跟踪文件路径<br />
<br />
【2】budmp：存放由后台进程所生成的数据库Alert日志文件和跟踪文件<br />
<br />
典型的包含了一个.log文件和一个.trc文件。<br />
<br />
打开.log文件我们可以看到里面有很多后台进程的启动及运行信息，其中最关键的就是加载init.ora文件和起点后台进程的日志了</span></span></p>
<br />
<span style="font-family: Verdana"><span style="font-size: 10pt; font-family: Verdana"><span style="font-family: ">Starting up ORACLE RDBMS Version: 9.2.0.1.0.<br style="font-family: " />
System parameters with non-default values:<br style="font-family: " />
&nbsp; processes&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 150<br style="font-family: " />
&nbsp; timed_statistics&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = TRUE<br style="font-family: " />
&nbsp; shared_pool_size&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 50331648<br style="font-family: " />
&nbsp; large_pool_size&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 8388608<br style="font-family: " />
&nbsp; java_pool_size&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 33554432<br style="font-family: " />
&nbsp; control_files&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = C:\oracle\oradata\paullin\control01.ctl, C:\oracle\oradata\paullin\control02.ctl, C:\oracle\oradata\paullin\control03.ctl<br style="font-family: " />
&nbsp; db_block_size&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 8192<br style="font-family: " />
&nbsp; db_cache_size&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 25165824<br style="font-family: " />
&nbsp; compatible&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 9.2.0.0.0<br style="font-family: " />
&nbsp; db_file_multiblock_read_count= 16<br style="font-family: " />
&nbsp; fast_start_mttr_target&nbsp;&nbsp; = 300<br style="font-family: " />
&nbsp; undo_management&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = AUTO<br style="font-family: " />
&nbsp; undo_tablespace&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = UNDOTBS1<br style="font-family: " />
&nbsp; undo_retention&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 10800<br style="font-family: " />
&nbsp; remote_login_passwordfile= EXCLUSIVE<br style="font-family: " />
&nbsp; db_domain&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = <br style="font-family: " />
&nbsp; instance_name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = paullin<br style="font-family: " />
&nbsp; dispatchers&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = (PROTOCOL=TCP)<br style="font-family: " />
&nbsp; job_queue_processes&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 10<br style="font-family: " />
&nbsp; hash_join_enabled&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = TRUE<br style="font-family: " />
&nbsp; background_dump_dest&nbsp;&nbsp;&nbsp;&nbsp; = C:\oracle\admin\paullin\bdump<br style="font-family: " />
&nbsp; user_dump_dest&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = C:\oracle\admin\paullin\udump<br style="font-family: " />
&nbsp; core_dump_dest&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = C:\oracle\admin\paullin\cdump<br style="font-family: " />
&nbsp; sort_area_size&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 524288<br style="font-family: " />
&nbsp; db_name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = paullin<br style="font-family: " />
&nbsp; open_cursors&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 300<br style="font-family: " />
&nbsp; star_transformation_enabled= FALSE<br style="font-family: " />
&nbsp; query_rewrite_enabled&nbsp;&nbsp;&nbsp; = FALSE<br style="font-family: " />
&nbsp; pga_aggregate_target&nbsp;&nbsp;&nbsp;&nbsp; = 25165824<br style="font-family: " />
&nbsp; aq_tm_processes&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 1<br style="font-family: " />
PMON started with pid=2<br style="font-family: " />
DBW0 started with pid=3<br style="font-family: " />
LGWR started with pid=4<br style="font-family: " />
CKPT started with pid=5<br style="font-family: " />
SMON started with pid=6<br style="font-family: " />
RECO started with pid=7<br style="font-family: " />
CJQ0 started with pid=8<br style="font-family: " />
QMN0 started with pid=9<br style="font-family: " />
<br style="font-family: " />
而.trc文件里面则保存了当前会话的ID</span> <br />
<br />
【3】cdump：存放发生崩溃的操作系统的系统进程信息<br />
<br />
【4】create：存储创建数据库的SQL脚本<br />
<br />
【5】udmp：存储用户进程所生成的跟踪文件<br />
</span></span>
<img src ="http://www.blogjava.net/pengpenglin/aggbug/198214.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/pengpenglin/" target="_blank">Paul Lin</a> 2008-05-04 17:41 <a href="http://www.blogjava.net/pengpenglin/archive/2008/05/04/198214.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>学习日志－2008.04.27</title><link>http://www.blogjava.net/pengpenglin/archive/2008/04/28/196679.html</link><dc:creator>Paul Lin</dc:creator><author>Paul Lin</author><pubDate>Sun, 27 Apr 2008 16:37:00 GMT</pubDate><guid>http://www.blogjava.net/pengpenglin/archive/2008/04/28/196679.html</guid><wfw:comment>http://www.blogjava.net/pengpenglin/comments/196679.html</wfw:comment><comments>http://www.blogjava.net/pengpenglin/archive/2008/04/28/196679.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/pengpenglin/comments/commentRss/196679.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/pengpenglin/services/trackbacks/196679.html</trackback:ping><description><![CDATA[<p><span style="font-family: Verdana"><span style="font-size: 10pt"><strong>1.关于单元测试：</strong></span></span></p>
<p><span style="font-family: Verdana"><span style="font-size: 10pt">单元测试中的Test Case在设计时，有两点要注意的：</span></span></p>
<p><span style="font-family: Verdana"><span style="font-size: 10pt">a. 测试的方法最好短小精悍，每个test case只测试一个关注的功能，假如一个方法的处理逻辑里面包含了对几种可能情况的处理，那么测试案例最好分成几个来测试，举例如下<br />
&nbsp;&nbsp; <br />
&nbsp;&nbsp; 方法： public void convertStringToDate(String string)<br />
&nbsp; <br />
&nbsp;&nbsp; 在实际应用过程中，传入参数string的值可能有下面几种情况：<br />
&nbsp;&nbsp; <br />
&nbsp;&nbsp; 1). Null<br />
&nbsp;&nbsp; 2). 空格<br />
&nbsp;&nbsp; 3). 非空但格式错误<br />
&nbsp;&nbsp; 4). 非空且格式正确，但值错误(如：2008-02-31 23:59:59)<br />
&nbsp;&nbsp; 5). 非空且格式、值均正确</span></span></p>
<p><span style="font-family: Verdana"><span style="font-size: 10pt">&nbsp;&nbsp; 那么如果我们在同一个测试方法中: public void testConvertStringToDate()测试所有的可能情况，会有下面两个问题：</span></span></p>
<p><span style="font-family: Verdana"><span style="font-size: 10pt">&nbsp;&nbsp; 1). 代码量增多<br />
&nbsp;&nbsp; 2). 不利于修改，假如由于业务方法中某个处理逻辑改变了，此时重新测试时必须测试所有其它的方法<br />
&nbsp;&nbsp; 3). 可能造成测试案例的顺序依赖，比如其中某个方法会抛出异常，之后的测试案例可能不会被执行到</span></span></p>
<p><span style="font-family: Verdana"><span style="font-size: 10pt">如果我们按照上面可能出现的情况来分的话，那么就有五个测试案例，从数量上看是多了，但是后果就是每个方法都非常短小(不超过6行)，简单明了，一目了然，即便测试案&nbsp;&nbsp; 例错了，我也能马上看出来。其次一个测试案例的修改不会影响到其它的测试案例。</span></span></p>
<p><span style="font-family: Verdana"><span style="font-size: 10pt">b.测试方法是否抛出异常，可以参考下面的代码结构：<br />
&nbsp; <br />
&nbsp; try{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 调用被测试代码 // 此处的代码必须是明确会抛出异常的，因为这是我们要测试的目的<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <strong style="color: red">fail("Error: Must throw an exception here.");<br />
</strong>&nbsp; } catch(Exception e){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <strong style="color: red">assertTrue(true);<br />
</strong>&nbsp; }</span></span></p>
<p><br />
<span style="font-family: Verdana"><span style="font-size: 10pt"><strong>2.关于使用DateFormat及其子类进行字符串和日期转换的注意点：</strong></span></span></p>
<p><span style="font-family: Verdana"><span style="font-size: 10pt">使用DateFormat将字符串转换成Date对象时，必须注意在转换前，先调用：<strong style="color: red">setLinient(false);</strong>否则的话即使实际的日期数值有问题，例如2008-04-32 23:59:59，只要格式正确，也能够被转换成功，但这在实际的应用中是没有意义的。</span></span></p>
<img src ="http://www.blogjava.net/pengpenglin/aggbug/196679.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/pengpenglin/" target="_blank">Paul Lin</a> 2008-04-28 00:37 <a href="http://www.blogjava.net/pengpenglin/archive/2008/04/28/196679.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【原创】Oracle9i 字符集与NLS_LANG搭配测试兼乱码问题分析</title><link>http://www.blogjava.net/pengpenglin/archive/2008/04/23/195096.html</link><dc:creator>Paul Lin</dc:creator><author>Paul Lin</author><pubDate>Wed, 23 Apr 2008 06:59:00 GMT</pubDate><guid>http://www.blogjava.net/pengpenglin/archive/2008/04/23/195096.html</guid><wfw:comment>http://www.blogjava.net/pengpenglin/comments/195096.html</wfw:comment><comments>http://www.blogjava.net/pengpenglin/archive/2008/04/23/195096.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/pengpenglin/comments/commentRss/195096.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/pengpenglin/services/trackbacks/195096.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 最近在使用Oracle9i数据库进行数据插入、查询、导入/出，有时会出现乱码的情况，具体的情形有以下两种：<br><br>1.首次插入/显示乱码<br><br>2.首次插入/显示正常、但把数据用工具导出为本地文件(例如TXT)文件，再在另一个客户端中打开该文件并执行时<br>   再次插入的数据显示为乱码。 <br><br>遂在本地创建两个数据库，一个为AL32UTF8字符集，一个为ZHS16GBK字符集，配合客户端NLS_LANG的不同设置，测<br>试乱码的情况及进行原因分析。     <br><br>希望本文能够对仍处于Oracle字符集泥潭的同仁一点帮助&nbsp;&nbsp;<a href='http://www.blogjava.net/pengpenglin/archive/2008/04/23/195096.html'>阅读全文</a><img src ="http://www.blogjava.net/pengpenglin/aggbug/195096.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/pengpenglin/" target="_blank">Paul Lin</a> 2008-04-23 14:59 <a href="http://www.blogjava.net/pengpenglin/archive/2008/04/23/195096.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【摘自良葛格的笔记】Ant和JUnit结合进行自动测试入门</title><link>http://www.blogjava.net/pengpenglin/archive/2008/04/21/194519.html</link><dc:creator>Paul Lin</dc:creator><author>Paul Lin</author><pubDate>Mon, 21 Apr 2008 07:21:00 GMT</pubDate><guid>http://www.blogjava.net/pengpenglin/archive/2008/04/21/194519.html</guid><wfw:comment>http://www.blogjava.net/pengpenglin/comments/194519.html</wfw:comment><comments>http://www.blogjava.net/pengpenglin/archive/2008/04/21/194519.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/pengpenglin/comments/commentRss/194519.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/pengpenglin/services/trackbacks/194519.html</trackback:ping><description><![CDATA[<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: small; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="font-family: Verdana"><span style="font-size: 10pt"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="color: #0000ff">&lt;</span><span style="color: #800000">project&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="autobuildtest"</span><span style="color: #ff0000">&nbsp;default</span><span style="color: #0000ff">="test"</span><span style="color: #0000ff">&gt;</span></span></span><span style="font-family: Verdana"><span style="font-size: 10pt"><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">target&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="setProperties"</span><span style="color: #0000ff">&gt;</span></span></span><span style="color: #000000"><br />
<span style="font-family: Verdana"><span style="font-size: 10pt"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></span><span style="font-family: Verdana"><span style="font-size: 10pt"><span style="color: #0000ff">&lt;</span><span style="color: #800000">property&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="src.dir"</span><span style="color: #ff0000">&nbsp;value</span><span style="color: #0000ff">="src"</span><span style="color: #0000ff">/&gt;</span></span></span><span style="color: #000000"><br />
<span style="font-family: Verdana"><span style="font-size: 10pt"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></span><span style="font-family: Verdana"><span style="font-size: 10pt"><span style="color: #0000ff">&lt;</span><span style="color: #800000">property&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="classes.dir"</span><span style="color: #ff0000">&nbsp;value</span><span style="color: #0000ff">="classes"</span><span style="color: #0000ff">/&gt;</span></span></span><span style="color: #000000"><br />
<span style="font-family: Verdana"><span style="font-size: 10pt"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></span><span style="font-family: Verdana"><span style="font-size: 10pt"><span style="color: #0000ff">&lt;/</span><span style="color: #800000">target</span><span style="color: #0000ff">&gt;</span></span></span><span style="color: #000000"><br />
<span style="font-family: Verdana"><span style="font-size: 10pt"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span></span></span><span style="font-family: Verdana"><span style="font-size: 10pt"><span style="color: #0000ff">&lt;</span><span style="color: #800000">target&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="prepareDir"</span><span style="color: #ff0000">&nbsp;depends</span><span style="color: #0000ff">="setProperties"</span><span style="color: #0000ff">&gt;</span></span></span><span style="color: #000000"><br />
<span style="font-family: Verdana"><span style="font-size: 10pt"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></span><span style="font-family: Verdana"><span style="font-size: 10pt"><span style="color: #0000ff">&lt;</span><span style="color: #800000">delete&nbsp;</span><span style="color: #ff0000">dir</span><span style="color: #0000ff">="${classes.dir}"</span><span style="color: #0000ff">/&gt;</span></span></span><span style="color: #000000"><br />
<span style="font-family: Verdana"><span style="font-size: 10pt"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></span><span style="font-family: Verdana"><span style="font-size: 10pt"><span style="color: #0000ff">&lt;</span><span style="color: #800000">mkdir&nbsp;</span><span style="color: #ff0000">dir</span><span style="color: #0000ff">="${classes.dir}"</span><span style="color: #0000ff">/&gt;</span></span></span><span style="color: #000000"><br />
<span style="font-family: Verdana"><span style="font-size: 10pt"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span></span></span><span style="font-family: Verdana"><span style="font-size: 10pt"><span style="color: #0000ff">&lt;/</span><span style="color: #800000">target</span><span style="color: #0000ff">&gt;</span></span></span><span style="color: #000000"><br />
<span style="font-family: Verdana"><span style="font-size: 10pt"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span></span></span><span style="font-family: Verdana"><span style="font-size: 10pt"><span style="color: #0000ff">&lt;</span><span style="color: #800000">target&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="compile"</span><span style="color: #ff0000">&nbsp;depends</span><span style="color: #0000ff">="prepareDir"</span><span style="color: #0000ff">&gt;</span></span></span><span style="color: #000000"><br />
<span style="font-family: Verdana"><span style="font-size: 10pt"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></span><span style="font-family: Verdana"><span style="font-size: 10pt"><span style="color: #0000ff">&lt;</span><span style="color: #800000">javac&nbsp;</span><span style="color: #ff0000">srcdir</span><span style="color: #0000ff">="./src"</span><span style="color: #ff0000">&nbsp;destdir</span><span style="color: #0000ff">="${classes.dir}"</span><span style="color: #0000ff">/&gt;</span></span></span><span style="font-family: Verdana"><span style="font-size: 10pt"><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">target</span><span style="color: #0000ff">&gt;</span></span></span><span style="color: #000000"><br />
<span style="font-family: Verdana"><span style="font-size: 10pt"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span></span></span><span style="font-family: Verdana"><span style="font-size: 10pt"><span style="color: #0000ff">&lt;</span><span style="color: #800000">target&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="test"</span><span style="color: #ff0000">&nbsp;depends</span><span style="color: #0000ff">="compile"</span><span style="color: #0000ff">&gt;</span></span></span><span style="color: #000000"><br />
<span style="font-family: Verdana"><span style="font-size: 10pt"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></span><span style="font-family: Verdana"><span style="font-size: 10pt"><span style="color: #0000ff">&lt;</span><span style="color: #800000">junit&nbsp;</span><span style="color: #ff0000">printsummary</span><span style="color: #0000ff">="yes"</span><span style="color: #0000ff">&gt;</span></span></span><span style="color: #000000"><br />
<span style="font-family: Verdana"><span style="font-size: 10pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span style="color: #0000ff"><span style="background-color: #00ff00"><span style="font-family: Verdana"><span style="font-size: 10pt"><span style="color: #0000ff">&lt;</span><span style="color: #800000">test&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="onlyfun.caterpillar.test.MathToolTest"</span><span style="color: #0000ff">/&gt;</span></span></span></span></span><span style="color: #000000"><br />
<span style="font-family: Verdana"><span style="font-size: 10pt"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></span><span style="color: #0000ff"><span style="background-color: #00ff00"><span style="font-family: Verdana"><span style="font-size: 10pt"><span style="color: #0000ff">&lt;</span><span style="color: #800000">classpath</span><span style="color: #0000ff">&gt;</span></span></span><span style="color: #000000"><br />
</span></span></span><span style="color: #000000"><span style="font-family: Verdana"><span style="font-size: 10pt"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="background-color: #00ff00"><span style="font-family: Verdana"><span style="font-size: 10pt"><span style="color: #000000">&nbsp;&nbsp;&nbsp; </span><span style="color: #0000ff">&lt;</span><span style="color: #800000">pathelement&nbsp;</span><span style="color: #ff0000">location</span><span style="color: #0000ff">="${classes.dir}"</span><span style="color: #0000ff">/&gt;</span></span></span><span style="color: #000000"><br />
</span></span></span><span style="font-family: Verdana"><span style="font-size: 10pt"><span style="color: #000000"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff"><span style="background-color: #00ff00"><span style="color: #0000ff">&lt;/</span><span style="color: #800000">classpath</span><span style="color: #0000ff">&gt;</span></span></span></span></span><span style="color: #000000"><br />
<span style="font-family: Verdana"><span style="font-size: 10pt"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></span><span style="font-family: Verdana"><span style="font-size: 10pt"><span style="color: #0000ff">&lt;/</span><span style="color: #800000">junit</span><span style="color: #0000ff">&gt;</span></span></span><span style="color: #000000"><br />
<span style="font-family: Verdana"><span style="font-size: 10pt"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span></span></span><span style="font-family: Verdana"><span style="font-size: 10pt"><span style="color: #0000ff">&lt;/</span><span style="color: #800000">target</span><span style="color: #0000ff">&gt;</span></span></span><span style="font-family: Verdana"><span style="font-size: 10pt"><span style="color: #000000">&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">project</span><span style="color: #0000ff">&gt;</span></span></span><span style="color: #000000"><span style="font-family: Verdana"><span style="font-size: 10pt">&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span></span></span></div>
<br />
<span style="font-family: Verdana"><span style="font-family: Verdana"><span style="font-size: 10pt; font-family: ">上面XML文件高亮处描述了Ant如何与JUnit结合进行自动化测试，name属性是你要测试的TestCase，classpath元素指明了TestCase的路径，printsummary说明了要将测试的结果简单的显示出来。<br style="font-family: " />
</span></span><br />
<span style="font-size: 10pt; font-family: Verdana">如何吧JUnit测试的详细信息显示出来呢？我们可以采用&lt;formatter&gt;元素，如下所示：<br />
<br style="font-family: " />
</span>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #0000ff">&lt;</span><span style="color: #800000">junit&nbsp;</span><span style="color: #ff0000">printsummary</span><span style="color: #0000ff">="yes"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff"><strong><font color="#ff0000">&lt;formatter type="plain" usefile="false"/&gt;</font></strong><br />
</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">test&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="onlyfun.caterpillar.test.MathToolTest"</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">classpath</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">pathelement&nbsp;</span><span style="color: #ff0000">location</span><span style="color: #0000ff">="${classes.dir}"</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">classpath</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">junit</span><span style="color: #0000ff">&gt;</span></div>
<br />
<span style="font-size: 10pt; font-family: Verdana">当usefile属性设定为true时，会自动帮您将产生的结果储存在档案中，预设是TEST-*.txt，其中*是您的测试案例类别名称。除此之外，我们也可用采用XML的格式来保存测试结果。如下所示：<br style="font-family: " />
<br style="font-family: " />
<strong style="color: red">&lt;formatter type="xml"/&gt;<br style="font-family: " />
</strong><br style="font-family: " />
也可以将测试结果所产生的XML文件转换为HTML文件，使用Ant可以直接帮您完成这个工作，&lt;junitreport&gt;标签使用 XSLT将XML文件转换为HTML文件<br style="font-family: " />
</span><br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #0000ff">&lt;</span><span style="color: #800000">project&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="autobuildtest"</span><span style="color: #ff0000">&nbsp;default</span><span style="color: #0000ff">="report"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">target&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="setProperties"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">property&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="src.dir"</span><span style="color: #ff0000">&nbsp;value</span><span style="color: #0000ff">="src"</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">property&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="classes.dir"</span><span style="color: #ff0000">&nbsp;value</span><span style="color: #0000ff">="classes"</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff"><span style="background-color: #00ff00"><span style="color: #0000ff">&lt;</span><span style="color: #800000">property&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="report.dir"</span><span style="color: #ff0000">&nbsp;value</span><span style="color: #0000ff">="report"</span><span style="color: #0000ff">/&gt;</span></span></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">target</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">target&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="prepareDir"</span><span style="color: #ff0000">&nbsp;depends</span><span style="color: #0000ff">="setProperties"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">delete&nbsp;</span><span style="color: #ff0000">dir</span><span style="color: #0000ff">="${report.dir}"</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">delete&nbsp;</span><span style="color: #ff0000">dir</span><span style="color: #0000ff">="${classes.dir}"</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">mkdir&nbsp;</span><span style="color: #ff0000">dir</span><span style="color: #0000ff">="${report.dir}"</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">mkdir&nbsp;</span><span style="color: #ff0000">dir</span><span style="color: #0000ff">="${classes.dir}"</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">target</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">target&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="compile"</span><span style="color: #ff0000">&nbsp;depends</span><span style="color: #0000ff">="prepareDir"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">javac&nbsp;</span><span style="color: #ff0000">srcdir</span><span style="color: #0000ff">="./src"</span><span style="color: #ff0000">&nbsp;destdir</span><span style="color: #0000ff">="${classes.dir}"</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">target</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">target&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="test"</span><span style="color: #ff0000">&nbsp;depends</span><span style="color: #0000ff">="compile"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">junit&nbsp;</span><span style="color: #ff0000">printsummary</span><span style="color: #0000ff">="yes"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">formatter&nbsp;</span><span style="color: #ff0000">type</span><span style="color: #0000ff">="xml"</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">test&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="onlyfun.caterpillar.test.MathToolTest"</span><span style="color: #ff0000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="background-color: #00ff00"><span style="color: #ff0000">todir</span><span style="color: #0000ff">="${report.dir}"</span></span></span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">classpath</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">pathelement&nbsp;</span><span style="color: #ff0000">location</span><span style="color: #0000ff">="${classes.dir}"</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">classpath</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">junit</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">target</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">target&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="report"</span><span style="color: #ff0000">&nbsp;depends</span><span style="color: #0000ff">="test"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">junitreport&nbsp;</span><span style="color: #ff0000"><span style="background-color: #00ff00"><span style="color: #ff0000">todir</span><span style="color: #0000ff">="${report.dir}"</span></span></span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">fileset&nbsp;</span><span style="color: #ff0000">dir</span><span style="color: #0000ff">="${report.dir}"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff"><span style="background-color: #00ff00"><span style="color: #0000ff">&lt;</span><span style="color: #800000">include&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="TEST-*.xml"</span><span style="color: #0000ff">/&gt;</span></span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">fileset</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff"><span style="background-color: #00ff00"><span style="color: #0000ff">&lt;</span><span style="color: #800000">report&nbsp;</span><span style="color: #ff0000">format</span><span style="color: #0000ff">="frames"</span><span style="color: #ff0000">&nbsp;todir</span><span style="color: #0000ff">="${report.dir}/html"</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
</span></span></span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">junitreport</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">target</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">project</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span></div>
<br />
<span style="font-size: 10pt; font-family: Verdana">上面的例子，首先定义了一个property，用于指向保存测试结果的目录，接着在&lt;test&gt;元素中通过&lt;todir&gt;将结果指向该目录。然后report目标首先在todir属性指定的目录下查找名称包含：TESTd的XML文件，找到之后通过XSL转换成带frame的HTML页面，存放到子目录html下面<br />
<br />
最终的结果可能如下：<br />
</span><br />
<img alt="" src="http://www.blogjava.net/images/blogjava_net/pengpenglin/Java工具/autoTest.jpg" border="0" /><br />
</span>
<img src ="http://www.blogjava.net/pengpenglin/aggbug/194519.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/pengpenglin/" target="_blank">Paul Lin</a> 2008-04-21 15:21 <a href="http://www.blogjava.net/pengpenglin/archive/2008/04/21/194519.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Ant中关于路径指定的两个Tips</title><link>http://www.blogjava.net/pengpenglin/archive/2008/04/21/194509.html</link><dc:creator>Paul Lin</dc:creator><author>Paul Lin</author><pubDate>Mon, 21 Apr 2008 06:28:00 GMT</pubDate><guid>http://www.blogjava.net/pengpenglin/archive/2008/04/21/194509.html</guid><wfw:comment>http://www.blogjava.net/pengpenglin/comments/194509.html</wfw:comment><comments>http://www.blogjava.net/pengpenglin/archive/2008/04/21/194509.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/pengpenglin/comments/commentRss/194509.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/pengpenglin/services/trackbacks/194509.html</trackback:ping><description><![CDATA[<p><span style="font-family: Verdana"><span style="font-size: 10pt">【1】path和location属性的区别：<br />
&nbsp;<br />
&lt;classpath&gt;<br />
&nbsp;&nbsp;&nbsp; <strong><span style="color: red"><strong>&lt;pathelement path="${classpath}"/&gt;</strong></span><br />
<span style="color: red">&nbsp;&nbsp;&nbsp;&nbsp; &lt;pathelement location="lib/helper.jar"/&gt;<br />
</span></strong>&lt;/classpath&gt;<br />
&nbsp;<br />
原文：The location attribute specifies a single file or directory relative to the project's base directory&nbsp;(or an absolute filename), while the path attribute accepts colon- or semicolon-separated lists of locations. The path attribute is intended to be used with predefined paths - in any other case, multiple<br />
elements with location attributes should be preferred.<br />
&nbsp;<br />
从中我们可以看出path可以用于指向存在多个文件的位置，而location只能指向单个的文件或目录。另外path可以被设定id，供其它的path或classpath引用。如：&lt;path id="main-classpath"&gt;，而classpath则没有</span></span></p>
<p><span style="font-family: Verdana"><span style="font-size: 10pt">【2】综合示例：<br />
In addition, DirSets, FileSets, and FileLists can be specified via nested &lt;dirset&gt;, &lt;fileset&gt;, and &lt;filelist&gt; elements, respectively. Note: The order in which the files building up a FileSet are added to the path-like structure is not defined.<br />
&nbsp;<br />
&nbsp;&nbsp;&nbsp; &lt;classpath&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;<strong>pathelement path="${classpath}"/</strong>&gt;&nbsp; <strong style="color: red">方式① ：引用特定的变量</strong></span></span></p>
<p><span style="font-family: Verdana"><span style="font-size: 10pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;<strong>fileset dir="lib"</strong>&gt;&nbsp; <strong style="color: red">方式② ：指向特定的文件集</strong><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;include name="**/*.jar"/&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/fileset&gt;</span></span></p>
<p><span style="font-family: Verdana"><span style="font-size: 10pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;<strong>pathelement location="classes"/</strong>&gt;&nbsp; <strong style="color: red">方式③：指向单个目录</strong></span></span></p>
<p><span style="font-family: Verdana"><span style="font-size: 10pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;<strong>dirset dir="${build.dir}"</strong>&gt;&nbsp; <strong style="color: red">方式④：指向特定目录集</strong><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;include name="apps/**/classes"/&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;exclude name="apps/**/*Test*"/&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/dirset&gt;</span></span></p>
<p><span style="font-family: Verdana"><span style="font-size: 10pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;<strong>filelist refid="third-party_jars"/</strong>&gt; <strong style="color: red">方式⑤：引用指定文件列表</strong><br />
&nbsp;&nbsp;&nbsp; &lt;/classpath&gt;<br />
&nbsp;<br />
This builds a path that holds the value of ${classpath}, followed by all jar files in the lib directory, the classes directory, all directories named classes under the apps subdirectory of ${build.dir}, except those that have the text Test in their name, and the files specified in the referenced FileList.</span></span></p>
 <img src ="http://www.blogjava.net/pengpenglin/aggbug/194509.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/pengpenglin/" target="_blank">Paul Lin</a> 2008-04-21 14:28 <a href="http://www.blogjava.net/pengpenglin/archive/2008/04/21/194509.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>设计模式总结－Visitor模式</title><link>http://www.blogjava.net/pengpenglin/archive/2008/04/15/193170.html</link><dc:creator>Paul Lin</dc:creator><author>Paul Lin</author><pubDate>Tue, 15 Apr 2008 09:38:00 GMT</pubDate><guid>http://www.blogjava.net/pengpenglin/archive/2008/04/15/193170.html</guid><wfw:comment>http://www.blogjava.net/pengpenglin/comments/193170.html</wfw:comment><comments>http://www.blogjava.net/pengpenglin/archive/2008/04/15/193170.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/pengpenglin/comments/commentRss/193170.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/pengpenglin/services/trackbacks/193170.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Visitor模式的一个优点体现在对集合元素的访问中：由于集合中的可访问元素都实现了Visitable接口，所以在迭代集合的过程中，我们可以将每个元素都看成是接口类型。<br> <br>其次由于JAVA语言的多态性，虽然每个元素都是接口类型(Visitable)，但每个元素的实现类不同，所以在调用accept方法时，虚拟机“知道”应该调起那个正确的方法(例如：集合中的一个String元素，会调用StringElement的accept方法)&nbsp;&nbsp;<a href='http://www.blogjava.net/pengpenglin/archive/2008/04/15/193170.html'>阅读全文</a><img src ="http://www.blogjava.net/pengpenglin/aggbug/193170.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/pengpenglin/" target="_blank">Paul Lin</a> 2008-04-15 17:38 <a href="http://www.blogjava.net/pengpenglin/archive/2008/04/15/193170.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>设计模式总结－Strategy模式</title><link>http://www.blogjava.net/pengpenglin/archive/2008/04/08/191422.html</link><dc:creator>Paul Lin</dc:creator><author>Paul Lin</author><pubDate>Tue, 08 Apr 2008 03:52:00 GMT</pubDate><guid>http://www.blogjava.net/pengpenglin/archive/2008/04/08/191422.html</guid><wfw:comment>http://www.blogjava.net/pengpenglin/comments/191422.html</wfw:comment><comments>http://www.blogjava.net/pengpenglin/archive/2008/04/08/191422.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/pengpenglin/comments/commentRss/191422.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/pengpenglin/services/trackbacks/191422.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 策略操作定义了策略的输入和输出，而把策略的实现工作留给了各个类。这些类以不同的方案来实现同一操作，它们为用户提供统一的接口，因而这些类可以相互替换。<br><br>Strategy模式允许多种策略共存，而代码不会混乱。策略模式也可以实现模式选择逻辑和策略本身相分离。<br><br>Strategy模式的意图在于把可选的策略或方案封装在不同的类中，并在这些类中实现一个共同的操作。&nbsp;&nbsp;<a href='http://www.blogjava.net/pengpenglin/archive/2008/04/08/191422.html'>阅读全文</a><img src ="http://www.blogjava.net/pengpenglin/aggbug/191422.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/pengpenglin/" target="_blank">Paul Lin</a> 2008-04-08 11:52 <a href="http://www.blogjava.net/pengpenglin/archive/2008/04/08/191422.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>设计模式总结－State模式</title><link>http://www.blogjava.net/pengpenglin/archive/2008/04/07/191325.html</link><dc:creator>Paul Lin</dc:creator><author>Paul Lin</author><pubDate>Mon, 07 Apr 2008 10:02:00 GMT</pubDate><guid>http://www.blogjava.net/pengpenglin/archive/2008/04/07/191325.html</guid><wfw:comment>http://www.blogjava.net/pengpenglin/comments/191325.html</wfw:comment><comments>http://www.blogjava.net/pengpenglin/archive/2008/04/07/191325.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/pengpenglin/comments/commentRss/191325.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/pengpenglin/services/trackbacks/191325.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 使用状态模式后，客户端外界可以直接使用事件Event实现，根本不必关心该事件导致如何状态变化，这些是由状态机等内部实现。这是一种Event-condition-State，状态模式封装了condition-State部分。<br><br>每个状态形成一个子类，每个状态只关心它的下一个可能状态，从而无形中形成了状态转换的规则。如果新的状态加入，只涉及它的前一个状态修改和定义。&nbsp;&nbsp;<a href='http://www.blogjava.net/pengpenglin/archive/2008/04/07/191325.html'>阅读全文</a><img src ="http://www.blogjava.net/pengpenglin/aggbug/191325.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/pengpenglin/" target="_blank">Paul Lin</a> 2008-04-07 18:02 <a href="http://www.blogjava.net/pengpenglin/archive/2008/04/07/191325.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>设计模式总结－Command模式</title><link>http://www.blogjava.net/pengpenglin/archive/2008/04/07/191277.html</link><dc:creator>Paul Lin</dc:creator><author>Paul Lin</author><pubDate>Mon, 07 Apr 2008 07:13:00 GMT</pubDate><guid>http://www.blogjava.net/pengpenglin/archive/2008/04/07/191277.html</guid><wfw:comment>http://www.blogjava.net/pengpenglin/comments/191277.html</wfw:comment><comments>http://www.blogjava.net/pengpenglin/archive/2008/04/07/191277.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/pengpenglin/comments/commentRss/191277.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/pengpenglin/services/trackbacks/191277.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 让方法运行最常见的方式是调用之，但是在很多情况下，我们不能控制和提供方法执行的上下文和时机。这种情况下，可以把方法封装在对象中。通过在对象中存储调用方法所需的信息，就可以让客户端或者服务决定何时调用这个方法。<br><br>Command模式的意图是把请求封装在对象中。<br><br>  --摘自《Java设计模式》第24章：Command(命令)模式<br>&nbsp;&nbsp;<a href='http://www.blogjava.net/pengpenglin/archive/2008/04/07/191277.html'>阅读全文</a><img src ="http://www.blogjava.net/pengpenglin/aggbug/191277.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/pengpenglin/" target="_blank">Paul Lin</a> 2008-04-07 15:13 <a href="http://www.blogjava.net/pengpenglin/archive/2008/04/07/191277.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>3G、WLAN、Bluetooth的区别</title><link>http://www.blogjava.net/pengpenglin/archive/2008/04/02/190299.html</link><dc:creator>Paul Lin</dc:creator><author>Paul Lin</author><pubDate>Wed, 02 Apr 2008 02:52:00 GMT</pubDate><guid>http://www.blogjava.net/pengpenglin/archive/2008/04/02/190299.html</guid><wfw:comment>http://www.blogjava.net/pengpenglin/comments/190299.html</wfw:comment><comments>http://www.blogjava.net/pengpenglin/archive/2008/04/02/190299.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/pengpenglin/comments/commentRss/190299.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/pengpenglin/services/trackbacks/190299.html</trackback:ping><description><![CDATA[<span style="font-size: 10pt; font-family: Verdana">摘自<a style="font-family: " href="http://www.cnttr.com   ">中国通信网</a>之《通信基础学习之3G无线基本知识》<br />
<br />
<img height="383" alt="" src="http://www.blogjava.net/images/blogjava_net/pengpenglin/Other/3G.gif" width="571" border="0" /></span>&nbsp;<br />
<br />
<img height="256" alt="" src="http://www.blogjava.net/images/blogjava_net/pengpenglin/Other/3G_Band.gif" width="480" border="0" /><br />
<p><span style="font-family: Verdana"><br />
<span style="font-size: 10pt"><span style="font-family: Verdana">&#183;WLAN提供了高带宽，但却是在有限的覆盖区域内(建筑物内以及户外的短距离)。<br />
<br />
</span></span></span><span style="font-family: Verdana"><span style="font-size: 10pt">&#183;3G网络支持跨广域网络的移动性，但是数据吞吐速度明显低于WLAN。</span></span></p>
<p><span style="font-family: Verdana"><span style="font-size: 10pt">&#183;3G网络是建立在蜂窝架构上的，最适于支持移动环境中的数据服务。蜂窝架构支持不同蜂窝之间的信号切换，从而向用户提供了全网络覆盖的移动性，这种移动性常常通过不同<br />
&nbsp;&nbsp; 网络运营商之间的漫游协议进行扩展。当然，可供移动用户使用的带宽是有限的。 <br />
&#183;WLAN无线局域网提供了大量的带宽，但是它覆盖区域有限(室内最多100米)。它所支持的应用经常通过像笔记本电脑这类便携式以数据为中心的设备访问，而非通过以电话为中<br />
&nbsp;&nbsp; 心的设备进行访问。 </span></span></p>
<p><span style="font-family: Verdana"><span style="font-size: 10pt">&#183;语音和数据信号在许多重要的方面不同：语音信号可以错误但不能容忍时延；数据信号能够允许时延但不能容忍错误。因此，为数据而优化的网络不适合于传送语音信号。反之，<br />
&nbsp;&nbsp; 为语音而优化的网络也不适于数据信号。WLAN主要用于支持数据信号，与此形成对比的是，3G网络被设计用于同时支持语音和数据信号。 <br />
<br />
WLAN是一种共享频带的技术。在共享频带技术中，可用的频带带宽被用户瓜分。换句话说，无线局域网可以提供11Mbps带宽容量的事实并不意味着10个用户同时都使用11Mbps容量。 虽然3G网络也受到容量的限制，但分组交换的蜂窝技术使它们可以以高容量支持更多数量的用户。并且由于WLAN在无需许可的频带上运行，因此它们也更易受到其他运行在同一频带的技术(如蓝牙)的干扰。</span></span></p>
<img src ="http://www.blogjava.net/pengpenglin/aggbug/190299.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/pengpenglin/" target="_blank">Paul Lin</a> 2008-04-02 10:52 <a href="http://www.blogjava.net/pengpenglin/archive/2008/04/02/190299.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>