FitNesse is a software development collaboration tool.
FitNesse is a software testing tool.
FitNesse is a wiki.
FitNesse is a web server.
上面是http://fitnesse.org/ 给自己的定义.
FitNesse是一个基于FIT (Framework for Integrated Test) 的测试环境。它将需求过程、测试过程、开发过程贯穿了起来。它可以取代一般的需求文档并结合了测试的能力。
首先下载fitnesse20070619.zip文件(当前最新的就是20070619版),在本地解压缩后(我这里是D:\fitnesse),直接双击run.bat就可以启动FitNesse服务。(FitNesse默认使用80端口,如果80被其他程序占用,可以使用run -p 8081 来启动,这里的端口可以随意指定)
当屏幕出现
D:\fitnesse>java -cp fitnesse.jar fitnesse.FitNesse
FitNesse (20070619) Started...
port: 80
root page: fitnesse.wiki.FileSystemPage at ./FitNesseRoot
logger: none
authenticator: fitnesse.authentication.PromiscuousAuthenticator
html page factory: fitnesse.html.HtmlPageFactory
page version expiration set to 14 days.
就可以通过http://localhost (或http://localhost:8081)来访问了
最好的入门例子,就是它的A Two-Minute Example,点击A Two-Minute Example。
注意里面的那个表格(表头是eg.Division)
点击左侧工具栏的Test按钮。FitNesse将运行表格中的测试数据,并返回测试结果,应该看到表格中 100/4 的计算错误.
如果左侧工具栏中没有Edit按钮,就点击Properties按钮,在出现的页面中选中Actions中的Edit项,再点Save Properties按钮。这样左侧工具栏中就应该有Edit按钮了。
点击Edit按钮,将出现Edit Page, 找到 100/4 那行,把结果24改为25,点击最低下的Save按钮。
再点Test,就可以看到全部测试通过了。
你可能想知道表格中的数据是如何测试的,表头的eg.Division是指eg包下的Division类,这个类可以在FitNesse安装目录下的fitnesse.jar中找到,源码如下
- package eg;
- import fit.ColumnFixture;
- public class Division extends ColumnFixture
- {
- public double numerator;
- public double denominator;
- public double quotient() {
- return numerator/denominator;
- }
- }
可以看到对应表格中的第2行表头,类中有numerator, denominator, quotient(), 有点明白了吧。
下面新建一个测试页
Edit刚才的A Two-Minute Example
在内容的最下面,添加文字MyNewPage,然后点击Save
在新页面的最后,将出现刚才添加的MyNewPage字样,并在其后紧跟一个 ? 号,点击 ? 号。
将出现MyNewPage的编辑页面,继续使用eg.Division,添加如下内容
My New Test
|eg.Division|
|numerator|denominator|quotient?|
|10 |2 |5 |
|30 |5 |6 |
点击Save按钮,将看到新的MyNewPage,再点Test按钮(如果没有Test按钮就点击Properties来添加),将看到新的测试结果。
这样需求设计人员就可以在开始写文档时就定制一些可见的测试。
更详细的内容,以后有时间再写。
参考
使用FitNesse进行测试先行开发
http://www.matrix.org.cn/resource/article/2006-07-03/FitNesse_44507.html
飞翔的测试工具--Fit
http://www.matrix.org.cn/resource/article/2005-06-02/1607.html
FitNesse安装与编译
http://blog.sina.com.cn/u/4c703e0f010008jy