熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java開源技術 >> 正文

檢測代碼是否有Junit Test Class的小功能

2013-11-23 20:14:03  來源: Java開源技術 

  去年為了公司的Junit需求做了一個檢測我們的代碼是否有Junit Test Class的一個小Tool 今天又翻出來看了下覺得裡面的有個小功能可能對大家有用如果你也覺得有用我覺得很榮幸:)

用途
指定一個類 分析出類中所有方法的精確位置 也就是某個方法在哪兩行之間
(大家可以考慮一下怎麼做然後再看看我的方法是不是太笨了_!!)

用法
新建一個類將這幾行代碼加到mail方法例如



示例使用代碼
      public   static   void  main(String[] args)  {
           //  CVSParseMethod
           //  C:/Documents and
           //  Settings/hut/workspace/junitcheck/src/branding/src/java/com/webex/webapp/branding/common/BrandingToolsjava
          CVSParseMethod x  =   new  CVSParseMethod( C:\\Documents and Settings\\hut\\workspace\\AccountMethodLocation\\
                   netblogjavaxmpCVSClass );
 
           // src/java/com/webex/webapp/urlapi/biz/URLAPIMgrImpljava
           // C:/Documents and Settings/hut/workspace/junitcheck/src/meetingcenter/src/java/com/webex/webapp/meetingcenter/action/common/QuickStartInviteActionjava
        Systemoutprintln(xparseAction());
    }

  [補充]: CVSParseMethod的構造函數是CVSParseMethod(String StringString String) String是目標的java文件在文件系統的位置String是類的全名如netblogjavaxmpCVSClass
BTW:不要忘記將後面download的jar導過來

結果會打在Console裡象這樣


Loading netblogjavaxmpCVSClass
Loaded netblogjavaxmpCVSClass
Found java source file in C:\Documents and Settings\hut\workspace\AccountMethodLocation / net / blogjava / xmp / CVSClassjava
Parsing netblogjavaxmpCVSClass
Parsed a common  class  and brackets can matched the methods correctly
MethodParseEngine have searched   methods(Including constructors)
Completed :Spend   seconds to parse  this  file
[ public  CVSClass(String) locate between   and 
  public  CVSMethod[] getCvsMethodArray() locate between   and 
  public  CVSConstructor[] getCvsConstructorArray() locate between   and 
  public  Set getMethodSet() locate between   and 
  public  Set getConstructorSet() locate between   and 
  public  String getClasspath() locate between   and 
  public  List getMethodList() locate between   and 
  public  String getClassName() locate between   and 
  public   boolean  equals(Object) locate between   and 
  public   int  hashCode() locate between   and 
]

我是怎麼做的

用java反射拿出所有的的類的構造函數和方法
讀java源文件通過匹配左右括號來匹配方法並記錄出合適的位置

存在的問題
到目前為止這個小程序至少不能分析它自己的主類CVSParseMethod(很多Exceptions) 因為這個類裡面定義的一些String中含用 { }而導致匹配的時候出錯呵呵但是我保證它應該在>%的概率下正常工作:) 

下載的地址

From:http://tw.wingwit.com/Article/program/Java/ky/201311/28166.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.