作为对JUnit系统性研究的开篇,习惯性地还是想以debug的方式来看究竟JUnit背后都做了什么,虽说有不错的文档和JUnitInAction这样的好书, 有道是百闻不如一见--看了JUnit背后的代码,对其的理解更真切.
好的,直接进入正题.
1, 下载junit3.8.1(包括源码).
2, 解压后,进入junit3.8.1目录, 可看到有如下文件(夹): junit.jar, src.jar, junit等. 很好, JUnit自带了一些实例, 我们可直接在命令行执行. 在命令行进入junit3.8.1目录, 运行命令: "java -cp junit.jar;. junit.textui.TestRunner junit.samples.AllTests", 可以看到如下所示的结果.
3, 如下图所示, 在Eclipse里新建一个Java工程并导入JUnit目录.
注: 图中的myJUnit jar包是自已加的,并没有直接用Eclipse自带的JUnit jar包.
导 入后, 在"Run\debug configurations..."对话框里,选中左侧"Remote Java Application"项,点左上角的"New"按钮, 右侧的Project栏里选定刚新建并导入的JUnit_self工程, name一栏可命名为"JUnit", Port一栏先设定为6000,下一步将用到, 点Apply按钮完成.
4, 在junit3.8.1目录下,新建一bat文件,可命名为debugJUnit.bat, 其内容如下:
java -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=6000 -cp junit.jar;. junit.textui.TestRunner junit.samples.AllTests
这里的address=6000就是第三步里设置好的Port(其值为6000). 别的参数(如suspend,server等)Google下吧, 这里就不再解释了.
5, 在Eclipse时,以"Ctrl + Shift +T"快捷键地打开junit.textui.TestRunner类的源码(如何给jar包绑定源码,这里就不再细说了),并在其main方法第一行 的"TestRunner aTestRunner= new TestRunner()"处设置断点.
6, 在命令行,进入junit3.8.1目录下, 运行刚写好的debugJUnit.bat脚本. 这时,不出意外, Eclipse将停在第五步设置的断点处.
好了, 配置完收工.
Enjoy debugging JUnit in Eclipse, from main method!