科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网›软件频道 ›检测代码是否有Junit Test Class的小功能

检测代码是否有Junit Test Class的小功能

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

去年为了公司的Junit需求做了一个检测我们的代码是否有Junit Test Class的一个小Tool, 今天又翻出来看了下,觉得里面的有个小功能可能对大家有用,如果你也觉得有用,我觉得很荣幸。

作者:中国IT实验室 来源:中国IT实验室 2007年9月24日

关键字: 代码 检测 编程 java

  • 评论
  • 分享微博
  • 分享邮件

    去年为了公司的Junit需求做了一个检测我们的代码是否有Junit Test Class的一个小Tool, 今天又翻出来看了下,觉得里面的有个小功能可能对大家有用,如果你也觉得有用,我觉得很荣幸。:)

1.用途:
指定一个类, 分析出类中所有方法的精确位置- 也就是某个方法在哪两行之间。
(大家可以考虑一下怎么做,然后再看看我的方法是不是太笨了。-_-!!)

2.用法:
新建一个类,将这几行代码加到mail方法,例如:



 1     public   static   void  main(String[] args)  {
 2          //  CVSParseMethod
 3          //  C:/Documents and
 4          //  Settings/hut/workspace/junitcheck/src/branding/src/java/com/webex/webapp/branding/common/BrandingTools.java
 5         CVSParseMethod x  =   new  CVSParseMethod( " C:\\Documents and Settings\\hut\\workspace\\AccountMethodLocation\\ " ,
 6                  " net.blogjava.xmp123.CVSClass " );
 7
 8          // src/java/com/webex/webapp/urlapi/biz/URLAPIMgrImpl.java
 9          // C:/Documents and Settings/hut/workspace/junitcheck/src/meetingcenter/src/java/com/webex/webapp/meetingcenter/action/common/QuickStartInviteAction.java
10         System.out.println(x.parseAction());
11     }

[补充]: CVSParseMethod的构造函数是CVSParseMethod(String String1,String String2), String1是目标的java文件在文件系统的位置,String2是类的全名..如net.blogjava.xmp123.CVSClass.
BTW:不要忘记将后面download的jar导过来。

结果会打在Console里,象这样:

Loading net.blogjava.xmp123.CVSClass
Loaded net.blogjava.xmp123.CVSClass
Found java source file in C:\Documents and Settings\hut\workspace\AccountMethodLocation
/ net / blogjava / xmp123 / CVSClass.java
Parsing net.blogjava.xmp123.CVSClass
Parsed a common 
class  and brackets can matched the methods correctly
MethodParseEngine have searched 
10  methods(Including constructors).
Completed :Spend 
0.187  seconds to parse  this  file.
[
public  CVSClass(String) locate between  52  and  123
, 
public  CVSMethod[] getCvsMethodArray() locate between  128  and  130
, 
public  CVSConstructor[] getCvsConstructorArray() locate between  135  and  137
, 
public  Set getMethodSet() locate between  142  and  144
, 
public  Set getConstructorSet() locate between  149  and  151
, 
public  String getClasspath() locate between  156  and  158
, 
public  List getMethodList() locate between  163  and  165
, 
public  String getClassName() locate between  174  and  176
, 
public   boolean  equals(Object) locate between  183  and  188
, 
public   int  hashCode() locate between  193  and  196
]

3. 我是怎么做的。

.用java反射拿出所有的的类的构造函数和方法。
.读java源文件,通过匹配左右括号来匹配方法并记录出合适的位置。

4. 存在的问题:
到目前为止,这个小程序至少不能分析它自己的主类:CVSParseMethod(很多Exceptions), 因为这个类里面定义的一些String中含用 { }而导致匹配的时候出错。呵呵。但是我保证,它应该在>90%的概率下正常工作。:) 

5. 下载的地址:
http://www.blogjava.net/Files/xmp123/CountMethodLocation.zip

查看本文来源

    • 评论
    • 分享微博
    • 分享邮件